From 438a76dafd95c8efbb54c93c74dc1feb1e2e42a9 Mon Sep 17 00:00:00 2001 From: Michael Neuling Date: Thu, 14 Jul 2022 10:32:37 +1000 Subject: [PATCH] Metavalue cleanup for register_file.vhdl Signed-off-by: Michael Neuling --- register_file.vhdl | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/register_file.vhdl b/register_file.vhdl index 753ce80..e56202a 100644 --- a/register_file.vhdl +++ b/register_file.vhdl @@ -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;