Commit Graph

82 Commits

Author SHA1 Message Date
Niraj Sharma
e02b352bbb Resetting tv_encode whenever the proc is started 2020-02-06 17:17:28 +05:30
Niraj Sharma
454b83fe9a Added corew.start calls after NDM reset and PoR 2020-02-06 17:16:34 +05:30
Niraj Sharma
d8a3c3d754 Generated src_SSITH_P3_sim RTL 2020-02-06 17:14:59 +05:30
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
Rishiyur S. Nikhil
d8ca3c897b Merge pull request #10 from nirajnsharma/master
P3 Release related changes
2020-01-30 19:13:33 -08:00
Niraj Sharma
ce327a1615 Updated SoC_Map in src_SSITH_P3 (synth version)
Regenerated synth RTL
2020-01-30 14:04:29 -05:00
Niraj N Sharma
a0a4093088 Set verbosity to 0 in TV_Encode and Trace_Data2_to_Trace_Data
Updated src_SSITH_P3_sim SoC_Map
2020-01-30 13:39:54 -05:00
Niraj N Sharma
f89ed020d8 Added src_SSITH_P3_sim directory 2020-01-30 20:16:08 +05:30
rsnikhil
6078b7ce19 Removed EXTERNAL_DEBUG_MODULE stuff from CoreW.bsv; added Tandem Verif control flow 2020-01-29 13:19:31 -05:00
rsnikhil
d84ec657d7 Fixed SSITH_P3 version of SoC_Map; regenerated SSITH_P3 RTL 2020-01-28 21:33:56 -05:00
rsnikhil
154ed3d47f Fixed LLCDmaConnect to allow 1,2,4,8-byte accesses from Debug Module 2020-01-28 20:57:39 -05:00
rsnikhil
4a7dd01023 Removed -D EXTERNAL_DEBUG_MODULE in src_SSITH_P3 Makefile, and added an undef in src_Core/Core/CoreW.bsv 2020-01-23 12:25:21 -05:00
rsnikhil
fa5e141550 Fixed resume-after-break problem (details below).
When controlled from a debugger (build with INCLUDE_GDB_CONTROL macro);
when stopped due a EBREAK instruction; on a 'resume' command ('continue' in GDB),
was getting stuck.  This is now working.
At this point, all debugger functionality (almost: see below) is working:
   halt, step, breakpoints, resume, read/write gpr/fpr/csr, read/write memory.
Still todo: "NDM reset" (non-debug module reset).
2020-01-17 20:08:04 -05:00
rsnikhil
977e3c92cd Fixed some ifdef INCLUDE_GDB_CONTROL issues. Passing all 229 ISA tests. 2020-01-16 16:04:32 -05:00
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
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
Rishiyur S. Nikhil
021b374833 Merge pull request #2 from jrtc27/fixes
Multiple bug and performance fixes
2019-11-26 12:15:22 -05: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
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