Skip to content

Commit

Permalink
[rtl] Branch signal timing fix
Browse files Browse the repository at this point in the history
- 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 <[email protected]>
  • Loading branch information
Tom Roberts authored and tomeroberts committed Mar 25, 2020
1 parent 624ef41 commit b897300
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion rtl/ibex_controller.sv
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit b897300

Please sign in to comment.