From e7f0a7c7acd55b6f62230ce9745b6aa123d4130b Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Sun, 12 Jun 2022 11:42:32 +1000 Subject: [PATCH] icache: Don't output X on i_out.insn decode1 has a lot of logic that uses i_out.insn without first looking at i_iout.valid. Play it safe and never output X state. Signed-off-by: Anton Blanchard --- icache.vhdl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/icache.vhdl b/icache.vhdl index a51209e..e8acaa7 100644 --- a/icache.vhdl +++ b/icache.vhdl @@ -555,7 +555,11 @@ begin -- I prefer not to do just yet as it would force fetch2 to know about -- some of the cache geometry information. -- - i_out.insn <= read_insn_word(r.hit_nia, cache_out(r.hit_way)); + if r.hit_valid = '1' then + i_out.insn <= read_insn_word(r.hit_nia, cache_out(r.hit_way)); + else + i_out.insn <= (others => '0'); + end if; i_out.valid <= r.hit_valid; i_out.nia <= r.hit_nia; i_out.stop_mark <= r.hit_smark;