1175 Commits

Author SHA1 Message Date
rsnikhil
4b2400fcc9 Merge remote-tracking branch 'origin/Debug_Module'
Debug Module mostly working (except resume-after-breakpoint).
2020-01-16 14:41:22 -05:00
rsnikhil
56698d469e Integration of Debug_Module basically complete (except resume-after-break, details follow)
Stop, set breakpoint: working, stopping successfully.
Step: working: stops after a step.
Continue (resume) working after Stop and Step, but not after stop by breakpoint (needs debugging)
Read/Write GPRs, FPRs, CSRs, memory working.
2020-01-16 14:36:19 -05:00
rsnikhil
16cb92e2c1 Register reads now working. All functionality is in; need testing, cleanup, merge into master. 2020-01-15 15:54:50 -05:00
rsnikhil
2e909a90a9 Work-in-progress integrating Debug Module. Now able to load ELF file from debugger and execute it 2020-01-14 23:29:32 -05:00
rsnikhil
2807edf1b2 Work-in-progress on integrating Debug Module 2020-01-13 21:22:54 -05:00
rsnikhil
dcfb285c29 Work-in-progress. Now able to single-step from debugger. 2020-01-13 15:34:27 -05:00
Rishiyur S. Nikhil
fd9786cc71 Merge pull request #8 from nirajnsharma/master
Updated src_SSITH_P3 RTL for simulation
2020-01-13 09:25:43 -08:00
Niraj N Sharma
64178e0bd7 Updated src_SSITH_P3 RTL for simulation 2020-01-13 12:19:20 -05:00
rsnikhil
27c3c7cb4d Work in progress on Debug Module integration. Got further on start/step/halt 2020-01-12 22:25:14 -05:00
rsnikhil
1278927f51 Removed a block-commented piece of code 2020-01-08 20:31:33 -05:00
rsnikhil
cd779e1cbe Work in progress: updates to handle stop/step/run from Debug Module 2020-01-08 20:17:50 -05:00
rsnikhil
0f04b9cbe1 Tweaks to builds/Resources/Include_..._.mk 2020-01-08 19:49:49 -05:00
Rishiyur S. Nikhil
09340dac13 Merge pull request #7 from jrtc27/bluesim
Add RV64ACDFIMSU_Toooba_bluesim build
2020-01-04 14:54:43 -08:00
James Clarke
7ecde58b1d Add RV64ACDFIMSU_Toooba_bluesim build 2020-01-04 22:44:59 +00:00
James Clarke
7b6c1e655b Avoid divide-by-zero in simulation model 2020-01-04 22:44:59 +00:00
James Clarke
6927e6bab1 Add simulation model for ResetGuard 2020-01-04 22:44:59 +00:00
Jonathan Woodruff
f101ad129e Full RVFI flow-control integration with Toooba's flow control.
This enables us to run all test classes successfully.
2019-12-18 15:49:42 +00:00
Jonathan Woodruff
909423e8e8 Use smaller L2 size (256KiB) for TestRIG. 2019-12-13 13:00:52 +00:00
Jonathan Woodruff
584f8334fa Pipe through memory results. This design passes 100 memory test sequences of TestRIG. Yay! 2019-12-13 10:53:02 +00: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
b79a11b44d Merge branch 'master' into RVFI_DII 2019-12-09 16:33:51 +00:00
Jonathan Woodruff
83e54f9b53 Changes necessary to trace memory operations.
This is not thoroughly tested, as we quickly throw an exception due to out-of-bounds memory and need some RVFI-DII control flow fixup to proceed further.
2019-11-29 10:50:38 +00:00
Rishiyur S. Nikhil
021b374833 Merge pull request #2 from jrtc27/fixes
Multiple bug and performance fixes
2019-11-26 12:15:22 -05: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
Jonathan Woodruff
571904535e Add RVFI_DII BSV interface subrepo. 2019-11-07 16:11:54 +00:00
James Clarke
3b5443e284 FetchStage: Clear straddle state on redirect
Otherwise, if the last instruction we tried to decode was the first half
of a 32-bit instruction, we will think the first 16-bit parcel from the
new PC is the second half of the previous instruction and take an
assertion failure because the PC does not match what was expected. This
fixes rv64uc-p-rvc, which broke after the previous commit as the
scheduling changes exposed this bug.
2019-11-03 04:59:52 +00:00
James Clarke
67be950d3a FetchStage: Use EHRs to remove conflicts between doDecode and doFetch3
This conflict was introduced by 53aacff7c when compressed support was
added. Previously, doDecode could be scheduled in the same cycle as
doFetch3 (and only in that order), but the Reg reads added to doDecode
prevented this. Instead, use EHRs to allow a bypass path from doDecode
to doFetch3. This means we can issue every cycle again, rather than only
every other cycle.
2019-11-03 04:12:34 +00:00
James Clarke
87daa8e319 Revert unwanted MMIOInst diff in e7fbf32b38
This stopped unmapped addresses from faulting, instead giving back a
list of all Invalid entries, triggering the "Fetched insts not enough"
assertion in FetchStage's doDecode. Fixes rv64mi-p-access.
2019-11-03 03:47:25 +00:00
James Clarke
78cad5bbcc Fix BTB entry aliasing with C extension 2019-11-02 20:38:35 +00:00
James Clarke
a0fd5a8f37 Print cycle counter like Piccolo/Flute on write to to_host 2019-11-02 20:37:34 +00:00
Darius Rad
d337f1b8cf Update compiled output. 2019-10-25 00:13:58 -04:00
Rishiyur S. Nikhil
35e0b09202 Merge pull request #6 from nirajnsharma/master
src_SSITH_P3 Makefile edits
2020-01-03 04:37:48 -08:00
Niraj Nayan Sharma
364b1d1cf3 For src_SSITH_P3 builds, added conditions to include/exclude
simulation models of the integer divider
2020-01-03 16:59:34 +05:30
Rishiyur S. Nikhil
afce8b4a6d Merge pull request #5 from jrtc27/fixes
Fix FMIN/FMAX ISA test failures
2020-01-01 17:26:32 -08:00
James Clarke
9ff062a5db Fix FMIN/FMAX ISA test failures
FMIN(sNaN, x), where x is not NaN, should behave like FMIN(qNaN, x) and
yield x rather than the canonical NaN. The only difference is that the
invalid operation flag should still be set despite not yielding NaN. The
same applies to FMAX.
2020-01-02 01:12:51 +00:00
Rishiyur S. Nikhil
8a2c45c901 Merge pull request #4 from jrtc27/fixes
Reduce needless fetch stalls in presence of compressed instructions
2020-01-01 16:28:44 -08:00
James Clarke
60c1e31b01 Reduce needless fetch stalls in presence of compressed instructions
Currently, our next address prediction cannot distinguish between a
taken compressed branch to PC+4 and an uncompressed instruction that
falls through. We can instead make the NAP machinery much more robust by
keying it on the 16b parcels, with uncompressed branches having their
taken prediction on the second 16b parcel. This also removes the need
for the address prediction requests to be chained.

