46 Commits

Author SHA1 Message Date
Jonathan Woodruff
70b82fb164 Insert deburster again on the vcu118-specific wrapper, as this design is known to work for the vcu118, or specifically, using the width converter. 2024-04-05 14:06:42 +01:00
Jonathan Woodruff
854e8e5bfb Another experiment to see if we can resolve the vcu118 build.
This one puts the in-order shim before the width converter.
2024-04-05 10:54:39 +01:00
Jonathan Woodruff
410be14a25 Merge remote-tracking branch 'karlis/CHERI' into ks980-prefetch 2023-05-23 17:34:19 +00:00
Karlis Susters
373d92c17a Added license text 2023-05-23 13:37:43 +01:00
Karlis Susters
2ae2b99268 Move Prefetcher unit tests to unit test folder 2023-05-11 00:10:32 +01:00
Peter Rugg
eb755801eb Revert "Revert "Use wide to narrow AXI4 shim""
This reverts commit 93180fbe25.
2023-03-01 14:38:13 +00:00
Peter Rugg
93180fbe25 Revert "Use wide to narrow AXI4 shim"
This reverts commit be91801982.
2023-02-17 11:16:20 +00:00
gameboo
be91801982 Use wide to narrow AXI4 shim 2023-01-06 16:07:56 +00:00
Jonathan Woodruff
ddf4afaf71 Changes to build with a 512-bit main data bus (with all other busses
still 64-bits).
Also, the top-level SoC_Top exposes a 64-bit bus still, so hopefully the
GFE configuration is unchanged.
This passes the isa_tests.
2022-11-11 17:52:32 +00:00
Jonathan Woodruff
0562cb18a1 Fix for RVFI_DII build. 2022-10-21 09:18:28 +00:00
Alexandre Joannou
a0d471e4f8 Attempt to make toHost setiing behave in src_Testbench
Made the proc start method non-blocking on mmio platform and wired in a new way
to set the tohost addr using a control and status request, and bumpped
WindCoreInterface accordingly
2022-09-06 10:42:34 +00:00
Alexandre Joannou
6e58006e10 Update Tesbench toplevel interface sizes 2022-08-23 19:04:14 +01:00
Alexandre Joannou
bb62b703c8 Address some rebase nonsense 2022-08-15 16:18:23 +00:00
gameboo
72320b32b2 Update to AXI lite for debug module port 2022-08-15 16:18:23 +00:00
Peter Rugg
a6b39b58a1 Clean up prints 2022-03-11 10:24:39 +00:00
Franz Fuchs
56c0ca328b Added missing update due to changing version of BlueStuff 2022-02-28 13:03:00 +00:00
Jonathan Woodruff
6ea5d34d06 Bump Bluestuff. 2022-01-25 17:05:34 +00:00
Alexandre Joannou
98a9c076cd Update BlueStuff API and Bump BlueStuff and TagController 2020-12-01 14:22:12 +00:00
Jessica Clarke
0516db5e8d Bump BSV-RVFI-DII and refactor to support new parcel-based interface
This means FetchStage should now behave in the same way with RVFI-DII as
with an I-Cache. A Dii_Parcel_Id is fed alongside PC everywhere relevant
and follows very similar logic, but, importantly it's just extra state
on the side, it doesn't affect what we do with the branch predictor and
parcel combining/instruction decoding logic.
2020-07-21 14:36:36 +01:00
Peter Rugg
6a317d1a00 Prevent instruction fetch to unexpected devices 2020-07-10 17:35:06 +01:00
Peter Rugg
c406d357c9 Add CHERI+RVFI_DII grant codes and copyrights 2020-07-06 17:39:25 +01:00
Peter Rugg
9a00bde2b7 Revert accidentally making simulation memory uncached 2020-06-30 11:33:43 +01:00
Peter Rugg
c8e4a64128 Add sentries 2020-06-29 23:29:08 +01:00
jon
e403240818 Undo gratuitous whitespace changes. 2020-06-26 11:25:46 +01:00
jon
004d039bd8 Reset the UART properly.
Also move to non-synth interface for UART.
Also annoying whistespace changes to normalise tabs.
2020-06-25 18:04:27 +01:00
jon
312d0316da Use updated Bluestuff library, and also support uncached 128-bit transactions through MMIO. 2020-06-24 11:57:43 +01:00
Peter Rugg
8778369fe5 Merge remote-tracking branch 'upstream/master' into CHERI 2020-06-17 13:01:41 +01:00
jon
e08e97c17b Use the 80000000 entry point for RVFI_DII. 2020-06-11 15:59:19 +01:00
jon
6719925b78 Fetch initial instructions from boot rom in simulation to improve
testing.
To make this not fail, remove the reset server behaviour in SoC_Top
which appears to not be needed as it is only calling reset servers upon
actual reset when everything has been reset anyway.
I suppose these reset servers are meant for debug-unit-initiated reset
events.
2020-06-11 10:56:07 +01:00
jon
7612738ff5 Changes needed for working TagController in Toooba. 2020-06-02 19:05:56 +01:00
jon
8a07e18439 Do memory zeroing on reset when doing RVFI-DII.
I couldn't quite use the implementation from Flute as the register was
too wide for verilator.
This one uses wide memories instead, which is way complicated, but I
think it works.  The width of the memory can be traded off for reset
speed.  The width at the moment is 8192 bits, which seems to be fast
enough.
2020-05-28 10:55:46 +01:00
Alexandre Joannou
b5b2b4fe5c Port AXI4 changes from Flute 2020-03-27 16:45:26 +00:00
Jonathan Woodruff
3a79b022ea Merge branch 'master' into RVFI_DII, a complex merge for the fetch stage! 2020-03-18 11:35:59 +00:00
rsnikhil
a6a227ed66 Incorporated patches/additions from Joe Stoy after GFE debugging (w. amendment ...)
Amendment: RegUNInit.v updated, removing an extraneous RST line.
2020-03-13 16:38:54 -04:00
Jonathan Woodruff
3eccf92544 Move to 8 MiB RVFI-DII memory. 2020-03-11 11:53:19 +00:00
rsnikhil
0ac138b08f UART_Model.bsv fixes for better support of 32b/64b fabrics and 4-byte/8-byte address strides 2020-03-05 09:33:58 -05:00
rsnikhil
83829590dd Fixed up logic for "Non-Debug-Module reset" request/response from the Debug Module
Now able to run multiple ISA tests in a single simulation run
connected to remote debugger DSharp, using either hart_reset or
ndm_reset between tests to bring the system back into reset state.
All Debug Module commands working:
 - dm_reset, hart_reset, ndm_reset
 - break    (set breakpoint)
 - step
 - continue (until breakpoint of 'halt' command)
 - halt
 - read/write GPR, FPR, CSR, memory
 - elf_load
