3fd8f22f66
Fix many illegal instruction decode cases
Peter Rugg
2025-01-14 16:13:56 +00:00
0ae1d8a275
Clear compressed and uncompressed BTBs on mispred
Peter Rugg
2025-01-16 14:54:21 +00:00
ce2ded19ae
Optimise timing/scheduling by always returning the head of the RAS stack. This means that two returns decoded in the same cycle are likely to result in a misprediction. The trouble here was that the Decode loop wouldn't build with slight changes due to a scheduling conflict through the RAS due to the dependence of the next ras.first method on the earlier ras.pop method. This was indeed an unpleasant combinational path between concurrently decoding instructions. This change allows all RAS predictions to be independent (by assuming no pushes or pops occur earlier in the bundle than a return).
Jonathan Woodruff
2025-01-20 15:15:14 +00:00
1ae93da4f8
Restore per-instruction commit prints by default
Peter Rugg
2025-01-08 18:43:21 +00:00
1df304a820
Prevent various debug prints by default
Peter Rugg
2025-01-08 18:43:05 +00:00
d1bea2faf0
Corrected CCSeal decoding function
Franz Fuchs
2024-12-20 10:59:15 +00:00
995b978e59
Merge pull request #29 from CTSRD-CHERI/faf28_fix_rvfi_offset
Franz Fuchs
2024-12-16 12:19:26 +00:00
2983835e26
Fixed pc_wdata to be addresses instead of offsets
Franz Fuchs
2024-12-16 12:13:59 +00:00
57fcf7a52a
Revert "Revert "Use only 20 bits of address on the AXI lite port""
Jonathan Woodruff
2024-09-26 11:06:31 +01:00
1cfc58c2cc
Fix debug module reset state machine
Peter Rugg
2024-09-16 16:10:02 +01:00
6fc7327b93
Support narrow debug module register accesses
Peter Rugg
2024-09-16 15:59:50 +01:00
aeae9b1f63
Busy the system bus when performing writes
Peter Rugg
2024-09-16 16:00:11 +01:00
af8432d3f3
Return Abstract Command Error on unsupported CSRs
Peter Rugg
2024-09-12 17:45:02 +01:00
3b6b78db83
Fix src_Verifier directories not being included in TestRIG builds
Peter Rugg
2024-09-16 16:12:40 +01:00
47e12b8e65
Revert "Use only 20 bits of address on the AXI lite port"
gameboo
2024-09-11 20:02:35 +01:00
c766187368
Use only 20 bits of address on the AXI lite port
gameboo
2024-07-08 17:12:47 +01:00
02ee2bdee0
Move RVFI toggle into Include_RISCY_Config.mk
Samuel Stark
2024-05-28 16:11:14 +01:00
7e1c9fdc98
Bump BlueStuff
Peter Rugg
2024-05-21 16:22:00 +01:00
a5353f8f0f
Bump BlueStuff
Peter Rugg
2024-05-21 16:16:55 +01:00
1f382b1563
Add license again to TourPred.bsv
Franz Fuchs
2024-05-18 17:12:43 +01:00
3e4dd64673
Merge pull request #27 from CTSRD-CHERI/CHERI_unified_makefile
Jonathan Woodruff
2024-05-17 11:29:20 +01:00
1b9d498e95
Standardise on using underscores in directory names in makefiles.
Jonathan Woodruff
2024-05-17 11:21:42 +01:00
2c648eb1ed
Restructure makefiles so that all common and branch-specific flags/files are in Include_RISCY_Config.mk so that this can be included from an external repo without replicating Toooba branch-specific flags in that repo.
Jonathan Woodruff
2024-05-10 18:00:21 +01:00
3b7cc5261a
Merge pull request #23 from CTSRD-CHERI/faf28_konata
Franz Fuchs
2024-04-16 16:45:28 +01:00
3532d44d56
Performed merge with CHERI
Franz Fuchs
2024-04-16 16:42:37 +01:00
598ac6574e
Added working Konata support
Franz Fuchs
2024-04-08 13:13:27 +01:00
449070e347
Copied over preliminary Konata support from 89b0c37a7b
Franz Fuchs
2024-04-08 10:59:33 +01:00
9e4c8e54e1
Merge branch 'CHERI' into jdw57_getIssueLd_simplify
Jonathan Woodruff
2024-04-15 09:14:31 +01:00
70b82fb164
Insert deburster again on the vcu118-specific wrapper, as this design is known to work for the vcu118, or specifically, using the width converter.
Jonathan Woodruff
2024-04-05 14:06:42 +01:00
854e8e5bfb
Another experiment to see if we can resolve the vcu118 build. This one puts the in-order shim before the width converter.
Jonathan Woodruff
2024-04-05 10:54:39 +01:00
8990ae56ed
Revert "Potential workaround for issue with vcu118 memory bus error."
Jonathan Woodruff
2024-04-05 10:44:50 +01:00
f86ea0203d
Potential workaround for issue with vcu118 memory bus error. Just use the same ID for all outstanding requests such that all requests are in-order. Previously we were working fine with requests serialised; requests are now fully pipelined and out-of-order. This change should roll back to in-order, but still pipelined. This only affects the top-level used in the GFE (vcu118). This design is working on the DE10 setup, so the issue is not believed fundamental with CoreW.
Jonathan Woodruff
2024-04-04 14:09:16 +01:00
6f8c371a5c
Roll back DTlB to two cycles for timing on DE10.
Jonathan Woodruff
2024-03-25 12:52:51 +00:00
e0eefbcfd0
Be a little more careful with outstanding requests.
Jonathan Woodruff
2024-03-18 09:10:55 +00:00
235f025db8
Bump Bluestuff.
Jonathan Woodruff
2024-02-20 14:19:46 +00:00
dd076fb189
Bump BlueStuff
Peter Rugg
2024-02-16 17:04:13 +00:00
271bc9c0e8
Experimentally remove deburster. This thing has a seraliser in it that serialises memory accesses, which is a disaster for performance.
Jonathan Woodruff
2024-02-16 09:50:07 +00:00
15fd2a4009
fixed compiler error for use of calloc
Franz Fuchs
2024-02-08 15:31:42 +00:00
6838b02274
Move to 4-way L1 caches to reduce area usage of splitting data ways into seperate BRAMs.
Jonathan Woodruff
2024-02-05 09:40:15 +00:00
0784902e45
Tune the instruction fetch FIFO to the lower-latency ICache.
Jonathan Woodruff
2024-02-02 13:26:15 +00:00
b65994c00c
Include the new single-cycle CCPipe as a seperate implementation, and use it only in the L1 caches so that the L2 cache can have lower resource utilisation and better timing. (Resource utilisation is up about 5% with the new design, and it's not necessary for the L2 cache.)
Jonathan Woodruff
2024-02-02 11:50:45 +00:00
ccc71952bf
Use forwarding BRAMs in L2 Cache. Duh; this is required for the new CCPipe structure.
Jonathan Woodruff
2024-02-01 13:44:36 +00:00
7608543da5
Move back to more traditional implementation of the forwarded BRAM, which also workst.
Jonathan Woodruff
2024-02-01 10:07:48 +00:00
3416040a74
Forward using a working forwarding memory rather than logic in CCPipe. This design runs CoreMark successfully.
Jonathan Woodruff
2024-01-31 13:28:49 +00:00
0e87595d73
Work toward eliminating a cycle of cache latency by doing data lookup in parallel with tag lookup.
Jonathan Woodruff
2024-01-31 10:15:51 +00:00
8e4848c4bc
Turn off tracing in instruction fetch.
Jonathan Woodruff
2024-01-26 16:32:16 +00:00
be26ac9f79
Fix a typo in a comment.
Jonathan Woodruff
2024-01-26 16:31:49 +00:00
9baadf58f3
Tune the size of the fetch pipeline fifos. This appears to make a 3% performance improvement in CoreMark.
Jonathan Woodruff
2024-01-26 16:02:18 +00:00
e873bbd553
Clean up Fetch stage optimisations. This includes removing references to Fetch3, which no longer exists since Fetch2 and Fetch1 are merged (Fetch3 is now Fetch2).
Jonathan Woodruff
2024-01-26 15:14:03 +00:00
ca4e120a6c
Use DReg instead of Reg, as intended.
Jonathan Woodruff
2024-01-22 12:06:39 +00:00
b586937953
Fix RVFI_DII by only going to the next ID when the instruction fetch is going ahead.
Jonathan Woodruff
2024-01-22 11:38:52 +00:00
640f330d7d
Briefly report flush when vm_info has a change in the itlb to give an opportunity to flush the buffered translations.
Jonathan Woodruff
2024-01-19 11:48:04 +00:00
d30bd71e72
Allow consuming TLB response while TLB is being flushed.
Jonathan Woodruff
2024-01-18 13:04:21 +00:00
83c756a4f4
Tidy up data mem pipeline changes to remove duplicated code.
Jonathan Woodruff
2024-01-17 16:09:42 +00:00
9d12fefda8
Remove commented-out code.
Jonathan Woodruff
2024-01-17 14:30:34 +00:00
829a787be5
Move to vector functions as it's cleaner.
Jonathan Woodruff
2024-01-17 13:41:43 +00:00
5a1ed7c57f
Allow a vector of translations to be remembered. Just do 2 for now.
Jonathan Woodruff
2024-01-17 13:21:38 +00:00
4f91e54bd2
Properly remove pipline stage in fetch and use a seperate rule to do the proper TLB lookup if necessary.
Jonathan Woodruff
2024-01-16 17:00:10 +00:00
eee5a2c23b
Experiment with a zero-cycle TLB in instruction fetch as well.
Jonathan Woodruff
2024-01-16 10:05:17 +00:00
25a728b6d3
Optimise timing of TLB translation, ensuring that the translated address proceeds with minimal conditions to the output.
Jonathan Woodruff
2024-01-16 09:50:35 +00:00
f9bf4ad856
Use default value on reset of Map.
Jonathan Woodruff
2024-01-15 17:00:00 +00:00
2c3c1da5c3
Solve last issue to allow doExeMem and doFinishMem.
Jonathan Woodruff
2024-01-09 17:12:39 +00:00
2f6a0980d9
Move all the work other than the TLB request out of doExeMem back to doRegReadMem.
Jonathan Woodruff
2024-01-09 12:37:34 +00:00
3e3531ffd5
Revert "A scheduling experiment to try to get doRegReadMem and doExeMem"
Jonathan Woodruff
2024-01-09 11:54:53 +00:00
b733e05a86
A scheduling experiment to try to get doRegReadMem and doExeMem executing in the same clock cycle. It doesn't seem to work (yet).
Jonathan Woodruff
2024-01-09 11:52:29 +00:00
32d094082b
Some tracing for performance in the memory pipeline. Also, add some ports to registers in DTLB to potentially allow single-cycle lookup.
Jonathan Woodruff
2024-01-08 15:28:24 +00:00
2d05514b66
An experimental simplification of the SplitLSQ, which I think works because the Memory pipeline only ever reads the getIssueLd interface in the same rule that it calls issueLd.
Jonathan Woodruff
2023-12-12 17:29:27 +00:00
8cd6e8db87
Bump BlueStuff
Peter Rugg
2023-10-31 13:25:35 +00:00
373b849d29
Merge branch 'tag-clear' into CHERI
Peter Rugg
2023-06-27 11:38:42 +01:00
ec4eacac9c
Fix CSetAddr tag clear bug
Peter Rugg
2023-06-26 18:01:56 +01:00
3ebf537f71
Tidy up tracing options, including using RVFI when building for bluesim (which I'm sure we had meant to be doing?).
Jonathan Woodruff
2023-06-23 13:09:38 +00:00