Moreover, if we decode more than 2 instructions in one cycle due to
decompression, we throw away any subsequent instructions and treat it
like a branch miss, redirecting and thus restarting the pipeline from
the first discarded PC. We should therefore instead save them for
issuing on the next cycle and avoid the redirects. To ensure we don't
needlessly reduce our IPC, if we have a partial issue's width of
instructions saved, we should also support issuing instructions from the
next ICache response if valid, which should be the case in hot
correctly-predicted code paths, especially tight loops. As part of this
change, we also keep the pending straddle state in Fetch3 rather than
sending it to Decode only to have it be forwarded back.

Combined, these two approaches ensure the fetch unit can maintain an IPC
of 2 after it has had time to be correctly trained, regardless of the
distribution of compressed instructions.
2020-01-01 22:22:17 +00:00
Rishiyur S. Nikhil
5df163d414 Merge pull request #3 from nirajnsharma/master
Fixes to the floating point
2019-12-24 07:51:17 -08:00
Niraj Nayan Sharma
601bbe5a82 No longer using Xilinx FPU modules 2019-12-14 12:44:02 +05:30
Niraj Nayan Sharma
09ce172b91 FP ISA tests bug fixes:
Added nanboxing for float in a 64-bit FPR system
Fixed behaviour around NaNs for comparison opcodes
2019-12-06 14:27:33 +05:30
Darius Rad
bb557e5e23 Update compiled output. 2019-04-24 21:48:33 -04:00
Darius Rad
4fba332f17 Add missing module (FIFOL1) to Xilinx import. 2019-04-24 21:34:52 -04:00
rsnikhil
532998461d Merge branch 'master' of https://github.com/bluespec/Toooba 2019-04-22 15:12:52 -04:00
rsnikhil
666dd2ad92 Small tweak to remove unnecessary explicit boot rom addrs (subsumed by IO) 2019-04-22 15:12:30 -04:00
Darius Rad
afb5e0d13c Update compiled output. 2019-04-22 13:55:36 -04:00
Darius Rad
4a8fcef186 Start processor after reset. 2019-04-22 13:42:11 -04:00
rsnikhil
51bdff05d8 Updated Run_regression.py to utilize parallel processes 2019-04-18 18:42:06 -04:00
rsnikhil
fd02260fc8 Merge branch 'master' of https://github.com/bluespec/Toooba 2019-04-17 18:09:20 -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
e9c04c7050 Renamed builds/RV64ADFIMSU_... to builds/RV64ACDFIMSU_... now that we support C extension 2019-04-17 09:10:30 -04:00