Luke Wren
e89ab0d095
tb_cxxrtl: explicitly use set<bool> when there is only one timer IRQ
...
(i.e. single-core testbench). Avoids some odd behaviour with wide
assignment to single-bit wire from the CXXRTL harness.
2023-03-31 02:11:52 +01:00
Luke Wren
18d3b03cc8
Fix rm of build directory in tb_cxxrtl/Makefile
2023-03-30 22:43:48 +01:00
Luke Wren
97121afa91
Extend testbench to allow dumping/replaying JTAG to text file.
...
This allows debugging of tests that behave differently when VCD dumping
is enabled, due to the difference in execution speed.
(A couple of the SMP debug tests fail intermittently.)
2023-03-27 00:17:11 +01:00
Luke Wren
c41fe0609b
Add a second mtimecmp comparator to TB IO, for dual-core InterruptTest from RISC-V debug tests.
...
Fix a couple of minor test script issues.
2023-03-26 23:00:18 +01:00
Luke Wren
97509f548a
tb_cxxrtl Makefile: better support for building multiple tb configurations
2023-03-24 18:44:37 +00:00
Luke Wren
e98d7b41ea
Hook up power control signals on dual-core tb
2023-03-22 00:34:19 +00:00
Luke Wren
e966e832d2
First attempt at Zcmp
2023-03-20 00:19:23 +00:00
Luke Wren
78d937e5c8
Yeet Zcb into core
2023-03-16 18:48:15 +00:00
Scott Shawcroft
7fbdb69328
Allow reconnecting to the testbench JTAG socket
2022-12-17 11:58:14 +00:00
Luke Wren
dff278ea05
Increase DTM idle cycle hint to 8 cycles -- see #6
2022-10-19 21:11:18 +01:00
Luke Wren
0b18fae32e
Fix swapped MHARTID/MCONFIGPTR values in tb configs
2022-10-08 08:42:50 +01:00
Luke Wren
874cb20910
Add config headers to tb_cxxrtl instead of using defparams in Makefile
2022-10-08 08:09:26 +01:00
Luke Wren
da4097ecd8
Delay pwrup_req->pwrup_ack in tb
2022-08-29 14:55:11 +01:00
Luke Wren
2ae2463b97
First stab at adding wake/sleep state machine
2022-08-28 19:50:04 +01:00
Luke Wren
bf38d93d33
Remove references to AHB-Lite, describe buses as (a subset of) AHB5
2022-08-28 14:15:20 +01:00
Luke Wren
6e3799eed0
First attempt at hacking in triggers, at least seems to have not broken other exception logic. Not yet tested.
2022-08-22 08:47:03 +01:00
Luke Wren
15cb21ae43
First pass at implementing the new IRQ controls. Works well enough that the old tests pass :)
2022-08-07 20:51:12 +01:00
Luke Wren
91be98f2da
Make rvpy IO output look exactly like tb_cxxrtl (bringing up embench)
2022-07-06 23:53:11 +01:00
Luke Wren
b7d9defcf2
Add MUL_FASTER option to retire fast mul to stage 2 instead of stage 3
2022-07-05 03:37:19 +01:00
Luke Wren
9e15cd3485
Add standalone SBA-to-AHB shim, and make SBA off by default in the DM
2022-07-03 15:30:33 +01:00
Luke Wren
d5cd3e0681
Add SBA patch-through to 1-core wrapper.
...
Add SBA properties to bus compliance checks.
Hook up SBA in dual-core single-port debug tb.
2022-07-03 15:17:44 +01:00
Luke Wren
51bc26f8ac
First pass at adding system bus access to DM. Currently only the 2-port processor supports SBA patchthrough.
2022-07-03 00:25:47 +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
9e2f5df00a
Add testbench flag to propagate CPU return code to testbench return
2022-05-28 15:00:28 +01:00
Luke Wren
20f06c4a02
Build tb with 4 PMP regions by default
2022-05-24 20:06:57 +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
ba81b533d2
Build core with U mode support for tb
2022-05-24 16:44:22 +01:00
Luke Wren
4ba3f7ceb9
Fix format warning in tb.cpp on arm64
2022-05-24 16:17:54 +01:00
Luke Wren
7dc5046505
Perf option for dedicated branch comparator
2022-04-02 11:40:47 +01: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
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
f64f44f7af
Add test for identification CSRs vs expected values
2021-12-11 13:26:59 +00:00
Luke Wren
c90727b05a
Remove padding after vector table in init.S
2021-12-11 12:22:23 +00:00
Luke Wren
6d55cd2d55
Consolidate openocd and bin-load testbenches
2021-12-11 09:46:38 +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
5e17bb805e
Add basic support for lr/sc instructions from the A extension
2021-12-04 15:02:31 +00:00
Luke Wren
c8afb4ac33
Add option for fast high-half multiplies
2021-11-29 18:48:02 +00:00
Luke Wren
c1f17b0b23
Add wfi timer loop example, and add mtime/mtimecmp to non-debug testbench
2021-11-06 09:59:27 +00:00
Luke Wren
5d2a562f65
Just use read_verilog; write_cxxrtl when building tb_cxxrtl
2021-07-22 17:30:30 +01:00
Luke Wren
c56c75e14b
More dicking with yosys cmd for tb_cxxrtl;
...
Removing the prep pass as suggested leads to invalid VCD net names.
Adding a opt_clean (+ prerequisites) fixes that.
Adding splitnets -driver afterward wins back the performance lost by
that last addition. Can you tell I don't know what I'm doing
2021-07-18 16:46:00 +01:00
whitequark
12bf9bb570
Make CXXRTL testbench ~25% faster
2021-07-18 16:04:19 +01:00
Luke Wren
2618ae0c07
Double-step() after clock posedge to workaround CXXRTL port propagation issue
2021-07-18 16:03:53 +01:00
Luke Wren
ce5cc1f150
oops, bounds checking on free-running tb_cxxrtl
2021-07-18 15:20:25 +01:00
Luke Wren
5cc483898d
Add smoke test for core debug interface, and suppress bus fetch incrementing frontend level counter when in debug mode
2021-07-10 21:02:18 +01:00
Luke Wren
1b252d4bda
Significant overhaul of trap handling. Exceptions now taken from stage 3 instead of stage 2
2021-05-23 11:59:46 +01:00
Luke Wren
90acfdcbe8
Organise test directory into formal and sim
2021-05-23 07:42:35 +01:00