Commit Graph

96 Commits

Author SHA1 Message Date
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
Luke Wren 5aca1381ac Couple of fixups for rvpy which I forgot to commit at some point 2022-03-01 20:27:18 +00:00
Luke Wren 0a369efc06 Add single-port bus compliance. Fix adapter not re-arbitrating following an ERROR response, causing a squashed younger load-store to remain presented to the bus. 2021-12-18 15:41:05 +00:00
Luke Wren 1b0e205f87 Fix bad AMO asserts. Fix hwdata instability during stalled AMO write dphase, which meant AMOs were fundamentally broken following yesterday's datapath origami 2021-12-18 14:51:46 +00:00
Luke Wren 28b53ef7b5 Delete the AMO ALU. Save around 80 LCs vs original implementation, maybe enables some more savings. 2021-12-18 00:35:13 +00:00
Luke Wren a81d129961 Add exclusives monitor to testbench 2021-12-17 17:03:35 +00:00
Luke Wren 5ab60422ad Add minimal multicore launch code 2021-12-17 01:24:11 +00:00
Luke Wren 01d9617f9c Add multicore tb integration file 2021-12-17 00:41:23 +00:00
Luke Wren 207566660d tb: handle both ports identically. Preparing for dual core 2021-12-17 00:04:00 +00:00
Luke Wren 88fea7acfa Fix lockup on misaligned AMO. Add tests for misaligned/faulting AMOs. 2021-12-12 18:28:23 +00:00
Luke Wren 719c21fec3 Add IRQ tests. Disable waves by default in runtests 2021-12-12 15:53:04 +00:00
Luke Wren 9fb2af800f Allow IRQs to be set/cleared by sw in tb. Add soft IRQ test 2021-12-12 14:58:50 +00:00
Luke Wren a232833d81 Add CSR writable test 2021-12-12 14:23:34 +00:00
Luke Wren 8a003dbbed Make mcycle/minstret inhibited by default 2021-12-12 13:55:33 +00:00
Luke Wren 7da67a0600 Similarly for minstret 2021-12-11 22:25:12 +00:00
Luke Wren 1b722b5f27 Add mcycle test, fix incorrect description of mcycle in docs 2021-12-11 21:21:31 +00:00
Luke Wren 93eca19aeb Add test for lr/sc RAW stalls 2021-12-11 19:16:41 +00:00
Luke Wren 763a5cd364 Add test for readability of all implemented CSRs 2021-12-11 17:50:12 +00:00
Luke Wren 7b1da32af1 Move expected_output into tests inline 2021-12-11 16:58:25 +00:00
Luke Wren 9460b3cd04 Add load/store and lr/sc bus fault tests. Fix lr.w not clearing local monitor when HRESP=1 HEXOKAY=1. 2021-12-11 15:52:34 +00:00
Luke Wren f64f44f7af Add test for identification CSRs vs expected values 2021-12-11 13:26:59 +00:00
Luke Wren 4066e941ef Fix sim cmdline in bitmanip-random tests 2021-12-11 13:13:21 +00:00
Luke Wren 3fe0d92d41 Add load/store alignment testcases 2021-12-11 12:53:37 +00:00
Luke Wren c90727b05a Remove padding after vector table in init.S 2021-12-11 12:22:23 +00:00
Luke Wren 6076eba61f Add run_all script under riscv-compliance 2021-12-11 12:08:53 +00:00
Luke Wren 52d58fdee4 Add keep wires for debug port on bus compliance tb 2021-12-11 12:06:10 +00:00
Luke Wren 6edfbfae8b Add ebreak size/alignment test 2021-12-11 11:17:24 +00:00
Luke Wren abe1769929 Add instruction access fault testcase 2021-12-11 09:54:00 +00:00
Luke Wren 933f2cd65c Fix remaining fallout from tb args change 2021-12-11 09:53:39 +00:00
Luke Wren 6d55cd2d55 Consolidate openocd and bin-load testbenches 2021-12-11 09:46:38 +00:00
Luke Wren fadb9601de Illegal instruction test 2021-12-10 00:11:18 +00:00
Luke Wren 3d2c912b4f Add test script to make it easier to add software testcases 2021-12-09 22:25:18 +00:00
Luke Wren 449348f459 Fix bug where an IRQ can fire during load/store dphase, followed by dphase bus exception.
Result was that the exception would sample the IRQ vector PC rather than the load/store instruction PC.
Fix by fencing off on in-flight dphases before asserting the IRQ. This adds a cycle of jitter
to IRQs, but is required for correct operation without adding a full exception-gathering pipeline.
2021-12-07 19:24:53 +00:00
Luke Wren dbc331dbb4 Add exclusives bus properties 2021-12-07 05:47:25 +00:00
Luke Wren 93be227d8a Add (currently failing) trap entry property. Fails when an IRQ arrives during a load/store data phase which subsequently excepts. 2021-12-06 20:12:23 +00:00
Luke Wren ac9285846f Timer struct in IO header 2021-12-06 17:16:21 +00:00
Luke Wren c57a80f358 Add AMO + timer testcase 2021-12-06 07:47:20 +00:00
Luke Wren d86b2849c9 Bump to latest version of riscv-arch-test 2021-12-06 02:18:48 +00:00
Luke Wren df658d86ff First plausibly working AMOs. Add AMOs to instruction timings list 2021-12-04 23:44:22 +00:00
Luke Wren 5e17bb805e Add basic support for lr/sc instructions from the A extension 2021-12-04 15:02:31 +00:00
Luke Wren c5d6be24f3 Remove external IRQ vectors from init.S which are unreachable now that midcr.eivect has been removed. 2021-12-04 14:06:48 +00:00
Luke Wren 5db6c68c56 Update riscv-tests for correct misa.x value 2021-12-04 11:19:43 +00:00
Luke Wren 52ba930638 Remove useless midcr.eivect feature. Make mlei left-shift its value by 2. 2021-12-04 01:17:57 +00:00
Luke Wren be6b2f3f76 Fix up DTMs to use byte addressing 2021-12-02 02:05:23 +00:00