De ALU die je moet maken voor deze opdracht, ziet er uit zoals hieronder afgebeeld:
Later worden de input status codes juist gezet op basis van de binnenkomende instructie en worden de output status codes gebruikt.
De opdracht is om zelf een ALU te maken die aan onderstaande waarheidstabel voldoet, met de volgende entity.
entity alu is
generic(
WIDTH : natural := 16
);
port(
X : IN STD_LOGIC_VECTOR(WIDTH-1 downto 0);
Y : IN STD_LOGIC_VECTOR(WIDTH-1 downto 0);
Z : OUT STD_LOGIC_VECTOR(WIDTH-1 downto 0);
zx : IN STD_LOGIC;
zy : IN STD_LOGIC;
nx : IN STD_LOGIC;
ny : IN STD_LOGIC;
f : IN STD_LOGIC;
no : IN STD_LOGIC;
zr : OUT STD_LOGIC;
ng : OUT STD_LOGIC
);
end entity alu;
Een ALU is volledig combinatorisch.