From d7747d9e030f965bd358bca5badb849f656147a8 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sat, 15 Oct 2022 23:33:34 -0600 Subject: Fix flags and writeback hazards --- rtl/core/decode/conds.sv | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'rtl/core/decode/conds.sv') diff --git a/rtl/core/decode/conds.sv b/rtl/core/decode/conds.sv index 652760d..564ed27 100644 --- a/rtl/core/decode/conds.sv +++ b/rtl/core/decode/conds.sv @@ -5,12 +5,15 @@ module core_decode_conds ( input logic[3:0] cond, input psr_flags flags, + output logic execute, + conditional, undefined ); always_comb begin undefined = 0; + conditional = 1; unique case(cond) `COND_EQ: execute = flags.z; @@ -27,10 +30,15 @@ module core_decode_conds `COND_LT: execute = flags.n ^ flags.v; `COND_GT: execute = ~flags.z & (flags.n ~^ flags.v); `COND_LE: execute = flags.z | (flags.n ^ flags.v); - `COND_AL: execute = 1; + + `COND_AL: begin + execute = 1; + conditional = 0; + end `COND_UD: begin execute = 1'bx; + conditional = 1'bx; undefined = 1; end endcase -- cgit v1.2.3