Luke Wren
|
ed6b6a3660
|
Cleanup order of declaration/use of a couple of wires
|
2021-11-25 15:16:59 +00:00 |
Luke Wren
|
e05e9a4109
|
Add default_nettype none at top of every file, and default_nettype wire at bottom
|
2021-11-23 22:10:39 +00:00 |
Luke Wren
|
0b9b706e81
|
Safer logic for load/store blocked by preceding WFI
|
2021-11-23 22:01:14 +00:00 |
Luke Wren
|
cc6a6c09ba
|
Vaguely implement wfi
|
2021-11-05 18:48:42 +00:00 |
Luke Wren
|
cfe16caf41
|
Remove some old todos
|
2021-09-05 22:20:40 +01:00 |
Luke Wren
|
e9fccffca0
|
Fix break and single-step on a load/store access fault dropping the exception. Better fix for halt request on definitely-excepting stage M instruction giving unreachable next-instruction DPC.
|
2021-09-05 04:45:38 +01:00 |
Luke Wren
|
d03a82a826
|
Add instruction fetch faults
|
2021-09-04 02:57:39 +01:00 |
Luke Wren
|
8e3dc62b97
|
Fiddly handshake changes for hardware single-stepping. Can now step correctly through illegal instructions
|
2021-07-16 20:43:24 +01:00 |
Luke Wren
|
5aca6be572
|
Implement data0 inside of DM instead of core, so it gets correct reset. Add dummy tselect CSR.
|
2021-07-16 18:28:30 +01:00 |
Luke Wren
|
307955c810
|
Make CPU regfile nonresettable when FPGA symbol is defined, to support BRAM inference
|
2021-07-13 01:10:55 +01:00 |
Luke Wren
|
63d661af63
|
Start hacking in debug support to the core -- seems to work as well as before adding debug!
|
2021-07-10 18:53:48 +01:00 |
Luke Wren
|
af684c4e82
|
Some cleanup; correctly decode 16-bit EBREAK
|
2021-06-03 20:03:43 +01:00 |
Luke Wren
|
5f8d217395
|
Implement new IRQ behaviour, and change mip.meip to be masked by individual enables in meip0
|
2021-05-31 17:54:12 +01:00 |
Luke Wren
|
ea5db61582
|
Fix exception being passed to M when X is stalled but M is not (a load which had an unaligned address spuriously during a RAW stall on the result register)
|
2021-05-29 22:52:50 +01:00 |
Luke Wren
|
4b9a3c2c78
|
Fix wrong reg readaddr when D starvation ends during a downstream load/store dphase stall (was using garbage from D instead of new fetch data predecoded in F)
|
2021-05-29 19:32:12 +01:00 |
Luke Wren
|
f23ec3f941
|
Don't hold back instruction in M when an IRQ entry is stalled (but do for exception entry). Now pass add and lw checks in riscv-formal with depth 15, so getting somewhere
|
2021-05-29 18:57:43 +01:00 |
Luke Wren
|
65075df0e5
|
More work on traps, delaying IRQs which arrive whilst a load/store address phase is stalled to avoid deassertion on the bus
|
2021-05-29 18:00:43 +01:00 |
Luke Wren
|
1b252d4bda
|
Significant overhaul of trap handling. Exceptions now taken from stage 3 instead of stage 2
|
2021-05-23 11:59:46 +01:00 |
Luke Wren
|
5e61c9f9ac
|
Use branch target adder for JALR target, and use ALU for JAL/JALR linkaddr instead of muxing in next_pc
|
2021-05-23 09:12:50 +01:00 |
Luke Wren
|
7a3ce494e4
|
Fix a couple issues with trap exit, can now run add check with traps enabled (at low depth)
|
2021-05-23 06:40:44 +01:00 |
Luke Wren
|
dec78a728d
|
Fix a few things that were obviously wrong, and the first signs of a plausible RVFI bridge circuit
|
2021-05-22 15:35:52 +01:00 |
Luke Wren
|
08e986912c
|
Also fix RAW stall on JALR instructions, oops. Runs CoreMark and Dhrystone now
|
2021-05-22 11:18:56 +01:00 |
Luke Wren
|
6692c1f26d
|
Fix premature taking of branches with RAW data dependencies on the previous instruction
|
2021-05-22 10:18:47 +01:00 |
Luke Wren
|
692abbad8b
|
Merge stages D and X, and bring all branch resolution into X. Passes RV32I compliance
|
2021-05-22 07:55:13 +01:00 |
Luke Wren
|
844fa8f97f
|
Rename hazard5 -> hazard3
|
2021-05-21 03:46:29 +01:00 |