p_wdone : in std_logic;
p_write : out hbyte;
p_finished : out std_logic;
- -- ALU
- opcode : out alu_ops;
- op1 : out csigned;
- op2 : out csigned;
- op3 : in csigned;
- opM : in csigned;
- do_calc : out std_logic;
- calc_done : in std_logic;
- calc_error : in std_logic;
-- Scanner
do_it : in std_logic;
finished : out std_logic
signal err_next, err_int : hstr_int;
signal errc_next, errc_int : hstr_int;
signal errc_tmp_next, errc_tmp_int : hstr_int;
+ -- ALU
+ signal opcode : alu_ops;
+ signal op1 : csigned;
+ signal op2 : csigned;
+ signal op3 : csigned;
+ signal opM : csigned;
+ signal do_calc : std_logic;
+ signal calc_done : std_logic;
+ signal calc_error : std_logic;
begin
+ instalu : entity work.alu(beh)
+ port map
+ (
+ sys_clk => sys_clk,
+ sys_res_n => sys_res_n,
+ do_calc => do_calc,
+ calc_done => calc_done,
+ calc_error => calc_error,
+ op1 => op1,
+ op2 => op2,
+ op3 => op3,
+ opM => opM,
+ opcode => opcode
+ );
+
p_write <= p_write_int;
p_rget <= p_rget_int;
p_wtake <= p_wtake_int;
aktop_int <= ALU_NOP;
opp_int <= ALU_NOP;
err_int <= 0;
- errc_int <= 70;
+ errc_int <= 71;
errc_tmp_int <= 0;
firstz_int <= true;
-- out ports
type errstrings is array (natural range 1 to 3) of hstring;
constant error_str : errstrings := (
- 1 => " Division durch Null" & nul,
- 2 => " Syntax" & nul,
- 3 => " Over- bzw. Underflow" & nul
+ 1 => " Division durch Null" & nul,
+ 2 => " Syntax" & nul,
+ 3 => " Over- bzw. Underflow" & nul
);
begin
-- internal
when SDONE =>
err_next <= 0;
- errc_next <= 70;
+ errc_next <= 71;
p_finished_next <= '1';
end case;