Hazard3/hdl
Luke Wren 2f6e98335f Add two new tests for IRQs-over-Zcmp, and fix a bug they found:
Interrupting the PC-setting step of a cm.popret (only) can sample the return target
as the exception return PC, which will cause the stack pointer adjust to be skipped
when returning from the IRQ. Fix this by making the PC-setting step uninterruptible

(note the PC-setting step is the instruction we execute first out of the group
of instructions specified in the Zc spec as being atomic wrt interrupts. This
does not itself imply that the PC-setting step is uninterruptible, it just
requires that when the PC-setting step retires, all following steps also retire.
However this is not sufficient given the special case logic that allows the jr
ra PC-setting step to execute before the final stack adjust as an optimisation.)
2023-11-03 21:12:21 +00:00
..
arith Remove op_b (rs2) register from muldiv_seq for modest LUT/FF savings 2022-10-08 18:22:16 +01:00
debug Fix 3 minor Debug Module bugs: 2023-03-03 13:24:31 +00:00
hazard3.f Make custom IRQ and PMP functionality optional. Factor out IRQ controller into separate module. 2022-10-05 23:53:04 +01:00
hazard3_config.vh Revert default for EXTENSION_ZC* to match docs in hazard3_config.vh 2023-03-23 03:07:09 +00:00
hazard3_config_inst.vh First attempt at Zcmp 2023-03-20 00:19:23 +00:00
hazard3_core.v Fix trap address correction for Zcm instructions never firing 2023-03-20 18:38:28 +00:00
hazard3_cpu_1port.v First stab at adding wake/sleep state machine 2022-08-28 19:50:04 +01:00
hazard3_cpu_2port.v First stab at adding wake/sleep state machine 2022-08-28 19:50:04 +01:00
hazard3_csr.v Cut through-path on reset halt request from debug module to bus 2023-01-19 13:47:02 +00:00
hazard3_csr_addr.vh First attempt at hacking in triggers, at least seems to have not broken other exception logic. Not yet tested. 2022-08-22 08:47:03 +01:00
hazard3_decode.v Save a cycle on popret/popretz by executing the stack adjust after the jump 2023-03-23 02:50:34 +00:00
hazard3_frontend.v Save a cycle on popret/popretz by executing the stack adjust after the jump 2023-03-23 02:50:34 +00:00
hazard3_instr_decompress.v Add two new tests for IRQs-over-Zcmp, and fix a bug they found: 2023-11-03 21:12:21 +00:00
hazard3_irq_ctrl.v Tidy up priority tie-offs in irq_ctrl 2022-10-08 16:25:05 +01:00
hazard3_ops.vh Add a custom instruction (bextm/bextmi: 1 to 8-bit version of bext/bexti from Zbs) for fooling around with toolchains 2022-08-06 23:02:08 +01:00
hazard3_pmp.v Make custom IRQ and PMP functionality optional. Factor out IRQ controller into separate module. 2022-10-05 23:53:04 +01:00
hazard3_power_ctrl.v Rename confusingly named power control signal for allowing clock gate to shut during WFI/block sleep. 2022-11-05 18:26:56 +00:00
hazard3_regfile_1w2r.v Add no_rw_check attribute to regfile memory to avoid recent Yosys area regression 2022-09-04 23:56:14 +01:00
hazard3_triggers.v Fix readback of tdata2 and tinfo CSRs 2023-03-23 23:33:39 +00:00
hazard3_width_const.vh Update copyright years 2022-06-09 00:12:01 +01:00
rv_opcodes.vh First attempt at Zcmp 2023-03-20 00:19:23 +00:00