openpower-isa.git
2 years agoadd FAST SPRs temporarily to power_enums
Luke Kenneth Casson Leighton [Thu, 9 Dec 2021 10:01:57 +0000 (10:01 +0000)]
add FAST SPRs temporarily to power_enums

2 years agomake ternlogi tests run
Jacob Lifshay [Thu, 9 Dec 2021 06:04:10 +0000 (22:04 -0800)]
make ternlogi tests run

2 years agorename ternaryi to ternlogi
Jacob Lifshay [Thu, 9 Dec 2021 04:52:09 +0000 (20:52 -0800)]
rename ternaryi to ternlogi

2 years agoadd initial ternlogi pseudo-code
Jacob Lifshay [Thu, 9 Dec 2021 04:51:41 +0000 (20:51 -0800)]
add initial ternlogi pseudo-code

2 years agoadd instr_fault to PowerDecoder2
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

2 years agowhitespace
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 18:56:51 +0000 (18:56 +0000)]
whitespace

2 years agocode-comments for LDSTException.instr_fault
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)

2 years agoadd an on_Display function which is being used by some of us
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)

2 years agofound a way to print out the names of the signals
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

2 years agoabsolute import again
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:30:56 +0000 (12:30 +0000)]
absolute import again

2 years agouse full-path imports (so we know where they come from)
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)

2 years agoWIP: Output C instead of Python for Nmigen simulation
Mikolaj Wielgus [Wed, 8 Dec 2021 11:26:58 +0000 (11:26 +0000)]
WIP: Output C instead of Python for Nmigen simulation

2 years agoSource Nmigen simulator from this repository
Mikolaj Wielgus [Wed, 8 Dec 2021 08:09:28 +0000 (08:09 +0000)]
Source Nmigen simulator from this repository

2 years agowhoops wrong number
Luke Kenneth Casson Leighton [Tue, 7 Dec 2021 15:10:47 +0000 (15:10 +0000)]
whoops wrong number

2 years agoadd OP_FETCH_FAILED micro-op
Luke Kenneth Casson Leighton [Tue, 7 Dec 2021 14:59:03 +0000 (14:59 +0000)]
add OP_FETCH_FAILED micro-op

2 years agofix broken url
Jacob Lifshay [Tue, 7 Dec 2021 03:00:28 +0000 (19:00 -0800)]
fix broken url

2 years agofix microwatt_mmu and and wishbone_memory output in gtkwave
Tobias Platen [Sun, 5 Dec 2021 17:33:32 +0000 (18:33 +0100)]
fix microwatt_mmu and and wishbone_memory output in gtkwave

2 years agoconnect to dcache.bus standard interface when using wb_get
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

2 years agocorrect import of wb_get function
Luke Kenneth Casson Leighton [Sun, 5 Dec 2021 00:26:30 +0000 (00:26 +0000)]
correct import of wb_get function

2 years agoadd name parameter to wb_get
Luke Kenneth Casson Leighton [Sat, 4 Dec 2021 18:14:43 +0000 (18:14 +0000)]
add name parameter to wb_get

2 years agoadd wb_get function for emulating wishbone interface
Luke Kenneth Casson Leighton [Sat, 4 Dec 2021 17:59:24 +0000 (17:59 +0000)]
add wb_get function for emulating wishbone interface

2 years agoraise a MemException in ISACaller RADIXMMU
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

2 years agoenable MMU in SimRunner if requested. now HDL and ISACaller run MMU
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

2 years agotest in SimState for access to RADIX memory, bypass and get contents direct
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

2 years agoadd a namedtuple LDSTExceptionTuple which allows obtaining
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

2 years agoadd link to exceptions in gtkw traces
Luke Kenneth Casson Leighton [Fri, 3 Dec 2021 14:22:43 +0000 (14:22 +0000)]
add link to exceptions in gtkw traces

2 years agoregspec_decode_write now stores the decoded write info into Signals
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

2 years agospecify length in RegDecodeInfo explicitly so that the information
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

2 years agouse namedtuple in get_rdflags
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 15:05:39 +0000 (15:05 +0000)]
use namedtuple in get_rdflags

2 years agouse namedtuple for regspec_decode
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 15:04:30 +0000 (15:04 +0000)]
use namedtuple for regspec_decode

2 years agoadd module to regspec_decode_* and get_rdflags
Luke Kenneth Casson Leighton [Thu, 2 Dec 2021 14:55:54 +0000 (14:55 +0000)]
add module to regspec_decode_* and get_rdflags

