Commit Graph

23 Commits

Author SHA1 Message Date
Luke Wren 887c93dbf0 Reuse predecoded regnums for bypass mux (though can't be used for zeroing unfortunately) 2022-03-02 18:35:16 +00:00
Luke Wren 28b53ef7b5 Delete the AMO ALU. Save around 80 LCs vs original implementation, maybe enables some more savings. 2021-12-18 00:35:13 +00:00
Luke Wren 7485269ddf Use the branch target adder for load/store addresses. Preparing for AMO ALU deletion 2021-12-17 22:36:40 +00:00
Luke Wren b0d28447ab New license headers: DWTFPL -> Apache 2.0 2021-12-13 23:23:40 +00:00
Luke Wren 7d2fa6a049 Fix width warnings in A instruction decode, add don't-care to bus rdata picking logic 2021-12-09 06:26:31 +00:00
Luke Wren 260491405a Fix atomic instructions not asserting decode error when A extension is disabled 2021-12-06 07:28:50 +00:00
Luke Wren 12c79c0b41 Fix feature-flag for Zbs instructions in decoder 2021-12-05 02:05:35 +00:00
Luke Wren 5c098866f2 Sketch in AMO support 2021-12-04 20:46:39 +00:00
Luke Wren 5e17bb805e Add basic support for lr/sc instructions from the A extension 2021-12-04 15:02:31 +00:00
Luke Wren 58c20a39d0 First pass at implementing bitmanip. Breaks CXXRTL. Ooop 2021-11-25 23:30:35 +00:00
Luke Wren cc6a6c09ba Vaguely implement wfi 2021-11-05 18:48:42 +00:00
Luke Wren d03a82a826 Add instruction fetch faults 2021-09-04 02:57:39 +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 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 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 90acfdcbe8 Organise test directory into formal and sim 2021-05-23 07:42:35 +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 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