alu
library IEEE; -- dołączenie standardowej biblioteki IEEE
use IEEE.STD_LOGIC_1164.all; -- dołączenie pakietu STD_LOGIC_1164' z biblioteki IEEE
use IEEE.STD_LOGIC_UNSIGNED.all; -- dołączenie biblioteki operacji arytmetycznych na liczbach bez znaku
-- definiującego popularne stany logiczne
entity alu is -- opis interfejsu ALU
port(
BB : in STD_LOGIC_VECTOR(7 downto 0);
BC : in STD_LOGIC_VECTOR(7 downto 0);
BA : out STD_LOGIC_VECTOR(7 downto 0);
Salu : in integer range 0 to 7
);
end alu;
architecture alu_arch of alu is
begin
with Salu select
BA <= BB + BC when 0,
-- opis wnętrza ALU (w tym przypadku
-- jest to opis strukturalny)
BB - BC when 1,
BB(3 downto 0) * BC(3 downto 0) when 2,
BB when 3,
BB or BC when 4,
BB and BC when 5,
not BB when 6,
"00000000" when others;
end alu_arch;