Commit Graph

121 Commits

Author SHA1 Message Date
Ross Thompson
76d1dc1721 LSU Bus FSM beautification. 2021-12-28 16:53:53 -06:00
Ross Thompson
e29803be30 Removed CommittedM as it is redundant with LSUStall. 2021-12-28 16:14:10 -06:00
Ross Thompson
39bd78c295 Changed the bus name between dcache and ebu. 2021-12-28 15:57:36 -06:00
Ross Thompson
9c190b019b Name changes for states in LSU. 2021-12-28 15:03:24 -06:00
Ross Thompson
13b4201198 Added generate around virtual memory hardware in LSU. 2021-12-28 15:00:02 -06:00
Ross Thompson
f09b10a393 Moved generate for lrsc to lsu. 2021-12-28 14:17:18 -06:00
Ross Thompson
73af458eb5 More cleanup of dcache. 2021-12-28 14:12:18 -06:00
Ross Thompson
0e86e5d9f1 Additional cleanup of the LSU. 2021-12-28 13:59:07 -06:00
Ross Thompson
1e76c24f26 Major cleanup of the LSU. 2021-12-28 13:10:45 -06:00
Ross Thompson
79b17c5b55 Removed WalkerInstrPageFault from icache, privilege unit, lsu, and hptw. 2021-12-28 12:33:07 -06:00
Ross Thompson
34c11ca8d5 Minor dcache cleanup. 2021-12-28 11:29:16 -06:00
Ross Thompson
243728d089 Moved all bus logic outside the dcache. Still needs cleanup. 2021-12-28 11:18:47 -06:00
Ross Thompson
74d636cb53 First cut at moving the dcache bus interface into the LSU.
Regression test does not run and there is a lot of cleanup to do.
2021-12-27 18:12:59 -06:00
Ross Thompson
d366a1f50f Moved dcache fetch logic outside the dcache except for the fsm. 2021-12-27 16:45:49 -06:00
Ross Thompson
e3ddcbb11e Partial commit.
Moved AMO, SWW, and SWR outside the dcache.
Step 1 of separate the fetching logic from the caches.
2021-12-27 15:56:18 -06:00
Ross Thompson
6a8e917e06 It was possible for a load/store followed by tlb miss and update to have an exception and still commit its result to memory or register. 2021-12-21 15:59:56 -06:00
Ross Thompson
8416cae3fe Fixed Type 5b interaction between dcache and hptw.
This is a load concurrent with ITLBMiss.
2021-12-20 18:33:31 -06:00
Ross Thompson
b6d75d453a Modified LSU verilog is compatible with vivado. have to use extra logic IEUAdrExtM. 2021-12-20 10:03:56 -06:00
Ross Thompson
beb1988539 Merge branch 'main' of github.com:davidharrishmc/riscv-wally into main 2021-12-20 10:03:19 -06:00
Ross Thompson
df8bd78679 More signal name cleanup in LSU. 2021-12-19 22:47:48 -06:00
Ross Thompson
3eb5f33705 Remove verbosity from lsu state machine. 2021-12-19 22:41:34 -06:00
Ross Thompson
d3c3422d12 Rename of SelPTW to SelHPTW. 2021-12-19 22:24:07 -06:00
Ross Thompson
8feb36b926 Signal renames. 2021-12-19 22:21:03 -06:00
Ross Thompson
dc82d44f9e Hardware reductions in the lsu. 2021-12-19 22:00:28 -06:00
Ross Thompson
138da1fefa Removed lsuArb and placed remaining logic in lsu.sv.
Removed after itlb walk signal as the dcache no longer has any need for this.
Formated lsu.sv
2021-12-19 21:34:40 -06:00
Ross Thompson
a39b47d226 Switched to using an always block for lsu stall logic. This avoids the problematic x propagation. 2021-12-19 18:16:08 -06:00
Ross Thompson
eceb418056 Implemented what I think is the last required change for the lsu state machine. 2021-12-19 17:57:12 -06:00
Ross Thompson
fe5c05eb8d Created hack to get around imperas64mmu unknown (value = x) bug. 2021-12-19 17:53:13 -06:00
Ross Thompson
c9291655da Fixed bug most of the bugs related to the dcache changes, but the mmu tests don't pass. 2021-12-19 16:12:31 -06:00
Ross Thompson
f4d778c2f6 Corrected the LSU's fsm for stalling CPU. Removed state from hptw fsm. 2021-12-19 15:10:33 -06:00
Ross Thompson
a445bedcd2 Modified the icache memory to read using the virtual (non physical) address in the PCNextF stage.
This allows recovering from an ITLBMiss to be 1 cycle after and simplifies the hptw slightly.
2021-12-19 14:57:42 -06:00
Ross Thompson
225cd5a114 Renamed MemAdrM to IEUAdrM. This will free the name MemAdrm for use in the DCache. 2021-12-19 14:00:30 -06:00
Ross Thompson
cd3c1032b7 Adds FSM to LSU which will handle the interactions between the hptw and dcache. This will dramatically simplify the dcache by removing all walker states. 2021-12-19 13:55:57 -06:00
Ross Thompson
4daeb6657f Merge branch 'tlb_fixes' into main 2021-12-18 12:24:17 -06:00
Ross Thompson
bbd1332353 Merge remote-tracking branch 'origin/tlb_fixes' into main 2021-12-17 14:40:29 -06:00
Ross Thompson
a11597b6bd Added more debugging code for FPGA. 2021-12-17 14:40:25 -06:00
Ross Thompson
ee81cfff0c Possible fix for icache deadlock interaction with hptw. 2021-12-17 14:38:25 -06:00
David Harris
aebd746e71 Renamed MemAdrE to IEUAdrE and moved the MemAdrM flop from IEU to LSU to reduce wires crossing hierarchies 2021-12-15 12:10:45 -08:00
David Harris
865d5ce0b1 Renamed dtim->ram and boottim ->bootrom 2021-12-14 13:43:06 -08:00
Ross Thompson
9886ed3028 Comments for dcache and icache refactoring. 2021-12-14 14:46:29 -06:00
slmnemo
021faaf8cd Removed .* from mmu instance inside lsu.sv. 2021-12-08 00:15:30 -08:00
Ross Thompson
705572f0ac Fixed a very complex interaction between interrupts, the icache, dcache, and hptw.
If an interrupt occurred at the start of an ITLB miss or DTLB miss the page table
walk should be aborted before starting.
2021-11-20 22:35:47 -06:00
Ross Thompson
8a51fe76c1 Partial cleanup of unused signals in caches and bpred. 2021-10-24 15:04:20 -05:00
David Harris
c9e9cd4a60 more lsu/ifu lint cleanup 2021-10-23 12:10:13 -07:00
David Harris
2cfbd888fd more lsu/ifu lint cleanup 2021-10-23 12:00:32 -07:00
David Harris
62a23fe878 lsu/ifu lint cleanup 2021-10-23 11:41:20 -07:00
David Harris
8e516e6391 Lint cleanup from wallypipeliendhart 2021-10-23 10:29:52 -07:00
Ross Thompson
e16c27225b Finished adding the d cache flush. Required ensuring the write data, address, and size are
correct when transmitting to AHBLite interface.
2021-09-17 13:03:04 -05:00
Ross Thompson
615fd41e7b Added states and all control and data path logic to support d cache flush. This is currently untested; however the existing regresss test passes. 2021-09-16 18:32:29 -05:00
David Harris
9ae25b0cea Added Zfencei support in instruction decoder and configurations. Also added riscv-arch-test 32-bit tests to regression. 2021-09-15 13:14:00 -04:00