library ieee;
use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
library work;
use work.common.all;
complete_out <= '1' when e.valid or l.valid or m.valid else '0';
writeback_1: process(all)
+ variable x: std_ulogic_vector(0 downto 0);
+ variable y: std_ulogic_vector(0 downto 0);
+ variable z: std_ulogic_vector(0 downto 0);
begin
- --assert (unsigned(w.valid) + unsigned(l.valid) + unsigned(m.valid)) <= 1;
- --assert not(w.write_enable = '1' and l.write_enable = '1');
+ x := "" & e.valid;
+ y := "" & l.valid;
+ z := "" & m.valid;
+ assert (to_integer(unsigned(x)) + to_integer(unsigned(y)) + to_integer(unsigned(z))) <= 1;
+
+ x := "" & e.write_enable;
+ y := "" & l.write_enable;
+ z := "" & m.write_reg_enable;
+ assert (to_integer(unsigned(x)) + to_integer(unsigned(y)) + to_integer(unsigned(z))) <= 1;
+
+ assert not(e.write_cr_enable = '1' and m.write_cr_enable = '1');
w_tmp <= WritebackToRegisterFileInit;
c_tmp <= WritebackToCrFileInit;