2 years agomove ternlogi to SHIFT_ROT unit
Jacob Lifshay [Thu, 2 Dec 2021 03:00:36 +0000 (19:00 -0800)]
move ternlogi to SHIFT_ROT unit

2 years agofix sv_analysis command, cuz script created by setup.py passes no parameters to function
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

2 years agoformat code
Jacob Lifshay [Thu, 2 Dec 2021 00:42:13 +0000 (16:42 -0800)]
format code

2 years agofix expected state in hazard test
Luke Kenneth Casson Leighton [Wed, 1 Dec 2021 18:05:34 +0000 (18:05 +0000)]
fix expected state in hazard test

2 years agofix expected state in hazard case_regression_1
Luke Kenneth Casson Leighton [Wed, 1 Dec 2021 18:03:02 +0000 (18:03 +0000)]
fix expected state in hazard case_regression_1

2 years agoadd a proper twin addi regression which tests ReservationStations
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

2 years agoadd regspec_decode which takes readmode arg and returns read/write
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

2 years agosv_analysis: decouple declarations and definitions
Dmitry Selyutin [Tue, 30 Nov 2021 20:31:08 +0000 (20:31 +0000)]
sv_analysis: decouple declarations and definitions

2 years agosv_analysis: use is instead of eq for enums
Dmitry Selyutin [Tue, 30 Nov 2021 13:42:10 +0000 (13:42 +0000)]
sv_analysis: use is instead of eq for enums

2 years agosv_analysis: fix single-line binutils comments
Dmitry Selyutin [Tue, 30 Nov 2021 13:41:19 +0000 (13:41 +0000)]
sv_analysis: fix single-line binutils comments

2 years agoadd randomised hazard test
Luke Kenneth Casson Leighton [Tue, 30 Nov 2021 18:29:09 +0000 (18:29 +0000)]
add randomised hazard test

2 years agoadd two more hazard tests
Luke Kenneth Casson Leighton [Tue, 30 Nov 2021 16:18:18 +0000 (16:18 +0000)]
add two more hazard tests

2 years agoattempting to use PowerDecode2 in non-svp64 mode
Luke Kenneth Casson Leighton [Tue, 30 Nov 2021 10:43:47 +0000 (10:43 +0000)]
attempting to use PowerDecode2 in non-svp64 mode

2 years agosv_analysis: decouple common disclaimer
Dmitry Selyutin [Sat, 27 Nov 2021 20:28:22 +0000 (20:28 +0000)]
sv_analysis: decouple common disclaimer

2 years agosv_analysis: introduce stub binutils format
Dmitry Selyutin [Sat, 27 Nov 2021 19:36:25 +0000 (19:36 +0000)]
sv_analysis: introduce stub binutils format

2 years agosv_analysis: support format argument
Dmitry Selyutin [Sat, 27 Nov 2021 19:35:01 +0000 (19:35 +0000)]
sv_analysis: support format argument

2 years agoadd extra overlap hazard test
Luke Kenneth Casson Leighton [Sat, 27 Nov 2021 14:29:51 +0000 (14:29 +0000)]
add extra overlap hazard test

2 years agoShorten expected state code for case_extsb using exts function
R Veera Kumar [Fri, 26 Nov 2021 17:48:02 +0000 (23:18 +0530)]
Shorten expected state code for case_extsb using exts function

2 years agoShorten expected state code for case_extsb in alu_cases unit test
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

2 years agoShorten expected state code for case_rand 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

2 years agoShorten case_rand_imm alu test case code
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

2 years agoMake 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

2 years agoShortened code in case_addis_nonzero_r0 alu test case
R Veera Kumar [Thu, 25 Nov 2021 10:15:21 +0000 (15:45 +0530)]
Shortened code in case_addis_nonzero_r0 alu test case

2 years agoCorrect add-equal operator in case_rand_imm
R Veera Kumar [Thu, 25 Nov 2021 09:45:18 +0000 (15:15 +0530)]
Correct add-equal operator in case_rand_imm

2 years agoShort the code of case_rand_imm
R Veera Kumar [Thu, 25 Nov 2021 01:21:23 +0000 (06:51 +0530)]
Short the code of case_rand_imm

2 years agoFix line so that 80 characters per line is kept and removed a comment
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

2 years agoAdd expected state to case_rand_imm in alu_cases unit test
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

2 years agocorrections to hazard overlap test
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 23:12:00 +0000 (23:12 +0000)]
corrections to hazard overlap test

