Luke Wren
5193dfe477
Add separate define HAZARD3_ASSERTIONS for enabling internal assertions,
...
and enable it only on the bus compliance model checks. Trying to make
the solver's life easier in instruction_fetch_match.
2022-06-25 20:08:40 +01:00
Luke Wren
8ef9d77be8
Add 'everything but MHARTID' option to config_inst, to allow its reuse in multicore instantiations.
...
Use this to fix the multicore tb not instantiating cores with all parameters correct (e.g. U_MODE)
2022-06-25 13:11:40 +01:00
Luke Wren
d9389fb23e
Fix a half-valid valid address phase being left behind when taking a new path with the jump going straight to the bus. If left in place, this causes the next-next fetch to be marked as half valid, corrupting fetch data.
2022-06-16 01:42:28 +01:00
Luke Wren
f8aad6d2f3
Fix some bugs, too tired to list them, look at the diff
2022-06-15 04:05:31 +01:00
Luke Wren
0766ec6f8a
First pass at adding branch prediction
2022-06-15 02:05:46 +01:00
Luke Wren
3703b1fc4c
Allow use of cir_flush_behind in frontend_match formal tb
2022-06-13 20:36:15 +01:00
Luke Wren
e68d8a6cd6
Fix two frontend bugs: possibility for fetch to be blocked at CIR whilst also not going to FIFO (fixed by making those signals the complement of each other) and typo in the shift value for shifting into a CIR with 32 bits of contents, which is only reachable via a CIR-locked branch to an unaligned address.
2022-06-13 01:23:32 +01:00
Luke Wren
23b4dbe7f3
Redesign fetch queue: 2x32 + 3x16 -> 6x16.
...
Should make it easier to support finer-grained flushing,
and handle predicted branches cleanly.
2022-06-12 02:44:08 +01:00
Luke Wren
d5a202e4a5
Add standalone frontend formal tb
2022-06-11 20:14:24 +01:00
Luke Wren
d31b1708db
Make rvpy cycle-accurate enough to get the correct Dhrystone score
2022-06-09 01:34:37 +01:00
Luke Wren
02b303b385
Remove stray old expected output file from sw_testcases dir
2022-06-03 17:20:49 +01:00
Luke Wren
e2c9901701
Update readme for runtests
2022-05-30 01:12:16 +01:00
Luke Wren
2cfe6aa90e
Add test to check MPRV/MPP behaviour when executing an MRET
2022-05-29 19:51:19 +01:00
Luke Wren
f96a0ffb75
Add test for MPRV vs PMP
2022-05-29 19:06:04 +01:00
Luke Wren
71eff7649d
Add PMP U-mode read/write permission test
2022-05-29 18:42:44 +01:00
Luke Wren
c8afcdbb8f
Extend umode_wfi test to check U-mode WFI doesn't stall the processor if TW=0 or PMP X check fails
2022-05-29 17:42:15 +01:00
Luke Wren
460fa0bb4a
Fix run-isa-tests.sh to fail on first failed test. Fix bad environment trap routing causing ecall ISA test to hang. Make breakpoint test instant-pass when triggers aren't implemented.
2022-05-28 17:22:28 +01:00
Luke Wren
66965ac073
Fix inverted sc return code (argh) and lr/sc tests which also assumed the sc code was inverted
2022-05-28 15:36:21 +01:00
Luke Wren
4090f4eb24
Initial bringup of riscv-tests. Pass 63 out of 66 applicable tests.gstat
2022-05-28 15:01:27 +01:00
Luke Wren
9e2f5df00a
Add testbench flag to propagate CPU return code to testbench return
2022-05-28 15:00:28 +01:00
Luke Wren
81aec325bb
ecall from U-mode has a different mcause value than ecall from M-mode
2022-05-28 12:07:29 +01:00
Luke Wren
632c61daba
Rebase debug tests, pick up two new tests (both pass)
2022-05-28 11:34:41 +01:00
Luke Wren
f2876eb51f
Fix bad mepc reported after branching to a branch in a no-X address range
2022-05-27 22:47:04 +01:00
Luke Wren
cd3125b6e5
Add new bus signals on instruction_fetch_match/tb.v
2022-05-27 21:48:45 +01:00
Luke Wren
b655148148
Bump riscv-tests for better PMP disable fix
2022-05-27 21:36:54 +01:00
Luke Wren
e208652ad7
Fix misa value in csr_id test
2022-05-26 00:48:12 +01:00
Luke Wren
d7787942e9
Add two new tests to debug test list. Remainder are still non-applicable
2022-05-26 00:47:08 +01:00
Luke Wren
a17b941e38
Add U bit to misa, and fix some broken debug tests (no hazard3 bugs)
2022-05-25 23:46:23 +01:00
Luke Wren
37f7588bad
Fix hazard3 reset vector check value in debug tests
2022-05-25 21:45:36 +01:00
Luke Wren
5be8835365
Add missing output to pmp_write_and_lock test
2022-05-25 15:34:28 +01:00
Luke Wren
399dcf2cb9
Add test for U-mode X permissions
2022-05-25 13:47:16 +01:00
Luke Wren
7340765699
Add simple test to read, write and lock PMP registers
2022-05-25 02:05:24 +01:00
Luke Wren
456810b09e
Make vcd generation optional in runtests
2022-05-24 22:56:13 +01:00
Luke Wren
64d9f4a111
Add tests for execution of mret and wfi in U mode
2022-05-24 22:14:20 +01:00
Luke Wren
20f06c4a02
Build tb with 4 PMP regions by default
2022-05-24 20:06:57 +01:00
Luke Wren
7cfc976ef2
Set U RWX permission on all of memory in the U CSR readability test
2022-05-24 19:58:12 +01:00
Luke Wren
cfed35b3da
Fix the stupid printf warning on x86-64 as well as arm64
2022-05-24 18:22:25 +01:00
Luke Wren
f033cde874
Add test for readability of CSRs in U mode. Fix readback value of mstatus.mpp
2022-05-24 17:30:24 +01:00
Luke Wren
ba81b533d2
Build core with U mode support for tb
2022-05-24 16:44:22 +01:00
Luke Wren
0199f48087
Add read-only counter CSRs to readability/writability tests, and fix cycleh being unreadable when U mode is not implemented
2022-05-24 16:44:03 +01:00
Luke Wren
4ba3f7ceb9
Fix format warning in tb.cpp on arm64
2022-05-24 16:17:54 +01:00
Luke Wren
ef35dc859d
Add zicsr to march in makefiles
2022-05-24 16:17:54 +01:00
Luke Wren
07d4b23a9a
Add option to pass test list to runtests
2022-05-24 16:17:54 +01:00
Luke Wren
31061bd472
Add Zbkb to bitmanip tests and regenerate vectors
2022-05-21 17:15:46 +01:00
Luke Wren
4ffe007a84
Add zicsr to march in bitmanip tests, so it builds on newer toolchains
2022-05-20 01:32:21 +01:00
Luke Wren
4946248dc4
RVFI monitor: blank out instructions which experienced an instruction fetch fault.
...
(previous monitor logic was ok when fetch faults weren't implemented.
If the blanked instruction has side effects, these will break other test
properties, which we would detect.)
2022-04-12 13:38:19 +01:00
Luke Wren
8a61fe5243
Fix RVFI monitor assuming rs2 data is equivalent to store data
...
(this used to be true, but was re-plumbed when optimising A extension implementation)
2022-04-12 13:27:53 +01:00
Luke Wren
9e27db0884
Connect or tie off missing ports on RVFI wrapper
2022-04-12 13:27:03 +01:00
Luke Wren
7dc5046505
Perf option for dedicated branch comparator
2022-04-02 11:40:47 +01:00
Luke Wren
3c61fae9ef
Remove the halfword fetch thing, was only really useful on RISCBoy
2022-04-02 10:54:16 +01:00