2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.all;
9 sys_clk : in std_ulogic;
10 sys_res_n : in std_ulogic;
12 op1 : in signed(31 downto 0);
13 op2 : in signed(31 downto 0);
14 op3 : out signed(31 downto 0);
15 do_calc : in std_ulogic;
16 calc_done : out std_ulogic
20 architecture beh of alu is
21 -- signal cnt_int, cnt_next : integer range 0 to CNT_MAX;
22 signal op3_next : signed (31 downto 0);
24 process(sys_clk, sys_res_n)
26 if sys_res_n = '0' then
27 op3 <= (others => '0');
28 elsif rising_edge(sys_clk) then
33 process(do_calc, opcode, op1, op2)
36 when ADD => op3_next <= op1 + op2;
37 when SUB => op3_next <= op1 - op2;
38 when MUL => op3_next <= op1 * op2;
39 when DIV => op3_next <= op1 / op2;
40 when others => op3_next <= (others => '0');