Commit Graph

1109 Commits

Author SHA1 Message Date
James E. Stine
e707eeb7c8 THis includes fix for special case when conversion from fp to int/long. The previous src did not test both the flags and result and so missed this subtle bug when an Invalid happens for this type of conversion. These results are indications of undefined behavior for these operations. All fp operations now passs when this update is fixed. Much of the information why these outputs should occur is somewhat alluded to by Pascal Cuoq originally from INSA in Lyon here: https://frama-c.com/2013/10/09/Overflow-float-integer.html 2024-01-12 00:37:50 -06:00
Rose Thompson
ceae2bc714
Merge pull request #561 from davidharrishmc/dev
Added Zicond support
2024-01-11 10:20:01 -06:00
David Harris
9eb6d9c8b8 Added Zicond support 2024-01-11 07:37:15 -08:00
Rose Thompson
a932bf6b66 Removed unnecessary spill for compressed aligned to end of cache line or uncached access. 2024-01-10 13:06:16 -06:00
Rose Thompson
588e1caeba Found bugs in the no I$ implementation's abhinterface width. We were only testing XLEN=32. XLEN=64 did not properly align instructions not aligned to 8 byte boundaries. 2024-01-06 22:29:16 -06:00
David Harris
67124b0c7f Fixed typo in declaration in tlbcontrol; escape quoted argument to Verilator; added ulimit to setup so Verilator stack is large enough 2024-01-06 07:11:25 -08:00
David Harris
0781cd4a44 Improved tlbcontrol to fault on R=0,W=1; fixed more coverage testsin tlbmisc.S; changed integer type to try to speed up CoreMark; comments in Verilate 2024-01-05 22:45:15 -08:00
Rose Thompson
1f3792c823 Fixed bug # 547, but there are other bugs which follow. 2024-01-05 23:32:10 -06:00
Rose Thompson
edc56c669e Fixed bug 546. non-leaf non-zero PBMT bit raise page fault. 2024-01-05 17:10:14 -06:00
David Harris
680a014876 Finished LSU tlbcontrol coverage tests 2024-01-02 10:16:20 -08:00
David Harris
d229dc06ee Coverage improvements; remove incorrect logic checking NAPOT nonleaf PTE 2024-01-02 00:35:17 -08:00
David Harris
f4ee05e1ea Coverage improvements 2024-01-01 08:31:09 -08:00
David Harris
e5ac2d5ef0 Modified align fsm to make coverage easier 2024-01-01 08:21:31 -08:00
David Harris
6181639003 Named IFU decomp generate block 2024-01-01 07:37:40 -08:00
David Harris
c52aef86a6 Fixed coverage exclusions that no longer reference code properly 2023-12-31 20:35:08 -08:00
David Harris
8795a9db7a Merge branch 'main' of https://github.com/openhwgroup/cvw into dev 2023-12-31 20:26:47 -08:00
David Harris
536539237c Fixed exclusion tags in pmachecker 2023-12-31 20:20:31 -08:00
Rose Thompson
626b89320c More cleanup. 2023-12-29 16:51:39 -06:00
Rose Thompson
730efefc41 Cleanup. 2023-12-29 16:18:30 -06:00
Rose Thompson
6a787981c2 Restored cache store delay hazard. 2023-12-29 16:10:27 -06:00
Rose Thompson
0264a17f77 Reverted dtim to use store delay stall, but only (load after store). 2023-12-29 16:06:30 -06:00
Rose Thompson
fbab9f6c6d Updated comments about AMO and CMO stalls. 2023-12-29 15:31:11 -06:00
Rose Thompson
f59fa5089d Merge branch 'main' of https://github.com/openhwgroup/cvw 2023-12-29 15:13:18 -06:00
Rose Thompson
8030b7d100 Added partial code for uncached amo operations.
Minor fix for Makefile so coverage tests build.
2023-12-29 15:07:20 -06:00
Rose Thompson
7afeee9807 Merge branch 'main' of https://github.com/openhwgroup/cvw 2023-12-29 14:49:36 -06:00
Jordan Carlin
2fa243c46e fixed coverage exclusions in lsu and ifu 2023-12-29 11:18:23 -08:00
Rose Thompson
52dad4f130 cbo.zero works for uncached memory now! 2023-12-29 11:11:06 -06:00
Rose Thompson
d1456b2471 Progress on fixing cbo.zero for uncached memory regions. 2023-12-29 11:03:38 -06:00
Rose Thompson
482529394a Fixed some of the uncached ifu bugs. 2023-12-29 09:53:22 -06:00
David Harris
2c2f692f3a Moved forwarding logic into controller 2023-12-26 21:17:01 -08:00
David Harris
e8df856fdb Renamed CMOp to CMOpM in mmu and cache 2023-12-25 05:57:41 -08:00
David Harris
6395cd0284 Reversed numbering of adrdecs to make it easier to add new peripherals without renumbering the old ones; update figure to match 2023-12-21 12:29:37 -08:00
David Harris
06ddccd983 Fixed typo in IFU 2023-12-20 20:22:17 -08:00
David Harris
8eace30f49 Moved UnalignedPCNextF mux into IFU 2023-12-20 16:18:31 -08:00
David Harris
8552369687 Merged PR538, delete unused tests 2023-12-20 13:30:31 -08:00
Rose Thompson
b68dd74f89 Reverted logic to bit change. 2023-12-20 13:16:32 -06:00
Rose Thompson
18a96740d5 Revert RAM logic to bit change.
Added logic to hptw to prevent x propagation.
2023-12-20 13:10:20 -06:00
Rose Thompson
9de434a61b "Resolved" ram preload issues by replacing the RAM's types with bit from logic. Tested fpga synthesis. 2023-12-20 12:05:25 -06:00
Rose Thompson
9ee1ffe8fe Almost working with modelsim and verilator. 2023-12-20 11:29:31 -06:00
Rose Thompson
d617eb0977 DON'T keep this commit. 2023-12-19 16:56:40 -06:00
David Harris
b0f34a6377 Made priority of misalignment depend on ZICCLSM_SUPPORTED and made StoreAmo take prioirty over load faults 2023-12-19 12:51:45 -08:00
David Harris
6186181d46
Merge pull request #537 from ross144/main
Almost having working Verilator.  One issue in the testbench remains.
2023-12-18 18:13:56 -08:00
Rose Thompson
5062a8c89c Added parameter for cache's SRAM length.
Progress towards verilator support.
2023-12-18 12:50:49 -06:00
Rose Thompson
1d36ce3328 Fixed lint issue. 2023-12-18 12:03:54 -06:00
David Harris
6cb4a9e905 Merge branch 'main' of https://github.com/openhwgroup/cvw into dev 2023-12-15 19:27:10 -08:00
David Harris
bbdcfe24ca
Merge pull request #533 from ross144/main
Finally fixed the store delay hazard bug.
2023-12-15 19:13:53 -08:00
Rose Thompson
438451ee02 Fixed the AMO hazard. 2023-12-15 11:55:54 -06:00
David Harris
51b43bffa3 ALU cleanup 2023-12-14 19:06:39 -08:00
David Harris
29f57958a9 Fixed WALLY-lrsc in ImperasDV by setting reservation set size to native word size and adjusting imperas.ic lr_sc_grain=8 to match 2023-12-14 15:32:36 -08:00
David Harris
8eea2bdcc0
Merge pull request #531 from ross144/main
Updated wavefile
2023-12-14 14:52:31 -08:00
Rose Thompson
1ca9a8be6d I think I solved the AMO/store hazard issue introduced by removing the store delay hazard. 2023-12-14 16:31:02 -06:00
Rose Thompson
53bf68a585
Merge pull request #528 from davidharrishmc/dev
Svnapot bug fix
2023-12-13 21:30:47 -08:00
David Harris
166c98b6f6 Fixed issue 526 about WALLY-mmu-sv39-svadu-svnapot-svpbmt not checking ppn for NAPOT pages. Improved test case to check normal and malformed ppn 2023-12-13 19:43:17 -08:00
Rose Thompson
a7f0aaa722 Added comments to finish store delay stall removal. 2023-12-13 20:35:13 -06:00
Rose Thompson
9cf6b1fdeb Merge branch 'main' of https://github.com/openhwgroup/cvw 2023-12-13 20:34:35 -06:00
Rose Thompson
9f4c32d49c Merge branch 'main' of github.com:ross144/cvw 2023-12-13 20:32:59 -06:00
Rose Thompson
b69a5b59cd DTIM works without the store delay stall. Still a bit of work remaining. The DTIM needs cleanup.
The cache needs a bit of clean up and the chapter needs updates.
The controller needs to be updated to remove the store delay hazard for cmo instructions.
2023-12-13 20:32:14 -06:00
Rose Thompson
e089b421bb Got it working for the cache. 2023-12-13 20:24:46 -06:00
Rose Thompson
f592baa741 Closer. 2023-12-13 18:15:32 -06:00
Rose Thompson
eeced05f33 More progress towards store delay reduction. 2023-12-13 15:56:29 -06:00
Rose Thompson
f3d43a7713 Progress on reducing store stall in d cache. 2023-12-13 15:34:21 -06:00
David Harris
ff26baf7e8 Rolled back attempt to support Verilator 2023-12-13 12:53:44 -08:00
David Harris
333e390f8d Test commit from dev 2023-12-13 11:52:21 -08:00
David Harris
6c017141c5 Renamed HADE to ADUE for Svadu 2023-12-13 11:49:04 -08:00
David Harris
aff61ea97a Fixed Linux makefile; load branch predictor RAMs at startup for sim; fixed comment in trap; starting to make testbench more compatible with Verilator 2023-12-13 11:33:59 -08:00
Rose Thompson
3d0f9ce4f3 Cleaned up comments about pc reset. 2023-12-13 13:06:33 -06:00
Rose Thompson
c98c0dd3e0 Removed unnecessary pc reset logic from ifu and btb. 2023-12-13 13:05:10 -06:00
Rose Thompson
13bb5d845b On the way to solving the store delay hazard. 2023-12-13 10:39:01 -06:00
Jacob Pease
bc2c4d5295 Merge branch 'main' of github.com:openhwgroup/cvw 2023-12-04 15:23:22 -06:00
Rose Thompson
9348025727 Cachefsm simplifications. 2023-12-03 18:19:00 -06:00
Rose Thompson
1ebc7aa95a Optimized align. 2023-12-03 16:43:55 -06:00
Rose Thompson
3bef2a2361 Better name for cache signals. 2023-12-03 15:49:06 -06:00
Jacob Pease
7e494f2d3b Removed vivado property from rom1p1r.sv. It's now dynamically added using the FPGA makefile. 2023-12-01 18:59:18 -06:00
Rose Thompson
025b04ae8b Minior cleanup. 2023-11-29 19:44:59 -06:00
Rose Thompson
ab68a76e77 LineDirty is either the Victim Way or the Flush way dirty, but never the hitway dirty. CBO instructions require hitway dirty. However we cannot mux hitway dirty into LineDirty wihtout creating a combinational loop so we need a separate port. 2023-11-29 17:58:39 -06:00
Rose Thompson
f11f88ac2b Updates to tlb to check access permissions for cbo* 2023-11-29 16:20:43 -06:00
Rose Thompson
f4e4aac8b5 Added CMOp to pmp checker 2023-11-29 16:09:31 -06:00
Rose Thompson
fc04b6f7d8 Removed redundant ZICBOM/Z_SUPPORTED from pmachecker. 2023-11-29 15:39:39 -06:00
Rose Thompson
80336493f5 Cleaned up redundant ZICBOM/Z_SUPPORTED. 2023-11-29 15:20:49 -06:00
Rose Thompson
053b094620 Simpilified pmachecker for cmo. 2023-11-29 12:26:18 -06:00
Rose Thompson
d29b2b95f7 Additional cleanup. 2023-11-28 23:28:50 -06:00
Rose Thompson
4149ae6c11 More cleanup. 2023-11-28 23:05:47 -06:00
Rose Thompson
143c6ca4d1 Simplification to alignment. 2023-11-28 22:28:11 -06:00
Rose Thompson
a69a70ba7f Removed unused hardware from alignment. 2023-11-28 19:54:25 -06:00
Rose Thompson
865ebf8b9b cclsm cleanup. 2023-11-28 19:41:46 -06:00
Rose Thompson
f4e77e9669 Clean up. 2023-11-28 14:21:37 -06:00
Rose Thompson
df85428041 More optimizations for cclsm. 2023-11-28 14:19:30 -06:00
Rose Thompson
4d4790ecf9 Optimizations to cclsm. 2023-11-28 14:18:06 -06:00
Rose Thompson
0229df4a0f Oups. Introduced undetected bug into the cache's cbo insructions. 2023-11-28 01:03:48 -06:00
Rose Thompson
9a24a5d957 Renamed signal in pmachecker. 2023-11-28 00:05:12 -06:00
Rose Thompson
69653e5faa Fixed minor bug in the cbo hazard logic. 2023-11-27 23:38:53 -06:00
Rose Thompson
195def5808 Extended the abhcacheinterface to zero a cacheline's worth of uncached memory on cbo.zero. 2023-11-27 21:24:30 -06:00
Rose Thompson
9290c3f957 Added correct cbo fault behavior. 2023-11-27 20:57:33 -06:00
Rose Thompson
beb95dd592 Modified the pmachecker to correctly check the permissions for cmo instructions.
However this isn't fully tested.
2023-11-27 17:44:11 -06:00
Rose Thompson
337903d8dd More cache simplifications. 2023-11-27 14:59:42 -06:00
Rose Thompson
08549446ef Reduced cache fsm complexity. 2023-11-27 13:13:36 -06:00
Rose Thompson
c3da4c3c31 Clarified names in cacheway. 2023-11-27 12:56:11 -06:00
Rose Thompson
d7ef490c12 Sutble bug in the cacheway logic for cacheline invalidation. 2023-11-27 01:27:09 -06:00
David Harris
1f57df7f8b Fixed reference to deleted atomic signal in cache 2023-11-23 20:29:10 -08:00
David Harris
3f3c20a38f Merge branch 'main' of https://github.com/openhwgroup/cvw into dev 2023-11-21 14:04:02 -08:00