Luke Kenneth Casson Leighton [Thu, 9 Dec 2021 10:01:57 +0000 (10:01 +0000)]
add FAST SPRs temporarily to power_enums
Jacob Lifshay [Thu, 9 Dec 2021 06:04:10 +0000 (22:04 -0800)]
make ternlogi tests run
Jacob Lifshay [Thu, 9 Dec 2021 04:52:09 +0000 (20:52 -0800)]
rename ternaryi to ternlogi
Jacob Lifshay [Thu, 9 Dec 2021 04:51:41 +0000 (20:51 -0800)]
add initial ternlogi pseudo-code
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 19:15:53 +0000 (19:15 +0000)]
add instr_fault to PowerDecoder2
this, like LDST exceptions, allows instruction PTE fault-detection
to propagate from I-Cache to Issuer to PowerDecoder2 to OP_FETCH_FAILED
to MMU FSM to MMU to do MMU_LOOKUP to get the PTE which then...
you get the idea
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 18:56:51 +0000 (18:56 +0000)]
whitespace
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 13:45:09 +0000 (13:45 +0000)]
code-comments for LDSTException.instr_fault
(which is not actually an exception)
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:47:24 +0000 (12:47 +0000)]
add an on_Display function which is being used by some of us
for debugging purposes (needs a patch, normally would not be needed
but because this is low-level a dummy on_Display has to be provided)
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:46:16 +0000 (12:46 +0000)]
found a way to print out the names of the signals
will be useful to see what the heck is going on in the auto-generated c
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:30:56 +0000 (12:30 +0000)]
absolute import again
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:17:10 +0000 (12:17 +0000)]
use full-path imports (so we know where they come from)
Mikolaj Wielgus [Wed, 8 Dec 2021 11:26:58 +0000 (11:26 +0000)]
WIP: Output C instead of Python for Nmigen simulation
Mikolaj Wielgus [Wed, 8 Dec 2021 08:09:28 +0000 (08:09 +0000)]
Source Nmigen simulator from this repository
Luke Kenneth Casson Leighton [Tue, 7 Dec 2021 15:10:47 +0000 (15:10 +0000)]
whoops wrong number
Luke Kenneth Casson Leighton [Tue, 7 Dec 2021 14:59:03 +0000 (14:59 +0000)]
add OP_FETCH_FAILED micro-op
Jacob Lifshay [Tue, 7 Dec 2021 03:00:28 +0000 (19:00 -0800)]
fix broken url
Tobias Platen [Sun, 5 Dec 2021 17:33:32 +0000 (18:33 +0100)]
fix microwatt_mmu and and wishbone_memory output in gtkwave
Luke Kenneth Casson Leighton [Sun, 5 Dec 2021 01:07:50 +0000 (01:07 +0000)]
connect to dcache.bus standard interface when using wb_get
Luke Kenneth Casson Leighton [Sun, 5 Dec 2021 00:26:30 +0000 (00:26 +0000)]
correct import of wb_get function
Luke Kenneth Casson Leighton [Sat, 4 Dec 2021 18:14:43 +0000 (18:14 +0000)]
add name parameter to wb_get
Luke Kenneth Casson Leighton [Sat, 4 Dec 2021 17:59:24 +0000 (17:59 +0000)]
add wb_get function for emulating wishbone interface
Luke Kenneth Casson Leighton [Sat, 4 Dec 2021 17:47:36 +0000 (17:47 +0000)]
raise a MemException in ISACaller RADIXMMU
and capture it in ISACaller, and throw TRAP 0x300
Luke Kenneth Casson Leighton [Sat, 4 Dec 2021 17:47:03 +0000 (17:47 +0000)]
enable MMU in SimRunner if requested. now HDL and ISACaller run MMU
Luke Kenneth Casson Leighton [Sat, 4 Dec 2021 17:46:23 +0000 (17:46 +0000)]
test in SimState for access to RADIX memory, bypass and get contents direct
Luke Kenneth Casson Leighton [Fri, 3 Dec 2021 17:32:00 +0000 (17:32 +0000)]
add a namedtuple LDSTExceptionTuple which allows obtaining
list of all the exception types in LDSTException
Luke Kenneth Casson Leighton [Fri, 3 Dec 2021 14:22:43 +0000 (14:22 +0000)]
add link to exceptions in gtkw traces
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 15:48:36 +0000 (15:48 +0000)]
regspec_decode_write now stores the decoded write info into Signals
to make it easier to debug
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 15:39:44 +0000 (15:39 +0000)]
specify length in RegDecodeInfo explicitly so that the information
that needs to be captured (held by the ReservationStation) is
not too great. some of the info is actually expressions, hence why
using len() or Signal.like() does not work, it is too long
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 15:05:39 +0000 (15:05 +0000)]
use namedtuple in get_rdflags
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 15:04:30 +0000 (15:04 +0000)]
use namedtuple for regspec_decode
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 14:55:54 +0000 (14:55 +0000)]
add module to regspec_decode_* and get_rdflags
Jacob Lifshay [Thu, 2 Dec 2021 03:00:36 +0000 (19:00 -0800)]
move ternlogi to SHIFT_ROT unit
Jacob Lifshay [Thu, 2 Dec 2021 00:49:51 +0000 (16:49 -0800)]
fix sv_analysis command, cuz script created by setup.py passes no parameters to function
Jacob Lifshay [Thu, 2 Dec 2021 00:42:13 +0000 (16:42 -0800)]
format code
Luke Kenneth Casson Leighton [Wed, 1 Dec 2021 18:05:34 +0000 (18:05 +0000)]
fix expected state in hazard test
Luke Kenneth Casson Leighton [Wed, 1 Dec 2021 18:03:02 +0000 (18:03 +0000)]
fix expected state in hazard case_regression_1
Luke Kenneth Casson Leighton [Wed, 1 Dec 2021 13:43:51 +0000 (13:43 +0000)]
add a proper twin addi regression which tests ReservationStations
increase number of operations in hazard random test to 20
Luke Kenneth Casson Leighton [Wed, 1 Dec 2021 12:06:46 +0000 (12:06 +0000)]
add regspec_decode which takes readmode arg and returns read/write
as appropriate
Dmitry Selyutin [Tue, 30 Nov 2021 20:31:08 +0000 (20:31 +0000)]
sv_analysis: decouple declarations and definitions
Dmitry Selyutin [Tue, 30 Nov 2021 13:42:10 +0000 (13:42 +0000)]
sv_analysis: use is instead of eq for enums
Dmitry Selyutin [Tue, 30 Nov 2021 13:41:19 +0000 (13:41 +0000)]
sv_analysis: fix single-line binutils comments
Luke Kenneth Casson Leighton [Tue, 30 Nov 2021 18:29:09 +0000 (18:29 +0000)]
add randomised hazard test
Luke Kenneth Casson Leighton [Tue, 30 Nov 2021 16:18:18 +0000 (16:18 +0000)]
add two more hazard tests
Luke Kenneth Casson Leighton [Tue, 30 Nov 2021 10:43:47 +0000 (10:43 +0000)]
attempting to use PowerDecode2 in non-svp64 mode
Dmitry Selyutin [Sat, 27 Nov 2021 20:28:22 +0000 (20:28 +0000)]
sv_analysis: decouple common disclaimer
Dmitry Selyutin [Sat, 27 Nov 2021 19:36:25 +0000 (19:36 +0000)]
sv_analysis: introduce stub binutils format
Dmitry Selyutin [Sat, 27 Nov 2021 19:35:01 +0000 (19:35 +0000)]
sv_analysis: support format argument
Luke Kenneth Casson Leighton [Sat, 27 Nov 2021 14:29:51 +0000 (14:29 +0000)]
add extra overlap hazard test
R Veera Kumar [Fri, 26 Nov 2021 17:48:02 +0000 (23:18 +0530)]
Shorten expected state code for case_extsb using exts function
R Veera Kumar [Fri, 26 Nov 2021 03:09:56 +0000 (08:39 +0530)]
Shorten expected state code for case_extsb in alu_cases unit test
R Veera Kumar [Fri, 26 Nov 2021 02:53:12 +0000 (08:23 +0530)]
Shorten expected state code for case_rand in alu_cases unit test
R Veera Kumar [Fri, 26 Nov 2021 02:26:50 +0000 (07:56 +0530)]
Shorten case_rand_imm alu test case code
Shorten addis sub test code
Shorten subfic sub test code in general
In subfic case shorten carry_out32 execution code
Make carry_out32 variable boolean and expected state ca var less confusing
R Veera Kumar [Fri, 26 Nov 2021 01:53:29 +0000 (07:23 +0530)]
Make carry_out32 variable boolean and expected state ca var less confusing
R Veera Kumar [Thu, 25 Nov 2021 10:15:21 +0000 (15:45 +0530)]
Shortened code in case_addis_nonzero_r0 alu test case
R Veera Kumar [Thu, 25 Nov 2021 09:45:18 +0000 (15:15 +0530)]
Correct add-equal operator in case_rand_imm
R Veera Kumar [Thu, 25 Nov 2021 01:21:23 +0000 (06:51 +0530)]
Short the code of case_rand_imm
R Veera Kumar [Wed, 24 Nov 2021 23:47:35 +0000 (05:17 +0530)]
Fix line so that 80 characters per line is kept and removed a comment
R Veera Kumar [Wed, 24 Nov 2021 23:39:34 +0000 (05:09 +0530)]
Add expected state to case_rand_imm in alu_cases unit test
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 23:12:00 +0000 (23:12 +0000)]
corrections to hazard overlap test
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 22:46:37 +0000 (22:46 +0000)]
add extra hazard unit tests
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 16:17:29 +0000 (16:17 +0000)]
tidyup on case_0_adde
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 16:08:15 +0000 (16:08 +0000)]
correct write-after-write hazard test (expected values)
R Veera Kumar [Tue, 23 Nov 2021 17:58:03 +0000 (23:28 +0530)]
Add expected state to case_0_adde in alu_cases unit test
Luke Kenneth Casson Leighton [Tue, 23 Nov 2021 15:16:28 +0000 (15:16 +0000)]
add write-after-write hazard test for inorder core
R Veera Kumar [Tue, 23 Nov 2021 14:07:39 +0000 (19:37 +0530)]
Add expected state to case_rand in alu_cases unit test
R Veera Kumar [Tue, 23 Nov 2021 12:13:58 +0000 (17:43 +0530)]
Add expected state to case_addis_nonzero_r0 in alu_cases unit test
R Veera Kumar [Tue, 23 Nov 2021 11:18:15 +0000 (16:48 +0530)]
Add expected state to case_extsb in alu_cases unit test
R Veera Kumar [Tue, 23 Nov 2021 06:09:04 +0000 (11:39 +0530)]
Add computed CR0 to expected version of case_adde_0
Luke Kenneth Casson Leighton [Mon, 22 Nov 2021 12:11:09 +0000 (12:11 +0000)]
add expected version of case_adde_0
Luke Kenneth Casson Leighton [Mon, 22 Nov 2021 11:51:07 +0000 (11:51 +0000)]
adding a couple more hazard avoidance cases
R Veera Kumar [Mon, 22 Nov 2021 10:24:08 +0000 (15:54 +0530)]
Add expected state to case_cmpeqb in alu_cases unit test
R Veera Kumar [Mon, 22 Nov 2021 06:26:17 +0000 (11:56 +0530)]
Add expected state to case_cmplw_microwatt_1 in alu_cases unit test
R Veera Kumar [Mon, 22 Nov 2021 05:32:57 +0000 (11:02 +0530)]
Add expected state to case_cmpli_microwatt in alu_cases unit test
R Veera Kumar [Mon, 22 Nov 2021 04:45:01 +0000 (10:15 +0530)]
Add expected state to case_cmpl_microwatt_0_disasm in alu_cases unit test
R Veera Kumar [Mon, 22 Nov 2021 04:30:28 +0000 (10:00 +0530)]
Add expected state to case_cmpl_microwatt_0 in alu_cases unit test
R Veera Kumar [Mon, 22 Nov 2021 02:34:26 +0000 (08:04 +0530)]
Add expected state to case_addme_ca_so_4 in alu_cases unit test
R Veera Kumar [Mon, 22 Nov 2021 02:18:06 +0000 (07:48 +0530)]
Add expected state to case_addme_ca_so_3 in alu_cases unit test
R Veera Kumar [Mon, 22 Nov 2021 01:52:15 +0000 (07:22 +0530)]
Add expected state to case_addme_ca_1 in alu_cases unit test
Luke Kenneth Casson Leighton [Sun, 21 Nov 2021 21:04:21 +0000 (21:04 +0000)]
sigh, for overlap mode there is no safe way to get instruction state.
therefore, just check the last one.
Luke Kenneth Casson Leighton [Sun, 21 Nov 2021 21:03:52 +0000 (21:03 +0000)]
move dump state to base class State in test API
R Veera Kumar [Sun, 21 Nov 2021 17:15:28 +0000 (22:45 +0530)]
Add expected state to case_cmp3 in alu_cases unit test
R Veera Kumar [Sun, 21 Nov 2021 15:32:41 +0000 (21:02 +0530)]
Add expected state to case_cmp2 in alu_cases unit test
R Veera Kumar [Sun, 21 Nov 2021 14:16:02 +0000 (19:46 +0530)]
Add expected state to case_cmp in alu_cases unit test
R Veera Kumar [Sun, 21 Nov 2021 11:22:28 +0000 (16:52 +0530)]
Add expected state to all of case_addze in alu_cases unit test
Jacob Lifshay [Wed, 17 Nov 2021 20:50:50 +0000 (12:50 -0800)]
add bitmanip_cases.py
Jacob Lifshay [Wed, 17 Nov 2021 19:25:21 +0000 (11:25 -0800)]
rename ternary->ternlog and associated form/field TI->TLI
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 16:22:35 +0000 (16:22 +0000)]
add allow_overlap argument to TestRunnerBase
this is to filter down to TestIssuer which (surprise) will be allowed
to have instructions be issued that overlap
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 16:15:01 +0000 (16:15 +0000)]
code-comments
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 15:52:41 +0000 (15:52 +0000)]
XER regspec_decode_write was not sophisticated enough.
XER is being written to without the hazard vector being set.
this previously did not matter because the TestIssuer FSM was
only allowing one pipeline access to all regfiles at a time.
in-order now will have overlapping instructions so it matters
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 14:45:47 +0000 (14:45 +0000)]
split up regression cases so that a single Rc=1 add can be tested
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 19:13:24 +0000 (19:13 +0000)]
truncate CR regspec_decode_write reg mask to 8 bit
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 16:26:18 +0000 (16:26 +0000)]
argh, regspec_decode_write is supposed to return single-bit flags
for indicating whether a register is to be written to or not.
the write data structures are a Data() record - with data and an ok.
the *entire* data structure was being returned, not the "ok" bit,
in many cases in regspec_decode_write.
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 15:13:47 +0000 (15:13 +0000)]
name of cr reg3 was numbered 2
Jacob Lifshay [Sat, 13 Nov 2021 00:36:40 +0000 (16:36 -0800)]
remove excess I from ternary-related names
Jacob Lifshay [Fri, 12 Nov 2021 01:32:47 +0000 (17:32 -0800)]
change ternaryi to correct register fields
Jacob Lifshay [Fri, 12 Nov 2021 01:19:50 +0000 (17:19 -0800)]
format code
Jacob Lifshay [Fri, 12 Nov 2021 00:44:57 +0000 (16:44 -0800)]
format code
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 11:30:03 +0000 (11:30 +0000)]
add case-based expected results in addme alu_cases
creates the expected results based on conditions in the choices and values
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 10:37:40 +0000 (10:37 +0000)]
invert speedup (commenting-out) of tests
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 10:30:11 +0000 (10:30 +0000)]
sort out numbering on CRs in SimState