2020-02-04 16:02:53 -05:00
rsnikhil
4960a59da0 Fixes for GDB control: can run consecutive tests in single simulation, without intermediate reset.
After a test, GDB can write DCSR to restore to Machine privilege,
write to PC (DPC) to restore boot value,
write MSTATUS to restore to initial value,
then can load and run next test.
2020-01-30 22:46:51 -05:00
Jonathan Woodruff
82ba66b15e Changes to support vectored RVFI_DII bridge directly, which enables us to successfully run memory tests with traps. 2019-12-09 16:34:27 +00:00
Jonathan Woodruff
96d092c300 Changes that enable RVFI_DII to run.
It doesn't yet pass any set of tests, but tests do run and reduce.
2019-11-26 10:46:56 +00:00
rsnikhil
666dd2ad92 Small tweak to remove unnecessary explicit boot rom addrs (subsumed by IO) 2019-04-22 15:12:30 -04:00
rsnikhil
e7fbf32b38 Bugfix in MMIOPlatform.bsv for instruction-fetch from IO addrs
Detail: an "instruction-fetch" response from mmioplatform to core
should be an "InstFetch". This was true for successful fabric reads,
but on error responses it was wrongly returned as a "DataAccess"
response.  This was causing a deadlock.
2019-04-17 15:29:10 -04:00
rsnikhil
f369ed14e3 Small fixes to allow booting from any IO address, including Flash, not just Boot ROM
Regression status: RV64ADFIMSU_Toooba_verilator  204/229 PASS
      (22 expected floating-point failures due to inaccurate modeling)

  Modified
    src_Core/RISCY_OOO/procs/lib/MMIOInst.bsv
        Renamed 'BootRom' to 'IODevice'
        Imported and instantiated SoC_Map
        changed method getFetchTarget to use soc_map.is_IO_addr (phyPC)
        to classify as IODevice

    src_Core/RISCY_OOO/procs/RV64G_OOO/FetchStage.bsv
        Changed 'BootRom' constant to 'IODevice' constant (just a renaming)

    src_Testbench/SoC/SoC_Map.bsv
        Changed boot rom classification from 'mem' to 'IO device'
2019-04-10 15:36:20 -04:00
rsnikhil
4e305ac98d Updated so SoC addrs are taken from SoC_Map.bsv 2019-04-01 14:34:49 -04:00
rsnikhil
113f888d37 Added support for 'debug_external_interrupt_req'
New method 'debug_external_interrupt_req' to support emulation of a
debug module starts at P3_Core interface and is plumbed all the way in
to the CSR register MIP as interrupt [14].  The corresponding MIE[14]
is always 1, so it is never masked. Still todo: should not be masked
by MSTATUS interrupt-enables either.  Also expanded
interrupt-detection logic, mcause etc. to extend up to interrupt 14.

Builds in standalone mode, runs ISA tests.

Builds in src_SSITH_P3, generating RTL.
2019-04-01 12:26:54 -04:00
rsnikhil
ee24a93944 Initial load of files 2019-03-26 14:49:40 -04:00