alu

by Leszek Ciopiński published 2024/05/12 10:44:00 GMT+1, last modified 2024-05-12T10:45:30+01:00

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;