From 5a00029519a8887f87763cbef8424d1f90f2e1b1 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Sat, 13 Jun 2020 17:22:56 +1000 Subject: [PATCH] register_file: Report value being written before asserting it's not X If a bug causes an indeterminate value to be written to a GPR, an assert causes simulation to abort. Move the assert after the report of the GPR index and value so that we get to know what the bad value is before the simulation terminates. Signed-off-by: Paul Mackerras --- register_file.vhdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/register_file.vhdl b/register_file.vhdl index 2cffeea..4df032c 100644 --- a/register_file.vhdl +++ b/register_file.vhdl @@ -40,12 +40,12 @@ begin begin if rising_edge(clk) then if w_in.write_enable = '1' then - assert not(is_x(w_in.write_data)) and not(is_x(w_in.write_reg)) severity failure; if w_in.write_reg(5) = '0' then report "Writing GPR " & to_hstring(w_in.write_reg) & " " & to_hstring(w_in.write_data); else report "Writing GSPR " & to_hstring(w_in.write_reg) & " " & to_hstring(w_in.write_data); end if; + assert not(is_x(w_in.write_data)) and not(is_x(w_in.write_reg)) severity failure; registers(to_integer(unsigned(w_in.write_reg))) <= w_in.write_data; end if; end if;