Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update soc branch with changes from main #921

Open
wants to merge 487 commits into
base: soc
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
487 commits
Select commit Hold shift + click to select a range
bdd0043
Testbench terminates buildroot sim at instruction limit
davidharrishmc May 9, 2024
a89e064
Run both Questa and VCS during nightly regression
davidharrishmc May 9, 2024
cfea047
Merge pull request #790 from davidharrishmc/dev
rosethompson May 9, 2024
61e5596
Fixed wsim to be able to invoke TestFloat with Verilator. However, T…
davidharrishmc May 10, 2024
54750ae
Fixed out-of-bound vector accesses in testbench_fp when FLEN < Q_LEN
davidharrishmc May 10, 2024
04457d4
Updated sim-testfloat-verilator to use wsim
davidharrishmc May 10, 2024
66b33c0
Added Zaamo and Zalrsc support to testbench and regression
davidharrishmc May 10, 2024
b11a8ae
Fixed linker to put rventrypoint at 0x80000000 in examples
davidharrishmc May 10, 2024
93ea5b0
Fixed wavefile to have function logger.
rosethompson May 10, 2024
10b08f8
Updated brach predictor names to more logical names and match textbook.
rosethompson May 10, 2024
4bd5d33
Modified testbench so it instantiates the function logger if DEBUG is…
rosethompson May 10, 2024
b027fa4
Merge branch 'main' of https://github.com/openhwgroup/cvw
rosethompson May 10, 2024
171056f
Merge pull request #791 from davidharrishmc/dev
rosethompson May 10, 2024
ceb31fe
Merge branch 'main' of https://github.com/openhwgroup/cvw
rosethompson May 10, 2024
99bba73
Merge pull request #792 from ross144/main
davidharrishmc May 10, 2024
53d6b96
Increased NORMSHIFTSZ by 2 to fix failing testfloat cvtint with IDIV_…
davidharrishmc May 10, 2024
807ef44
fixed fma testfloat issue #578
kparry4 May 11, 2024
c0743a1
Added missing convert F to/from Int64 tests for arch64f
davidharrishmc May 11, 2024
009d251
Fixed cvtint bug by adding 2 bits to convert width; initial implement…
davidharrishmc May 12, 2024
7206f90
Merge pull request #793 from kparry4/main
davidharrishmc May 12, 2024
380d88f
Merged config-shared after fma fix
davidharrishmc May 12, 2024
e87a269
Fix fcvt.lu.s bug and lint issue in packoutput
davidharrishmc May 12, 2024
d0dad1d
Fixed testbench_fp to use modified unpacker
davidharrishmc May 12, 2024
75c10bd
Moved case.sh to tests/fp
davidharrishmc May 13, 2024
d4ac53f
commented legal TEST options
davidharrishmc May 13, 2024
ada7c0c
Merge pull request #794 from davidharrishmc/dev
rosethompson May 13, 2024
c2b9e32
Fround cleanup
davidharrishmc May 13, 2024
2dfada0
Started parameterizing FMA
davidharrishmc May 13, 2024
e8f5545
Got imperasDV running linux simulation again.
rosethompson May 13, 2024
175c18d
Parameterized FMA. However, some offsets are not parameterized. See…
davidharrishmc May 13, 2024
4a72922
update config to derive MISA from macros
jordancarlin May 14, 2024
c649cfb
Expanded fpcalc to support quad
davidharrishmc May 14, 2024
0887e90
Modified IBM Floating Point Dataset Generator for Quads
Shreesh-Kulkarni May 14, 2024
440137f
Merge pull request #800 from Shreesh-Kulkarni/main
davidharrishmc May 14, 2024
94ffd89
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
davidharrishmc May 14, 2024
30bea18
Maybe have imperasDV linux simulation merged into wally.do
rosethompson May 14, 2024
9aebc15
Python script to generate coverpoints for the IBM FP Dataset
Shreesh-Kulkarni May 14, 2024
5fdb8fb
Merge pull request #801 from Shreesh-Kulkarni/main
davidharrishmc May 14, 2024
46bf99d
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
davidharrishmc May 14, 2024
990d404
Test using fpcalc for fp_dataset.py
davidharrishmc May 14, 2024
1874226
Merge pull request #799 from davidharrishmc/dev
rosethompson May 14, 2024
4cc8859
Updated wsim to use --coverage rather than -coverage.
rosethompson May 14, 2024
1c20bb9
Added riscv-isac for test vector generation
davidharrishmc May 14, 2024
970af95
Fixed bug with gui mode testbench_fp
rosethompson May 14, 2024
a0686c9
Merge branch 'openhwgroup:main' into main
rosethompson May 14, 2024
46e6459
Updated script to run linux with imperasDV.
rosethompson May 14, 2024
1065b89
Fix Q_SUPPORTED on derived configs
jordancarlin May 14, 2024
bf397f7
Change all SUPPORTED type localparamters to one bit logic. Update con…
jordancarlin May 14, 2024
fccf40d
Merge pull request #802 from ross144/main
davidharrishmc May 15, 2024
3a62c29
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
davidharrishmc May 15, 2024
291d1e6
M implies Zmmul
jordancarlin May 15, 2024
e295454
Merge pull request #798 from jordancarlin/newConfig
rosethompson May 15, 2024
4ffce9a
Switch riscvassertions to use bitwise operators instead of logical op…
jordancarlin May 15, 2024
3df5a5a
Remove additional bitwise operator
jordancarlin May 15, 2024
4c7cec7
Merge pull request #803 from jordancarlin/dev
rosethompson May 15, 2024
ef778da
Eliminate more logical operators and replace with bitwise
jordancarlin May 15, 2024
1d8ffee
Certain Zcb instructions are dependent on other extensions, not the e…
jordancarlin May 16, 2024
5e02ce6
Merge pull request #805 from jordancarlin/Zcb_fix
davidharrishmc May 16, 2024
506973c
Added gfmul example
davidharrishmc May 16, 2024
08601d7
Added functionallity to testbench.sv for single elf files.
rosethompson May 16, 2024
3fdfa0f
wsim now simulates a single elffile.
rosethompson May 16, 2024
8391b8b
Progress towards unified regression.
rosethompson May 16, 2024
9a42aab
Merge pull request #804 from jordancarlin/dev
rosethompson May 16, 2024
62eaca0
Almost working ImperasDV with testbench.sv and wally.do. For some rea…
rosethompson May 16, 2024
bd84507
Fixed more bugs with wally.do.
rosethompson May 17, 2024
a885240
temporary commit to help debug merging testbench.sv with testbench-im…
rosethompson May 17, 2024
d9807bb
This is crazy. I'm merging testbench.sv into testbench-imperas.sv to …
rosethompson May 17, 2024
e6902eb
Ok. How does it still work? testbench-imperas.sv the same as testbenc…
rosethompson May 17, 2024
038aae3
Yay. Finally found the issue with the integrated testbench.sv and imp…
rosethompson May 17, 2024
0ed75a3
Reverted testbench-imperas.sv incase someone wants this.
rosethompson May 17, 2024
e008999
wsim now supports lockstep and single elf
rosethompson May 17, 2024
224b2e4
Merge branch 'main' of https://github.com/openhwgroup/cvw
rosethompson May 17, 2024
6e3ccbb
Almost have it working for both buildroot and single elfs.
rosethompson May 17, 2024
c320900
Merge pull request #806 from ross144/main
davidharrishmc May 18, 2024
ad568e9
Updated readme.
rosethompson May 20, 2024
55008e9
Formated readme.
rosethompson May 20, 2024
7cc1fcb
More formating.
rosethompson May 20, 2024
33eb598
More readme formating.
rosethompson May 20, 2024
d025bd0
More improvements to the readme.
rosethompson May 20, 2024
d6b4a1f
Merge branch 'main' of https://github.com/openhwgroup/cvw
rosethompson May 20, 2024
f410bbb
Use Zfa tests from riscv-arch-test instead of wally-riscv-arch-test
jordancarlin May 21, 2024
d9ac37d
Merge pull request #807 from ross144/main
davidharrishmc May 21, 2024
af75140
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
davidharrishmc May 21, 2024
88eb7bd
Pulled brev8 out of byteop so redundant byteop logic is not needed in…
davidharrishmc May 22, 2024
a17204b
Continued bmu cleanup
davidharrishmc May 22, 2024
3ad815c
Reordered Zicond support in ALU
davidharrishmc May 22, 2024
c160ced
Zk* cleanup
davidharrishmc May 22, 2024
d9a1691
Simplified sha512_32
davidharrishmc May 23, 2024
ac153bc
More simplifying sha512_32
davidharrishmc May 23, 2024
fb8e97d
Remove existing derived configs before creating new ones
jordancarlin May 23, 2024
fc68149
Merge pull request #811 from jordancarlin/dev
rosethompson May 23, 2024
6a2192d
Revert "Remove existing derived configs before creating new ones"
jordancarlin May 23, 2024
a1e22ad
Delete deriv directory in derivgen.pl before remaking derived configs
jordancarlin May 23, 2024
5b7b23f
Merge pull request #812 from jordancarlin/revert-811-dev
rosethompson May 23, 2024
b0d1344
Commented sha instructions
davidharrishmc May 24, 2024
e626052
simplified AES32de mixcolumns because input is only one byte
davidharrishmc May 24, 2024
ec5c67a
AES cleanup
davidharrishmc May 24, 2024
b2689b4
AES cleanup
davidharrishmc May 24, 2024
a959775
AES cleanup
davidharrishmc May 24, 2024
dcafe47
Add froundnx and fround.d tests
jordancarlin May 24, 2024
cfe83f5
Added derived configs to test Zb* and Zk* individually
davidharrishmc May 24, 2024
ae29a9b
Update control bits for froundnx
jordancarlin May 24, 2024
fb77440
Update fpctrl fmt to work for fround instructions
jordancarlin May 24, 2024
153e66c
Merge pull request #810 from davidharrishmc/dev
rosethompson May 25, 2024
b830d20
Modify Fround Tmask to work for X=1
jordancarlin May 25, 2024
6f7a802
Merge branch 'main' of https://github.com/openhwgroup/cvw into fround…
jordancarlin May 26, 2024
14b9223
Merge pull request #813 from jordancarlin/fround_fixes
davidharrishmc May 26, 2024
8edc405
compilable tests generating for loaditypes[lb, lh, lw, ld, lbu, lhu, …
quswarabid May 26, 2024
29d7cd5
unwanted comments
quswarabid May 26, 2024
1bf9b13
added some sb types
quswarabid May 26, 2024
997b590
sb types are all passing, loaditypes are not!
quswarabid May 27, 2024
c9b59c8
Merge pull request #815 from quswarabid/covergen
rosethompson May 27, 2024
2985cfb
Preliminary work to merge functional coverage into wally.do.
rosethompson May 27, 2024
26c6eec
Getting closer to functional coverage integration.
rosethompson May 27, 2024
ff61101
Closer?
rosethompson May 27, 2024
6f79dca
Merge branch 'main' of https://github.com/openhwgroup/cvw
jordancarlin May 27, 2024
4c0261f
Closer. Needed to reorder includes and defines.
rosethompson May 27, 2024
92ee56c
Yay. Finally found the bug which prevented wally.do from having funct…
rosethompson May 27, 2024
4a1e856
Almost working functional coverage in wally.do
rosethompson May 27, 2024
48fd365
Still don't understand why wally.do can't load testbench.sv with func…
rosethompson May 28, 2024
0c5b70c
It's a bit hacky. But I've got functional coverage working with our w…
rosethompson May 28, 2024
a88d5f4
Functional coverage works with wally.do
rosethompson May 28, 2024
44f2518
Merge pull request #816 from ross144/main
davidharrishmc May 28, 2024
273b41d
Changed name of cache parameter NUMLINES to NUMSETS to better match b…
rosethompson May 28, 2024
8494691
Changed name CacheWriteData to WriteData.
rosethompson May 28, 2024
f4626d5
Fixed bug so that wsim can start logging after a given number of inst…
rosethompson May 29, 2024
7ecd1c7
The vcu108 works again. Added renumber.py script that renumbers probe…
JacobPease May 30, 2024
6bf43eb
Merge branch 'main' of github.com:openhwgroup/cvw
JacobPease May 30, 2024
3f7659c
Removed old fpgaTop.v file.
JacobPease May 30, 2024
24ba513
Merge pull request #817 from JacobPease/main
rosethompson May 30, 2024
7a417d7
Added true bootloader to fpga/zsbl directory.
JacobPease May 31, 2024
9ed78b5
Merge pull request #818 from JacobPease/main
rosethompson May 31, 2024
2a6c5a1
Merge branch 'main' of https://github.com/openhwgroup/cvw
rosethompson Jun 1, 2024
a780932
Simplified wsim so it automatically figures out if the second paramet…
rosethompson Jun 1, 2024
224b846
Updated readme to reflect changes to wsim.
rosethompson Jun 1, 2024
2382677
Got the directory mode wsim working!
rosethompson Jun 1, 2024
3da6255
Updated readme.
rosethompson Jun 1, 2024
b9d177e
Merge pull request #819 from ross144/main
davidharrishmc Jun 1, 2024
c560a0a
Merge branch 'main' of https://github.com/openhwgroup/cvw
jordancarlin Jun 2, 2024
731e1fe
Updated spill logic to reflect changes in textbook.
rosethompson Jun 2, 2024
b45b7ff
Signal name changes to match book.
rosethompson Jun 2, 2024
f73ebc1
Merge pull request #820 from ross144/main
davidharrishmc Jun 2, 2024
0474403
Updated more signal names to match book.
rosethompson Jun 2, 2024
0ca10e7
Last of the branch predictor signal name updates.
rosethompson Jun 2, 2024
5d8c060
Fixed testcount to not make spurious warnings about src
davidharrishmc Jun 5, 2024
1af670d
Fixed testcount to not make spurious warnings about src
davidharrishmc Jun 5, 2024
fc0fa69
Merge pull request #826 from davidharrishmc/dev
rosethompson Jun 6, 2024
9489771
Fixed support for individual crypto extensions without Zb*
davidharrishmc Jun 6, 2024
5dfde80
Merge pull request #827 from davidharrishmc/dev
rosethompson Jun 6, 2024
8b88775
Simplified 3:1 mux to 2:1 mux when only Zbkc is supported and clmulr …
davidharrishmc Jun 10, 2024
b4bddf1
Fixed typo in derivgen
davidharrishmc Jun 10, 2024
9bd5bd8
Removed duplicate bpred 10_16_16 entries from derivlist
davidharrishmc Jun 10, 2024
5094122
Simplifying fround
davidharrishmc Jun 10, 2024
1873064
Simplified fround exact case
davidharrishmc Jun 10, 2024
4c066c0
Removing two unnecessary 0's from fmashiftcalc interface
davidharrishmc Jun 10, 2024
3284dd2
Removed unnecessary Zero checking on FmaPreResultSubnorm
davidharrishmc Jun 10, 2024
e02c100
postprocessor shift amount simplification
davidharrishmc Jun 10, 2024
c5b1338
Merge pull request #829 from davidharrishmc/dev
rosethompson Jun 10, 2024
29fe598
Fixed testfloat regression and added bitmanip/crypto variants
davidharrishmc Jun 11, 2024
46cc64b
Merge pull request #830 from davidharrishmc/dev
rosethompson Jun 11, 2024
b7e2f34
shiftcorrection cleanup
davidharrishmc Jun 12, 2024
544aa7c
shiftcorrection cleanup
davidharrishmc Jun 12, 2024
28142ef
Formatting shiftcorrection
davidharrishmc Jun 12, 2024
312c9c9
Updated logger to new IClass signal name
davidharrishmc Jun 12, 2024
b77fcd7
Merge branch 'main' of https://github.com/openhwgroup/cvw
rosethompson Jun 13, 2024
fb75fe4
Remove stale questa wkdir before regression
davidharrishmc Jun 14, 2024
334b616
Removed redundant apt-get line
davidharrishmc Jun 14, 2024
6789f32
Starting code cleanup
davidharrishmc Jun 14, 2024
b1c9450
Code cleanup: RAM, fdivsqrt
davidharrishmc Jun 14, 2024
8f09240
Simplified outdated documentation pointers
davidharrishmc Jun 14, 2024
53477b2
Code cleanup
davidharrishmc Jun 14, 2024
bfd3c9f
Fixed gettenvval when variable is undefined per verilator Issue 5179
davidharrishmc Jun 14, 2024
4a4bbdf
More code cleanup
davidharrishmc Jun 14, 2024
54c0726
Merge pull request #833 from davidharrishmc/dev
rosethompson Jun 15, 2024
2fc9edf
Fixed Issue #752 of Verilator simulation by changing LRUMemory to be …
davidharrishmc Jun 18, 2024
7509e85
Removed asynchronous reset causing lint issue in peripherals
davidharrishmc Jun 18, 2024
ecae110
Lint cleanup
davidharrishmc Jun 18, 2024
cac67aa
Lint cleanup
davidharrishmc Jun 18, 2024
3fa37b0
Lint cleanup
davidharrishmc Jun 18, 2024
45f5052
Lint cleanup
davidharrishmc Jun 18, 2024
8bae52b
Lint cleanup of unused signals
davidharrishmc Jun 18, 2024
a493b9b
Merge pull request #835 from davidharrishmc/dev
jordancarlin Jun 18, 2024
c1fd7a9
Removed unused signals
davidharrishmc Jun 18, 2024
cb563e8
Clean up unused signals
davidharrishmc Jun 18, 2024
301ded0
Unused signal cleanup
davidharrishmc Jun 18, 2024
d2933ed
Merge pull request #836 from davidharrishmc/dev
rosethompson Jun 18, 2024
955f5d8
Merge branch 'main' of https://github.com/openhwgroup/cvw
jordancarlin Jun 19, 2024
00ccd80
Update VCS RTL file exclusions with renamed ram
jordancarlin Jun 19, 2024
d58b454
Finish switching Zfa to use riscv-arch-test
jordancarlin Jun 19, 2024
569ccfd
Update riscv-arch-test submodule
jordancarlin Jun 19, 2024
156bfc0
Update f_fma tests to use smaller files from riscv-arch-test
jordancarlin Jun 19, 2024
1f569ed
Merge pull request #838 from jordancarlin/vcs_fix
davidharrishmc Jun 19, 2024
54cb612
Fixed lint error in fdivsqrtpreproc for rv32 IDIV_ON_FPU
davidharrishmc Jun 19, 2024
4b4980e
Fixed undriven OutFmt
davidharrishmc Jun 19, 2024
10e6d58
Removed unnecessary Umfirst from early termination
davidharrishmc Jun 19, 2024
ab1af0f
Merge branch 'main' of https://github.com/openhwgroup/cvw into main
rosethompson Jun 19, 2024
c5dac4d
Removed *** from fpga top.
rosethompson Jun 19, 2024
ab1ee3d
Removed *** from IFU, lrcs.
rosethompson Jun 19, 2024
cc58bfd
Removed more *** from the ifu.
rosethompson Jun 19, 2024
f0e5bbe
Removed remaining *** from IFU.
rosethompson Jun 19, 2024
4911642
Removed *** and updated comments for bpred and align.
rosethompson Jun 19, 2024
5e5ca08
Removed more *** from lsu and updated assertions for dtim.
rosethompson Jun 19, 2024
77523c5
LSU no longer has ***.
rosethompson Jun 19, 2024
71f267a
Added InstrUpdateDAF to the HPTW.
rosethompson Jun 19, 2024
24916d4
Refactored TLBMiss and TLBMissOrUpdateA(D) to simplify spill, ifu, ls…
rosethompson Jun 19, 2024
9b6b661
Cleaned up hptw.
rosethompson Jun 19, 2024
576f1b9
Moved the *** from trap to an issue.
rosethompson Jun 19, 2024
91c844c
Removed more *** from camline and csrc.
rosethompson Jun 19, 2024
7f0ba87
Updated comments in uart.
rosethompson Jun 19, 2024
d368f2e
Removed *** from testbench.
rosethompson Jun 19, 2024
64712d2
Updated wave to match changes in testbench.
rosethompson Jun 19, 2024
2d8973d
Updated wavefile to use new names.
rosethompson Jun 19, 2024
685f4d3
Removed the last of the ***.
rosethompson Jun 19, 2024
1ffd30f
Merge pull request #846 from ross144/main
davidharrishmc Jun 19, 2024
9922b24
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
davidharrishmc Jun 19, 2024
46ace52
Updated verilator makefile.
rosethompson Jun 19, 2024
e4febf2
Merge pull request #847 from ross144/main
davidharrishmc Jun 19, 2024
5f1ee1a
Fixed undriven signal in certain config
davidharrishmc Jun 19, 2024
9e93f21
Updated covergen to not include stores as they are incomplete.
rosethompson Jun 19, 2024
e88a2f7
Merge branch 'main' of github.com:ross144/cvw into main
rosethompson Jun 19, 2024
0ab3f28
Lint cleanup
davidharrishmc Jun 20, 2024
27457f4
Merge pull request #848 from ross144/main
davidharrishmc Jun 20, 2024
25780f5
Fixed Verilator testbench issue from FunctionName by rolling back to …
davidharrishmc Jun 20, 2024
90f5a4e
Only run fmsub_b15 for f_fma test
jordancarlin Jun 20, 2024
d8d94ee
Merge pull request #808 from jordancarlin/main
davidharrishmc Jun 20, 2024
486e6ff
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
davidharrishmc Jun 20, 2024
e1fc44a
Merge pull request #849 from davidharrishmc/dev
rosethompson Jun 20, 2024
b76941d
Use VCS built-in default macro instead of defining SIM_VCS
jordancarlin Jun 21, 2024
0fcc787
Updated march lists
davidharrishmc Jun 26, 2024
f003f8f
Merge pull request #852 from davidharrishmc/dev
jordancarlin Jun 26, 2024
0da6e35
Fix derivgen.pl to find exact keys
jordancarlin Jun 26, 2024
1a1da9b
Update derivlist.txt based on exact matching
jordancarlin Jun 26, 2024
a013c70
Merge pull request #853 from jordancarlin/derivgen_fix
davidharrishmc Jun 26, 2024
93fb0f2
Files for Quad Precision Testing Support for Wally
Shreesh-Kulkarni Jun 26, 2024
21e5fa3
Merge pull request #854 from Shreesh-Kulkarni/main
davidharrishmc Jun 26, 2024
221f710
Use QUESTA as flag for
jordancarlin Jun 27, 2024
d3bb39d
Fix derived configs with D_SUPPORTED = 0
jordancarlin Jun 27, 2024
607a09c
Add derived configs without privilege modes
jordancarlin Jun 27, 2024
c3cb4e5
Fix FPU without S_SUPPORTED - #840
jordancarlin Jun 27, 2024
47e67e9
Add no priv mode tests to regression
jordancarlin Jun 27, 2024
032de34
Lint fixes for no priv mode configs
jordancarlin Jun 27, 2024
784151e
Fix testbench_fp to use F_SUPPORTED, not S_SUPPORTED
jordancarlin Jun 27, 2024
2845d7e
Merge pull request #856 from jordancarlin/testbench_cleanup
davidharrishmc Jun 27, 2024
e7d4a2e
Trim down no priv regression tests
jordancarlin Jun 27, 2024
4d87de2
Merge pull request #855 from jordancarlin/derivgen_fix
davidharrishmc Jun 27, 2024
8bb08fe
add three programs to APT to make sure they are there for new installs
stineje Jun 28, 2024
f660779
Fix for Q causing it to error out - commented out line for ISA and re…
stineje Jun 28, 2024
b0f5fbe
Merge pull request #861 from stineje/main
jordancarlin Jun 28, 2024
9a5ae70
Merge remote-tracking branch 'upstream/main' into soc
infinitymdm Aug 20, 2024
388ce0a
Remove unneeded soc test infra
infinitymdm Aug 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
45 changes: 43 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
**/work*
**/wally_*.log
/**/obj_dir*
/**/gmon*

.nfs*

Expand Down Expand Up @@ -115,10 +117,10 @@ tests/wally-riscv-arch-test/riscv-test-suite/rv*i_m/I/src/*.S
tests/wally-riscv-arch-test/riscv-test-suite/rv*i_m/I/Makefrag
sim/branch_BP_GSHARE10.log
sim/branch_BP_GSHARE16.log
sim/imperas.log
sim/questa/imperas.log
sim/results-error/
sim/test1.rep
sim/vsim.log
sim/questa/vsim.log
tests/coverage/*.elf
*.elf.memfile
sim/*Cache.log
Expand Down Expand Up @@ -186,7 +188,10 @@ sim/cfi/*
sim/branch/*
sim/obj_dir
examples/verilog/fulladder/obj_dir
examples/verilog/fulladder/fulladder.vcd
config/deriv
docs/docker/buildroot-config-src
docs/docker/testvector-generation
sim/questa/cov
sim/questa/covhtmlreport/
sim/questa/logs
Expand All @@ -196,3 +201,39 @@ sim/verilator/wkdir
sim/vcs/logs
sim/vcs/wkdir
benchmarks/coremark/coremark_results.csv
fpga/zsbl/OBJ/*
fpga/zsbl/bin/*
sim/*.svg
sim/vcs/csrc
sim/vcs/profileReport*
sim/vcs/program.out
sim/vcs/sim_out*
sim/vcs/simprofile_dir
sim/vcs/ucli.key
sim/vcs/verdi_config_file
sim/vcs/vcdplus.vpd
sim/*/testbench.vcd
sim/questa/imperas.log
sim/questa/functcov.log
sim/questa/functcov_logs/*
sim/questa/functcov_ucdbs/*
sim/questa/functcov
sim/questa/riscv.ucdb
sim/questa/riscv.ucdb.log
sim/questa/riscv.ucdb.summary.log
sim/questa/riscv.ucdb.testdetails.log
tests/riscvdv
examples/verilog/fulladder/csrc/
examples/verilog/fulladder/profileReport.html
examples/verilog/fulladder/profileReport.json
examples/verilog/fulladder/profileReport.txt
examples/verilog/fulladder/profileReport/
examples/verilog/fulladder/simprofile_dir/
examples/verilog/fulladder/simv.daidir/
examples/verilog/fulladder/ucli.key
examples/verilog/fulladder/verdi_config_file
examples/crypto/gfmul/gfmul
tests/functcov
tests/functcov/*
tests/functcov/*/*
sim/vcs/simprofile*
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
[submodule "addins/riscv-arch-test"]
path = addins/riscv-arch-test
url = https://github.com/riscv-non-isa/riscv-arch-test
branch = dev
[submodule "addins/branch-predictor-simulator"]
path = addins/branch-predictor-simulator
url = https://github.com/ross144/branch-predictor-simulator
Expand Down
102 changes: 76 additions & 26 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,16 @@
# Top-level Makefile for CORE-V-Wally
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1

SIM = ${WALLY}/sim

all:
make install
make riscof
make testfloat
# make verify
make coverage
make benchmarks

# install copies over the Makefile.include from riscv-isa-sim
# And corrects the TARGETDIR path and the RISCV_PREFIX

install:
# *** 1/15/23 dh: check if any of this is still needed
#cp ${RISCV}/riscv-isa-sim/arch_test_target/spike/Makefile.include addins/riscv-arch-test/
#sed -i '/export TARGETDIR ?=/c\export TARGETDIR ?= ${RISCV}/riscv-isa-sim/arch_test_target' addins/riscv-arch-test/Makefile.include
#echo export RISCV_PREFIX = riscv64-unknown-elf- >> addins/riscv-arch-test/Makefile.include
##cd tests/linux-testgen/linux-testvectors; source ./tvLinker.sh # needs to be run in local directory
##rm tests/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64/riscvOVPsimPlus.exe
##ln -s ${RISCV}/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64/riscvOVPsimPlus.exe tests/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64/riscvOVPsimPlus.exe
# make coverage
# make benchmarks

# riscof builds the riscv-arch-test and wally-riscv-arch-test suites
riscof:
make -C sim

Expand All @@ -31,21 +21,22 @@ testfloat:
cd ${WALLY}/tests/fp; ./create_all_vectors.sh

verify:
cd ${WALLY}/sim; ./regression-wally
cd ${WALLY}/sim; ./sim-testfloat-batch all
cd ${SIM}; ./regression-wally
cd ${SIM}/sim; ./sim-testfloat-batch all
make imperasdv

imperasdv:
iter-elf.bash --search ${WALLY}/tests/riscof/work/wally-riscv-arch-test/rv64i_m
iter-elf.bash --search ${WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m

imperasdv_cov:
touch ${WALLY}/sim/seed0.txt
echo "0" > ${WALLY}/sim/seed0.txt
touch ${SIM}/seed0.txt
echo "0" > ${SIM}/seed0.txt
# /opt/riscv/ImperasDV-OpenHW/scripts/cvw/run-elf-cov.bash --verbose --seed 0 --search ${WALLY}/tests/riscof/work/wally-riscv-arch-test/rv64i_m
# /opt/riscv/ImperasDV-OpenHW/scripts/cvw/run-elf-cov.bash --elf ${WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/I/src/add-01.S/dut/my.elf --seed ${WALLY}/sim/seed0.txt --coverdb ${WALLY}/sim/cov/rv64gc_arch64i.ucdb --verbose
/opt/riscv/ImperasDV-OpenHW/scripts/cvw/run-elf-cov.bash --elf ${WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/I/src/add-01.S/dut/my.elf --seed ${WALLY}/sim/seed0.txt --coverdb riscv.ucdb --verbose
vcover report -details -html sim/riscv.ucdb
# /opt/riscv/ImperasDV-OpenHW/scripts/cvw/run-elf-cov.bash --elf ${WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/I/src/add-01.S/dut/my.elf --seed ${SIM}/seed0.txt --coverdb ${SIM}/cov/rv64gc_arch64i.ucdb --verbose
# /opt/riscv/ImperasDV-OpenHW/scripts/cvw/run-elf-cov.bash --elf ${WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/I/src/add-01.S/dut/my.elf --seed ${SIM}/seed0.txt --coverdb ${SIM}/questa/riscv.ucdb --verbose
run-elf-cov.bash --elf ${WALLY}/tests/riscvdv/asm_test/riscv_arithmetic_basic_test_0.elf --seed ${SIM}/questa/seed0.txt --coverdb ${SIM}/questa/riscv.ucdb --verbose
vcover report -details -html ${SIM}/questa/riscv.ucdb

funcovreg:
#iter-elf.bash --search ${WALLY}/tests/riscof/work/wally-riscv-arch-test/rv64i_m --cover
Expand All @@ -54,10 +45,69 @@ funcovreg:
#iter-elf.bash --search ${WALLY}/tests/riscof/work/wally-riscv-arch-test/rv64i_m/Q --cover
rm -f ${WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/*/src/*/dut/my.elf
iter-elf.bash --search ${WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/I --cover
vcover report -details -html sim/riscv.ucdb

coverage:
cd ${WALLY}/sim; ./regression-wally -coverage -fp
vcover report -details -html ${SIM}/questa/riscv.ucdb



# test_name=riscv_arithmetic_basic_test
riscvdv:
python3 ${WALLY}/addins/riscv-dv/run.py --test ${test_name} --target rv64gc --output tests/riscvdv --iterations 1 -si questa --iss spike --verbose --cov --seed 0 --steps gen,gcc_compile >> ${SIM}/questa/functcov_logs/${test_name}.log 2>&1
# python3 ${WALLY}/addins/riscv-dv/run.py --test ${test_name} --target rv64gc --output tests/riscvdv --iterations 1 -si questa --iss spike --verbose --cov --seed 0 --steps gcc_compile >> ${SIM}/questa/functcov_logs/${test_name}.log 2>&1
# python3 ${WALLY}/addins/riscv-dv/run.py --test ${test_name} --target rv64gc --output tests/riscvdv --iterations 1 -si questa --iss spike --verbose --cov --seed 0 --steps iss_sim >> ${SIM}/questa/functcov_logs/${test_name}.log 2>&1
# run-elf.bash --seed ${SIM}/questa/seed0.txt --verbose --elf ${WALLY}/tests/riscvdv/asm_test/${test_name}_0.o >> ${SIM}/questa/functcov_logs/${test_name}.log 2>&1
#run-elf-cov.bash --seed ${SIM}/questa/seed0.txt --verbose --coverdb ${SIM}/questa/riscv.ucdb --elf ${WALLY}/tests/riscvdv/asm_test/${test_name}_0.o >> ${SIM}/questa/functcov_logs/${test_name}.log 2>&1
#cp ${SIM}/questa/riscv.ucdb ${SIM}/questa/functcov_ucdbs/${test_name}.ucdb

riscvdv_functcov:
mkdir -p ${SIM}/questa/functcov_logs
mkdir -p ${SIM}/questa/functcov_ucdbs
cd ${SIM}/questa/functcov_logs && rm -rf *
cd ${SIM}/questa/functcov_ucdbs && rm -rf *
make riscvdv test_name=riscv_arithmetic_basic_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_amo_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_ebreak_debug_mode_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_ebreak_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_floating_point_arithmetic_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_floating_point_mmu_stress_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_floating_point_rand_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_full_interrupt_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_hint_instr_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_illegal_instr_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_invalid_csr_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_jump_stress_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_loop_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_machine_mode_rand_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_mmu_stress_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_no_fence_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_non_compressed_instr_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_pmp_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_privileged_mode_rand_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_rand_instr_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_rand_jump_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_sfence_exception_test >> ${SIM}/questa/functcov.log 2>&1
make riscvdv test_name=riscv_unaligned_load_store_test >> ${SIM}/questa/functcov.log 2>&1

combine_functcov:
mkdir -p ${SIM}/questa/functcov
mkdir -p ${SIM}/questa/functcov_logs
cd ${SIM}/questa/functcov && rm -rf *
run-elf-cov.bash --seed ${SIM}/questa/seed0.txt --verbose --coverdb ${SIM}/questa/functcov/add.ucdb --elf ${WALLY}/tests/functcov/rv64/I/WALLY-COV-add.elf >> ${SIM}/questa/functcov_logs/add.log 2>&1
run-elf-cov.bash --seed ${SIM}/questa/seed0.txt --verbose --coverdb ${SIM}/questa/functcov/and.ucdb --elf ${WALLY}/tests/functcov/rv64/I/WALLY-COV-and.elf >> ${SIM}/questa/functcov_logs/add.log 2>&1
run-elf-cov.bash --seed ${SIM}/questa/seed0.txt --verbose --coverdb ${SIM}/questa/functcov/ori.ucdb --elf ${WALLY}/tests/functcov/rv64/I/WALLY-COV-ori.elf >> ${SIM}/questa/functcov_logs/add.log 2>&1

vcover merge ${SIM}/questa/functcov/functcov.ucdb ${SIM}/questa/functcov/*.ucdb ${SIM}/questa/functcov_ucdbs/* -suppress 6854 -64
# vcover merge ${SIM}/questa/functcov/functcov.ucdb ${SIM}/questa/functcov_ucdbs/* -suppress 6854 -64
vcover report -details -html ${SIM}/questa/functcov/functcov.ucdb
vcover report ${SIM}/questa/functcov/functcov.ucdb -details -cvg > ${SIM}/questa/functcov/functcov.log
vcover report ${SIM}/questa/functcov/functcov.ucdb -testdetails -cvg > ${SIM}/questa/functcov/functcov.testdetails.log
# vcover report ${SIM}/questa/functcov/functcov.ucdb -details -cvg -below 100 | egrep "Coverpoint|Covergroup|Cross" | grep -v Metric > ${SIM}/questa/functcov/functcov.ucdb.summary.log
vcover report ${SIM}/questa/functcov/functcov.ucdb -details -cvg | egrep "Coverpoint|Covergroup|Cross|TYPE" > ${SIM}/questa/functcov/functcov.summary.log
grep "Total Coverage By Instance" ${SIM}/questa/functcov/functcov.ucdb.log

remove_functcov_artifacts:
rm ${SIM}/questa/riscv.ucdb ${SIM}/questa/functcov.log covhtmlreport/ ${SIM}/questa/functcov_logs/ ${SIM}/questa/functcov_ucdbs/ ${SIM}/questa/functcov/ -rf

collect_functcov: remove_functcov_artifacts riscvdv_functcov combine_functcov

benchmarks:
make coremark
Expand Down
81 changes: 67 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,38 +41,46 @@ Clone your fork of the repo and run the setup script. Change <yourgithubid> to y
$ git remote add upstream https://github.com/openhwgroup/cvw
$ source ./setup.sh

If you are installing on a new system without any tools installed please jump to the next section, Toolchain Installation then come back here.

Add the following lines to your .bashrc or .bash_profile to run the setup script each time you log in.

if [ -f ~/cvw/setup.sh ]; then
source ~/cvw/setup.sh
fi

Edit setup.sh and change the following lines to point to the path and license server for your Siemens Questa and Synopsys Design Compiler installation and license server. If you only have Questa, you can still simulate but cannot run logic synthesis.

export [email protected] # Change this to your Siemens license server
export [email protected] # Change this to your Synopsys license server
export QUESTAPATH=/cad/mentor/questa_sim-2021.2_1/questasim/bin # Change this for your path to Questa
export SNPSPATH=/cad/synopsys/SYN/bin # Change this for your path to Design Compiler

If the tools are not yet installed on your server, follow the Toolchain Installation instructions in the section below.

Build the tests and run a regression simulation with Questa to prove everything is installed. Building tests will take a while.

$ make
$ cd sim
$ ./regression-wally (depends on having Questa installed)
$ regression-wally (depends on having Questa installed)

# Toolchain Installation (Sys Admin)

This section describes the open source toolchain installation. The
current version of the toolchain has been tested on Ubuntu and Red
current version of the toolchain has been tested on Ubuntu and partly on Red
Hat/Rocky 8 Linux. Ubuntu works more smoothly and is recommended
unless you have a compelling need for RedHat.
unless you have a compelling need for RedHat. However, Ubuntu 22.04LTS
is incompatible with Synopsys Design Compiler.

Ubuntu users can install the tools by running

$ sudo $WALLY/bin/wally-tool-chain-install.sh

The default installation directory is /opt/riscv defined by the environment variable RISCV. You must copy and edit ~/cvw/site-setup.sh to $RISCV/site-setup.sh.

~/cvw/setup.sh sources $RISCV/site-setup.sh.
This allows for customization of the site specific information such as commerical licenses and PATH variables.

Change the following lines to point to the path and license server for your Siemens Questa and Synopsys Design Compiler installation and license server. If you only have Questa, you can still simulate but cannot run logic synthesis. If Questa or Design Compiler are already setup on this system then don't set these variables.

export MGLS_LICENSE_FILE=.. # Change this to your Siemens license server
export SNPSLMD_LICENSE_FILE=.. # Change this to your Synopsys license server
export QUESTAPATH=.. # Change this for your path to Questa
export SNPSPATH=.. # Change this for your path to Design Compiler


See wally-tool-chain-install.sh for a detailed description of each component,
or to issue the commands one at a time to install on the command line.
## Installing EDA Tools
Expand Down Expand Up @@ -131,9 +139,54 @@ Startups can expect to spend more than $1 million on CAD tools to get a chip to
## Adding Cron Job for nightly builds

If you want to add a cronjob you can do the following:
1) `crontab -e`
2) add this code:
1) Set up the email client `mutt` for your distribution
2) Enter `crontab -e` into a terminal
3) add this code to test building CVW and then running `regression-wally --nightly` at 9:30 PM each day
```
0 3 * * * BASH_ENV=~/.bashrc bash -l -c "PATH_TO_CVW/cvw/bin/wrapper_nightly_runs.sh > PATH_TO_LOG_FOLDER/cron.log"
30 21 * * * bash -l -c "source ~/PATH/TO/CVW/setup.sh; PATH_TO_CVW/cvw/bin/wrapper_nightly_runs.sh --path {PATH_TO_TEST_LOCATION} --target all --tests nightly --send_email [email protected],[email protected]"
```

# Example wsim commands

wsim runs one of multiple simulators, Questa, VCS, or Verilator using a specific configuration and either a suite of tests or a specific elf file.
The general syntax is
wsim <config> <suite or elf file or directory> [--options]

Parameters and options:

-h, --help show this help message and exit
--sim {questa,verilator,vcs}, -s {questa,verilator,vcs} Simulator
--tb {testbench,testbench_fp}, -t {testbench,testbench_fp} Testbench
--gui, -g Simulate with GUI
--coverage, -c Code & Functional Coverage
--fcov, -f Code & Functional Coverage
--args ARGS, -a ARGS Optional arguments passed to simulator via $value$plusargs
--vcd, -v Generate testbench.vcd
--lockstep, -l Run ImperasDV lock, step, and compare.
--locksteplog LOCKSTEPLOG, -b LOCKSTEPLOG Retired instruction number to be begin logging.
--covlog COVLOG, -d COVLOG Log coverage after n instructions.
--elfext ELFEXT, -e ELFEXT When searching for elf files only includes ones which end in this extension

Run basic test with questa

wsim rv64gc arch64i

Run Questa with gui

wsim rv64gc wally64priv --gui

Run lockstep against ImperasDV with a single elf file in the --gui. Lockstep requires single elf.

wsim rv64gc ../../tests/riscof/work/riscv-arch-test/rv64i_m/I/src/add-01.S/ref/ref.elf --lockstep --gui

Run lockstep against ImperasDV with a single elf file. Compute coverage.

wsim rv64gc ../../tests/riscof/work/riscv-arch-test/rv64i_m/I/src/add-01.S/ref/ref.elf --lockstep --coverage

Run lockstep against ImperasDV with directory file.

wsim rv64gc ../../tests/riscof/work/riscv-arch-test/rv64i_m/I/src/ --lockstep

Run lockstep against ImperasDV with directory file and specify specific extension.

wsim rv64gc ../../tests/riscof/work/riscv-arch-test/rv64i_m/I/src/ --lockstep --elfext ref.elf
2 changes: 1 addition & 1 deletion addins/riscv-arch-test
Submodule riscv-arch-test updated 425 files
2 changes: 1 addition & 1 deletion addins/riscv-dv
12 changes: 6 additions & 6 deletions benchmarks/coremark/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
PORT_DIR = $(CURDIR)/riscv64-baremetal
cmbase= $(WALLY)/addins/coremark
work_dir= $(WALLY)/benchmarks/coremark/work
XLEN ?=64
XLEN ?=32
sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h \
$(cmbase)/core_matrix.c $(cmbase)/core_state.c $(cmbase)/core_util.c \
$(PORT_DIR)/core_portme.h $(PORT_DIR)/core_portme.c $(PORT_DIR)/core_portme.mak \
$(PORT_DIR)/crt.S $(PORT_DIR)/encoding.h $(PORT_DIR)/util.h $(PORT_DIR)/syscalls.c
ABI := $(if $(findstring "64","$(XLEN)"),lp64,ilp32)
#ARCH := rv$(XLEN)gc_zba_zbb_zbc
ARCH := rv$(XLEN)im_zicsr_zba_zbb_zbc
ARCH := rv$(XLEN)im_zicsr_zba_zbb_zbs
CONFIG := rv$(XLEN)gc
#ARCH := rv$(XLEN)gc
#ARCH := rv$(XLEN)imc_zicsr
#ARCH := rv$(XLEN)im_zicsr
Expand All @@ -27,9 +27,9 @@ PORT_CFLAGS = -g -mabi=$(ABI) -march=$(ARCH) -static -falign-functions=16 \

all: $(work_dir)/coremark.bare.riscv.elf.memfile

run:
time wsim rv$(XLEN)gc coremark 2>&1 | tee $(work_dir)/coremark.sim.log
#(cd ../../sim && (time vsim -c -do "do wally-batch.do rv$(XLEN)gc coremark" 2>&1 | tee $(work_dir)/coremark.sim.log))
run: $(work_dir)/coremark.bare.riscv.elf.memfile
# time wsim rv$(XLEN)gc coremark --sim verilator 2>&1 | tee $(work_dir)/coremark.sim.log
time wsim ${CONFIG} coremark 2>&1 | tee $(work_dir)/coremark.sim.log

$(work_dir)/coremark.bare.riscv.elf.memfile: $(work_dir)/coremark.bare.riscv
riscv64-unknown-elf-objdump -D $< > $<.elf.objdump
Expand Down
Loading