Metavalue cleanup for register_file.vhdl
authorMichael Neuling <mikey@neuling.org>
Thu, 14 Jul 2022 00:32:37 +0000 (10:32 +1000)
committerMichael Neuling <mikey@neuling.org>
Thu, 28 Jul 2022 00:17:05 +0000 (10:17 +1000)
Signed-off-by: Michael Neuling <mikey@neuling.org>
register_file.vhdl

index 753ce80abb7f1c43863c29bf93035f48a146ce11..e56202add3fcab1daa02c9e7cdacc170ff56c1e9 100644 (file)
@@ -120,9 +120,21 @@ begin
                 b_addr(5) := '0';
                 c_addr(5) := '0';
             end if;
-            data_1 <= registers(to_integer(unsigned(a_addr)));
-            data_2 <= registers(to_integer(unsigned(b_addr)));
-            data_3 <= registers(to_integer(unsigned(c_addr)));
+           if is_X(a_addr) then
+               data_1 <= (others => 'X');
+           else
+               data_1 <= registers(to_integer(unsigned(a_addr)));
+           end if;
+           if is_X(b_addr) then
+               data_2 <= (others => 'X');
+           else
+               data_2 <= registers(to_integer(unsigned(b_addr)));
+           end if;
+           if is_X(c_addr) then
+               data_3 <= (others => 'X');
+           else
+               data_3 <= registers(to_integer(unsigned(c_addr)));
+           end if;
 
             prev_write_data <= w_in.write_data;
         end if;