display: arbeitet endlich wie gewuenscht
[hwmod.git] / src / parser.vhd
index 1d75398bfc87454dbc5694abba14d4844d40722d..fe7bda1db28e20521bc82b2f56f654d792912843 100644 (file)
@@ -18,15 +18,6 @@ entity parser is
                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
@@ -59,7 +50,31 @@ architecture beh of parser is
        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;
@@ -83,7 +98,7 @@ begin
                        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
@@ -334,9 +349,9 @@ begin
 
                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
@@ -542,7 +557,7 @@ begin
 
                        when SDONE =>
                                err_next <= 0;
-                               errc_next <= 70;
+                               errc_next <= 71;
                                p_finished_next <= '1';
                end case;