2 years agoadd extra hazard unit tests
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 22:46:37 +0000 (22:46 +0000)]
add extra hazard unit tests

2 years agotidyup on case_0_adde
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 16:17:29 +0000 (16:17 +0000)]
tidyup on case_0_adde

2 years agocorrect write-after-write hazard test (expected values)
Luke Kenneth Casson Leighton [Wed, 24 Nov 2021 16:08:15 +0000 (16:08 +0000)]
correct write-after-write hazard test (expected values)

2 years agoAdd expected state to case_0_adde in alu_cases unit test
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

2 years agoadd write-after-write hazard test for inorder core
Luke Kenneth Casson Leighton [Tue, 23 Nov 2021 15:16:28 +0000 (15:16 +0000)]
add write-after-write hazard test for inorder core

2 years agoAdd expected state to case_rand in alu_cases unit test
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

2 years agoAdd expected state to case_addis_nonzero_r0 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

2 years agoAdd expected state to case_extsb 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

2 years agoAdd computed CR0 to expected version of case_adde_0
R Veera Kumar [Tue, 23 Nov 2021 06:09:04 +0000 (11:39 +0530)]
Add computed CR0 to expected version of case_adde_0

3 years agoadd 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

3 years agoadding a couple more hazard avoidance cases
Luke Kenneth Casson Leighton [Mon, 22 Nov 2021 11:51:07 +0000 (11:51 +0000)]
adding a couple more hazard avoidance cases

3 years agoAdd expected state to case_cmpeqb in alu_cases unit test
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

3 years agoAdd expected state to case_cmplw_microwatt_1 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

3 years agoAdd expected state to case_cmpli_microwatt 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

3 years agoAdd expected state to case_cmpl_microwatt_0_disasm 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

3 years agoAdd expected state to case_cmpl_microwatt_0 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

3 years agoAdd expected state to case_addme_ca_so_4 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

3 years agoAdd expected state to case_addme_ca_so_3 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

3 years agoAdd expected state to case_addme_ca_1 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

3 years agosigh, for overlap mode there is no safe way to get instruction state.
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.

3 years agomove dump state to base class State in test API
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

3 years agoAdd expected state to case_cmp3 in alu_cases unit test
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

3 years agoAdd expected state to case_cmp2 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

3 years agoAdd expected state to case_cmp 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

3 years agoAdd expected state to all of case_addze 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

3 years agoadd bitmanip_cases.py
Jacob Lifshay [Wed, 17 Nov 2021 20:50:50 +0000 (12:50 -0800)]
add bitmanip_cases.py

3 years agorename ternary->ternlog and associated form/field TI->TLI
Jacob Lifshay [Wed, 17 Nov 2021 19:25:21 +0000 (11:25 -0800)]
rename ternary->ternlog and associated form/field TI->TLI

3 years agoadd allow_overlap argument to TestRunnerBase
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

3 years agocode-comments
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 16:15:01 +0000 (16:15 +0000)]
code-comments

3 years agoXER regspec_decode_write was not sophisticated enough.
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

3 years agosplit up regression cases so that a single Rc=1 add can be tested
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

3 years agotruncate CR regspec_decode_write reg mask to 8 bit
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

3 years agoargh, regspec_decode_write is supposed to return single-bit flags
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.

3 years agoname of cr reg3 was numbered 2
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 15:13:47 +0000 (15:13 +0000)]
name of cr reg3 was numbered 2

3 years agoremove excess I from ternary-related names
Jacob Lifshay [Sat, 13 Nov 2021 00:36:40 +0000 (16:36 -0800)]
remove excess I from ternary-related names

3 years agochange ternaryi to correct register fields
Jacob Lifshay [Fri, 12 Nov 2021 01:32:47 +0000 (17:32 -0800)]
change ternaryi to correct register fields

3 years agoformat code
Jacob Lifshay [Fri, 12 Nov 2021 01:19:50 +0000 (17:19 -0800)]
format code

3 years agoformat code
Jacob Lifshay [Fri, 12 Nov 2021 00:44:57 +0000 (16:44 -0800)]
format code

3 years agoadd case-based expected results in addme alu_cases
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

3 years agoinvert speedup (commenting-out) of tests
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 10:37:40 +0000 (10:37 +0000)]
invert speedup (commenting-out) of tests

3 years agosort out numbering on CRs in SimState
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 10:30:11 +0000 (10:30 +0000)]
sort out numbering on CRs in SimState