Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 12:28:24 +0000 (13:28 +0100)]
convert shift_rot tests to use common get_cu_inputs function
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 12:10:51 +0000 (13:10 +0100)]
reorganise ALU tests, move get_cu_inputs function to common location
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 11:52:25 +0000 (12:52 +0100)]
worked out how to dynamically enable carry-in to ALU: test input_carry against CryIn.CA.value
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 11:43:25 +0000 (12:43 +0100)]
correct overflow-enable flags for rdmask specs in ALU
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 11:41:44 +0000 (12:41 +0100)]
attempt to make carry-in and overflow-enable optional on ALU
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 11:31:16 +0000 (12:31 +0100)]
remove rdflags in pipe_data.py (redundant)
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 11:29:02 +0000 (12:29 +0100)]
move over to using power_regspec_map.py from PowerDecode2 rather than distributed maps in pipe_data.py
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 11:10:20 +0000 (12:10 +0100)]
move obtaining simulator data into common function for logical pipe tests
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 11:01:37 +0000 (12:01 +0100)]
mention TODO on SPR regfile
Cesar Strauss [Wed, 3 Jun 2020 09:30:04 +0000 (06:30 -0300)]
Check completion of the sub-processes
This detects the case where busy_o goes low before the rel / go
cycle finishes.
colepoirier [Wed, 3 Jun 2020 02:27:54 +0000 (19:27 -0700)]
Fixed missing nia.ok.eq(1) in OP_RFID
colepoirier [Wed, 3 Jun 2020 02:24:24 +0000 (19:24 -0700)]
Fixed merge conflict by using remote changes
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 02:01:50 +0000 (03:01 +0100)]
tidyup branch. comments
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 01:55:01 +0000 (02:55 +0100)]
convenience variables
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 01:47:12 +0000 (02:47 +0100)]
FormX not FormXL
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 01:46:58 +0000 (02:46 +0100)]
add bit more TODO
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 01:39:29 +0000 (02:39 +0100)]
update submodule for ISA tables
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 01:37:22 +0000 (02:37 +0100)]
convenience rename for spr pipe_data.py, consistent naming for PowerDecode2
Cesar Strauss [Wed, 3 Jun 2020 01:28:56 +0000 (22:28 -0300)]
Simplify immediate check
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 01:26:58 +0000 (02:26 +0100)]
add more TODOs
Cesar Strauss [Wed, 3 Jun 2020 01:16:07 +0000 (22:16 -0300)]
Preliminary check of the alu protocol
Still need to check that the operand to the alu is held stable.
For now, it's more like a placeholder of what will become the full check.
Cesar Strauss [Wed, 3 Jun 2020 01:07:33 +0000 (22:07 -0300)]
Pass along the operand, in the cycle in which go is active
colepoirier [Wed, 3 Jun 2020 01:11:02 +0000 (18:11 -0700)]
Fixed OP_RFID and OP_SC in fu/trap/main_stage
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 00:58:36 +0000 (01:58 +0100)]
add some more constants and ref to POWER9 pdf
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 00:45:33 +0000 (01:45 +0100)]
add an if for OP_MTMSR and some comments
colepoirier [Wed, 3 Jun 2020 00:07:39 +0000 (17:07 -0700)]
Attempted to fix OP_RFID in TRAP pipeline
colepoirier [Tue, 2 Jun 2020 23:41:37 +0000 (16:41 -0700)]
Implement TRAP instructions OP_RFID and OP_SC
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 22:39:43 +0000 (23:39 +0100)]
argh - bad hack, detecting when there are no registers to write, in MultiCompUnit
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 21:59:34 +0000 (22:59 +0100)]
take out unneeded code, add Settle() to see if it helps with bug
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 21:52:14 +0000 (22:52 +0100)]
add lk field to DecodeOut2
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 21:07:46 +0000 (22:07 +0100)]
move setting cia input to branch from get_cu_inputs function
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 21:07:25 +0000 (22:07 +0100)]
hooray, get_cu_inputs now common to both types of tests
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 20:57:28 +0000 (21:57 +0100)]
oooo very annoying. there does not appear to be any difference between two set_inputs functions
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 20:36:11 +0000 (21:36 +0100)]
add get_inputs function to branch test_pipe_caller
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 20:35:54 +0000 (21:35 +0100)]
remove unneeded variable
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 20:28:01 +0000 (21:28 +0100)]
Revert "ok ok - for OP_BCREG put CTR in spr2 as well"
This reverts commit
87810631b7ecbd34ad89b2853bbdb763fe003633.
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 20:25:50 +0000 (21:25 +0100)]
ok ok - for OP_BCREG put CTR in spr2 as well
Michael Nolan [Tue, 2 Jun 2020 20:23:28 +0000 (16:23 -0400)]
Select spr1 for bcctr - use fast_spr decoding from decoder
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 20:18:53 +0000 (21:18 +0100)]
set up CTR and LR only on BCREG when needed
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 20:15:35 +0000 (21:15 +0100)]
decode fast spr for OP_BCREG CTR, TAR and LR
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 19:15:50 +0000 (20:15 +0100)]
add TODO comments for read_fast1/2
Tobias Platen [Tue, 2 Jun 2020 19:13:35 +0000 (21:13 +0200)]
proof_datamerger: proof that output is zero when idle
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 19:01:38 +0000 (20:01 +0100)]
argh overlapping commits on submodule (rebase did not work properly)
extra commit just to make sure it updates properly
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 18:59:34 +0000 (19:59 +0100)]
debugging branch fast registers
Michael Nolan [Tue, 2 Jun 2020 18:42:29 +0000 (14:42 -0400)]
Fix broken wiki version
Michael Nolan [Tue, 2 Jun 2020 18:27:40 +0000 (14:27 -0400)]
Handle removal of spr2 field from decoder
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 18:26:11 +0000 (19:26 +0100)]
add comment about fast1 and fast2 in branch test_pipe_caller
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 18:20:52 +0000 (19:20 +0100)]
add regspecmap function to PowerDecode2
Michael Nolan [Tue, 2 Jun 2020 18:10:45 +0000 (14:10 -0400)]
Fix test_bc_reg
Michael Nolan [Tue, 2 Jun 2020 17:20:23 +0000 (13:20 -0400)]
Fix issues with test_bc_reg, wrong instruction field for CR selector
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 17:39:35 +0000 (18:39 +0100)]
move regspec function to separate module
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 17:34:29 +0000 (18:34 +0100)]
add in fast regs support in decoder and into regspec_decode
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 17:02:11 +0000 (18:02 +0100)]
add 2nd write-reg for LD/ST Update mode
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 16:52:42 +0000 (17:52 +0100)]
add write-regs encoding to regspec decoder
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 16:32:12 +0000 (17:32 +0100)]
add read-write register numbering detection
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 16:15:16 +0000 (17:15 +0100)]
whoops cut/paste error, creating write_ports not read_ports
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 15:36:58 +0000 (16:36 +0100)]
whoops syntax error
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 14:16:24 +0000 (15:16 +0100)]
add function expressing the relationship between regspecs and Decode2Execute1Type
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 13:55:12 +0000 (14:55 +0100)]
whitespace
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 13:54:51 +0000 (14:54 +0100)]
rename regspecs to give a consistent naming scheme
the Decode phase needs to be able to associate regspec information with
actual signals, back in Decode2Execute1Type. the simplest way to do this
is to make the regspec register names consistent and actually refer
*to* Decode2Execute1Type signals
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 11:19:32 +0000 (12:19 +0100)]
add MSR constants, TODO translated
Luke Kenneth Casson Leighton [Tue, 2 Jun 2020 11:06:42 +0000 (12:06 +0100)]
add TODO comments from microwatt source code
Cesar Strauss [Tue, 2 Jun 2020 09:37:57 +0000 (06:37 -0300)]
Allow at least one operand to be fetched
We successfully disabled all rel signals. One was immediate, the other was
masked. Let's enable at least one of them, for now.
When the test code is complete, we will be able to issue several
transactions in sequence, with different combinations. We are not there
yet.
Cesar Strauss [Tue, 2 Jun 2020 09:21:50 +0000 (06:21 -0300)]
Hold rdmaskn active during the busy_o cycle
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 22:06:00 +0000 (23:06 +0100)]
remove reading port 3 for CR pipeline. RS moved to port 1
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 21:39:06 +0000 (22:39 +0100)]
okaaay add a "rdflags" function which obtains the yes/no flags for each register to the CompUnit
this to be used by the Decode phase
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 20:38:43 +0000 (21:38 +0100)]
add test_bc_reg (fails)
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 20:25:12 +0000 (21:25 +0100)]
remove unneeded fields from Decode2Execute1Type
Michael Nolan [Mon, 1 Jun 2020 19:51:43 +0000 (15:51 -0400)]
Add proof for RegFile
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 19:16:25 +0000 (20:16 +0100)]
more unneeded fields from SR InputRecord
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 19:15:06 +0000 (20:15 +0100)]
remove data_len from SR input record
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 19:14:06 +0000 (20:14 +0100)]
remove zero/invert from ShiftRot Input Record
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 19:08:21 +0000 (20:08 +0100)]
add shift-rot input record and use it
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 19:03:03 +0000 (20:03 +0100)]
CompBROpSubset exists
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 18:51:54 +0000 (19:51 +0100)]
RS moved to port 1 (from port 3), remove need in ALU to read/mux into A operand
Michael Nolan [Mon, 1 Jun 2020 18:50:52 +0000 (14:50 -0400)]
Add proof for RegFileArray
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 18:45:01 +0000 (19:45 +0100)]
remove use of reg3 in logical pipeline: CSV files moved RS to position 1
Michael Nolan [Mon, 1 Jun 2020 18:40:41 +0000 (14:40 -0400)]
Have regfile use AnySeq instead of AnyConst
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 18:13:08 +0000 (19:13 +0100)]
rotator carry is set into both XER CA and CA32 fields
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 18:05:38 +0000 (19:05 +0100)]
comment out rlwinm. for now
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 17:57:35 +0000 (18:57 +0100)]
argh - need to zero the src_i input after "Read" is actioned
Michael Nolan [Mon, 1 Jun 2020 17:48:13 +0000 (13:48 -0400)]
Enable k-induction for register file proof
Michael Nolan [Mon, 1 Jun 2020 17:46:17 +0000 (13:46 -0400)]
That was weird. For some reason it wasn't generating any ports
Michael Nolan [Mon, 1 Jun 2020 17:34:44 +0000 (13:34 -0400)]
Full BMC proof of Register
Michael Nolan [Mon, 1 Jun 2020 17:18:14 +0000 (13:18 -0400)]
Begin rewrite of proof_regfile.py
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 17:39:50 +0000 (18:39 +0100)]
put RB in 2nd position (matching immediate) in ShiftRot Input Data
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 16:53:31 +0000 (17:53 +0100)]
sigh - another instance where write-mask needed to mask out wr.rel
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 16:01:05 +0000 (17:01 +0100)]
remove xer so/ov, swap rs/rb to correct(?) order in shiftrot test
Tobias Platen [Mon, 1 Jun 2020 15:56:21 +0000 (17:56 +0200)]
proof_datamerger wip
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 15:38:10 +0000 (16:38 +0100)]
add rlwinm. test instruction (sets CR0)
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 15:17:48 +0000 (16:17 +0100)]
remove duplicate signal
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 12:36:14 +0000 (13:36 +0100)]
allow ALU / Logical ops to select RS as 1st operand
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 12:27:00 +0000 (13:27 +0100)]
allow M*-Form shiftrot to swap RS/RB back to consistent positions
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 11:38:45 +0000 (12:38 +0100)]
add first version of ShiftRot CompUnit test
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 11:38:25 +0000 (12:38 +0100)]
shiftrot uses LogicalOutputData not ALUOutputData
Cesar Strauss [Mon, 1 Jun 2020 10:56:12 +0000 (07:56 -0300)]
Add rdmaskn parameter and assert it along issue_i
Like zero_a and imm_ok, rdmaskn disallows the activation of go.
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 10:31:45 +0000 (11:31 +0100)]
add assertions for branch compunit output
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 10:29:00 +0000 (11:29 +0100)]
invert SPR1/2 in branch output data
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 04:50:28 +0000 (05:50 +0100)]
decode SPRs for branch
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 04:39:25 +0000 (05:39 +0100)]
swap over SPR1/2 to fit with microwatt SPR conventions