Commit Graph

80 Commits

Author SHA1 Message Date
Jessica Clarke
fb5339e9ca Adapt the PLIC instantiation and wiring to support multiple cores 2021-01-31 17:54:43 +00:00
Peter Rugg
f800cdeb77 Prevent spurious warnings 2021-01-30 15:21:38 +00:00
Peter Rugg
e8487e2a1c Revert "Provide opt-in wedge debugging info"
This reverts commit 68d3bd484e.
2021-01-19 22:00:16 +00:00
Jessica Clarke
6c98dcb3d8 src_SSITH_P3: Delete stray file references
No clue what mkAxiLowPower is. mkPLIC_16_CoreNumX2_7 belongs with the
dual-core fixes, which aren't in the CHERI branch, at least not
currently (and the old mkPLIC_16_2_7 is still referenced in this file
anyway).
2021-01-13 00:59:46 +00:00
Jessica Clarke
1fb31bb255 src_SSITH_P3: Another open-source bsc fix 2021-01-11 21:34:11 +00:00
Jessica Clarke
7ae8689ce5 src_SSITH_P3: Fix build with open-source bsc
bsc-contrib puts these under AMBA_TLM3.
2021-01-11 20:57:50 +00:00
Jonathan Woodruff
4dd0a73051 Port to internal AXI interfaces for the debug module. 2020-12-17 15:02:05 +00:00
Jonathan Woodruff
69c697daf7 Changes needed to build for FPGA. 2020-11-06 11:44:33 +00:00
Jessica Clarke
72f49a1109 Regenerate verilog 2020-07-16 19:35:51 +01:00
Jessica Clarke
682ff10d72 Regenerate verilog 2020-07-15 03:16:24 +01:00
Jessica Clarke
e8c1de7793 Regenerate verilog 2020-07-14 19:01:47 +01:00
Jessica Clarke
956c9686a6 src_SSITH_P3: Optimise unspecified values
We have a lot of ?s floating around that needlessly constrain logic. As
with Flute, enable optimisations on these in the hope that timing and/or
area improve further.
2020-07-14 17:53:01 +01:00
Jessica Clarke
e89f7a8130 Regenerate verilog 2020-07-13 18:54:53 +01:00
Jessica Clarke
ece8423119 Regenerate verilog 2020-07-11 17:26:00 +01:00
Peter Rugg
6a317d1a00 Prevent instruction fetch to unexpected devices 2020-07-10 17:35:06 +01:00
Jessica Clarke
68d3bd484e Provide opt-in wedge debugging info
When DEBUG_WEDGE is defined, expose the last committed and next in the
reorder buffer PC and corresponding instruction via DMI registers, since
even when the core is wedged and we can't read GPRs etc we can still
interact with the debug module itself. Hopefully this proves useful for
debugging wedges.
2020-07-07 23:59:35 +01:00
Jessica Clarke
40f8109263 Regenerate verilog 2020-07-06 19:32:56 +01:00
Jessica Clarke
9c12b97a09 Regenerate verilog 2020-07-06 01:55:30 +01:00
Jessica Clarke
badf5c8e37 Include xCHERI in ARCH and build directory names
Also use RVFI_DII not RVFIDII in the directory names.

