[rtl] Branch signal timing fix

- Before this fix, the branch signal was qualified by the illegal
  instruction signal and the illegal csr signal.
- This patch removes both of these since the decoder already masks
  branches with illegal isntruction, and a branch cannot be a CSR op.
- This improves the worst path in the design significantly without the
  branch target ALU.

Signed-off-by: Tom Roberts <tomroberts@lowrisc.org>
This commit is contained in:
Tom Roberts 2020-03-25 10:44:42 +00:00 committed by Tom Roberts
parent 624ef41462
commit b897300cbd

View file

@ -209,7 +209,7 @@ module ibex_controller #(
exc_req_d | exc_req_lsu;
// special request that can specifically occur during branch instructions
assign special_req_branch = (illegal_insn_d | instr_fetch_err) & (ctrl_fsm_cs != FLUSH);
assign special_req_branch = instr_fetch_err & (ctrl_fsm_cs != FLUSH);
`ASSERT(SpecialReqBranchGivesSpecialReqAll,
special_req_branch |-> special_req_all)