This makes everything match Piccolo/Flute rather than having Toooba be a
weird, inconsistent and plain wrong.
2020-07-05 21:41:28 +01:00
Jessica Clarke
0b0b863baa Replace home-grown dependency script with Bluespec-provided makedepend.tcl
This one has the advantage of being able to be called with the same
flags as bsc, rather than needing to pass things through special
environment variables. As a result, revert all our changes to dealing
with BSC_COMPILATION_FLAGS (some of this diff therefore looks strangely
formatted, but it's to match upstream verbatim, and should be left that
way to minimise diffs and avoid conflicts).
2020-07-05 21:26:18 +01:00
Jessica Clarke
cd8e2a15ef Regenerate verilog 2020-07-02 03:00:55 +01:00
Peter Rugg
dcc506a365 Regenerate verilog 2020-07-01 17:08:08 +01:00
Peter Rugg
f8972768a2 Regenerate verilog 2020-06-30 00:00:29 +01:00
Peter Rugg
258a0921e6 Regenerate verilog 2020-06-25 16:23:40 +01:00
Peter Rugg
a5578a715a Regenerate verilog 2020-06-24 21:16:57 +01:00
Peter Rugg
7d866f85e7 Regenerate verilog 2020-06-17 13:02:20 +01:00
Peter Rugg
8778369fe5 Merge remote-tracking branch 'upstream/master' into CHERI 2020-06-17 13:01:41 +01:00
Peter Rugg
49a9e5fc64 Remove unconnected signal in simulation 2020-06-17 11:43:28 +01:00
Peter Rugg
4f4bbbbdcb Add new TagController parameters to synth makefile 2020-06-17 11:40:23 +01:00
Peter Rugg
3117fcc9d5 Regenerate verilog 2020-06-07 16:52:34 +01:00
Peter Rugg
4fbabae1dd component.xml fixes for synthesis 2020-06-07 16:52:29 +01:00
Peter Rugg
be2c92b291 Regenerate verilog 2020-06-05 17:49:32 +01:00
Peter Rugg
962ade1092 Fixes for synthesis 2020-06-05 17:40:28 +01:00
Peter Rugg
046319b909 Remove Tandem verification 2020-06-03 22:28:31 +01: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
rsnikhil
c278e4fe68 Fixed a bug, and a related Tandem-Verification bug, re. CSR MIP MEIP/MTIP/MSIP.
Two of these were not properly restricted as read-only from CSRRX instructions,
and there was a bug in the WARL function for writing MIP,
and there was a bug in the TV-reporting of MIP updates.
2020-03-12 21:44:00 -04:00
rsnikhil
f02e9af515 Improved avoidance of initial timer interrupt in MMIOPlatform; removed spurios MSTATUS TV report on CSRRS/C with rs1==0 2020-03-11 22:42:18 -04:00
rsnikhil
a19eb97f34 Small tweak to MMIOPlatform.bsv to avoid spurious timer interrupt at start of time. 2020-03-09 22:58:04 -04:00
rsnikhil
b00f1d2eec Fixed a Tandem Verification trace generation bug for FMV.X.F and FMV.X.D
We were reporting the incremental value of fflags (=0)
instead of the final value of fflags (same as pre-value, which may not be 0).
2020-03-09 14:47:20 -04:00
rsnikhil
976494a8ff Fixed Tandem-Verification trace generation issue re. MSTATUS on CSRRx instructions that write to FCSR.
When a CSRRx instruction writes to FCSR/FFLAGS/FRM, the CPU also
changes MSTATUS.FS and, by implication, MSTATUS.SD because the
floating point state has become "dirty".  Tandem Verification
trace-generation was not reporting this update.
2020-03-08 21:29:30 -04:00
rsnikhil
fafd99c983 Fixes reported by Joe Stoy: PLIC, MMIO_AXI4_Adapter and Core.bsv (details below)
PLIC: updated to latest version from Piccolo/Flute.

MMIO_AXI4_Adapter: added workaround for Xilinx IP problem on 64-bit
    AXI4 fabrics. Writes that specify 8-byte size, but only write in
    upper or lower word using strobes, are converted into 4-byte size.

Core.bsv: added a notification to the Debug Module re. CPU halt.
2020-03-08 15:39:57 -04:00
rsnikhil
4bdbcbfd88 Additional fix to previous commit (75df204e) which only fixed MIP/MIE; this fixes SIP/SIE as well. 2020-03-04 13:14:31 -05:00
rsnikhil
75df204e31 Fixed a Tandem-Verification bug (reporting incorrect MIP/MIE/SIP/SIE post-write values)
MIP/MIE/SIP/SIE fields are WARL (Write-Any/Read-Legal). The CSR
register forces the user-privilege bits ([8,4,0]) to 0 since riscy-ooo
does not support user-level interrupts.  However, function
Csrfile.fv_warl_xform() was not mirroring this correctly.
2020-03-04 09:50:39 -05:00
rsnikhil
40b55d2c32 Fixed a Tandem-Verification issue (report MIP change due to interrupts).
CSR MIP can change due to external/timer interrupts.  These non-instruction-related
changes were not being reported to the Tandem Verifier.
2020-03-03 18:34:00 -05:00
rsnikhil
ac6043ce2d Fixed two bugs: (1) not trapping on unimplemented CSRs (2) MSTATUS.FS initialization
(1) riscy-ooo was mapping all unimplemented CSRs to a benign, user-privilege read-write CSR
    Instead, we now catch this RenameStage and steer it to a trap.
(2) MSTATUS.FS was initialized to 2'b00 (absent/off); should be 2'b01 (present and initial)
2020-03-03 13:56:31 -05:00
rsnikhil
e02dac1449 In CsrFile.bsv, changed user-privilege bits in MIP/SIP/MIE/SIE to read-only 0 since MISA.N=0 2020-03-02 16:20:07 -05:00
rsnikhil
96a0897bf5 In MMIO_AXI4_Adapter.bsv, added check for unmapped addresses, provide err response immediately.
Previously, the request went out into the fabric, and we were relying
on the fabric returning an error response.  Some fabrics don't do this
reliably, so this removes that reliance on the fabric.
2020-02-28 14:07:45 -05:00
Niraj N Sharma
6f5d079e7c Modified synth and sim compile options in the Makefile
Regenerated synth and sim RTLs
2020-02-22 17:51:13 +05:30
Niraj Sharma
568f52fc0b Corrected typo in src_SSITH_P3 Makefile 2020-02-14 21:52:20 -05:00