Luke Kenneth Casson Leighton [Thu, 4 Jun 2020 00:24:20 +0000 (01:24 +0100)]
collate fu-enable signals
Luke Kenneth Casson Leighton [Thu, 4 Jun 2020 00:18:34 +0000 (01:18 +0100)]
connect up Function Unit operand subsets
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 23:55:02 +0000 (00:55 +0100)]
forgot to add in rdflag enable
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 23:52:04 +0000 (00:52 +0100)]
whoops, regfiles are uppercase
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 23:42:44 +0000 (00:42 +0100)]
whoops needed a bit of a reorg of the data structure for regfile connections
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 23:02:35 +0000 (00:02 +0100)]
hmmm got naming wrong in regfile-fu connectivity
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 22:46:17 +0000 (23:46 +0100)]
whoops names of regfiles are lower-case
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 22:28:56 +0000 (23:28 +0100)]
munge/redirect the regfile port based on the naming
"full" ports are the first indexed.
also only enable the read-port enable if the picker is enabled
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 22:00:05 +0000 (23:00 +0100)]
connect read-enable and src_i to regfile ports
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 21:45:12 +0000 (22:45 +0100)]
link up PriorityPickers on read channels
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 19:22:36 +0000 (20:22 +0100)]
put rdspecs into a different dictionary
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 19:00:07 +0000 (20:00 +0100)]
start putting a non-production core together,
sorting the read ports first, to get a look at them
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 17:29:34 +0000 (18:29 +0100)]
add a simple core, not intended for production use
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 14:22:14 +0000 (15:22 +0100)]
correct comments on regspec decode map
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 13:57:48 +0000 (14:57 +0100)]
only select xer_xo if OE enabled
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 13:32:01 +0000 (14:32 +0100)]
decide to elaborate Refiles *into* another class, rather than make them their
own module. this will reduce a level of hierarchy and make access easier
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 13:30:00 +0000 (14:30 +0100)]
turn RegFiles into module, add all regfiles to it
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 13:18:02 +0000 (14:18 +0100)]
add a simple class containing all FunctionUnits
Tobias Platen [Wed, 3 Jun 2020 13:15:02 +0000 (15:15 +0200)]
more work on proof_datamerger.py
Tobias Platen [Wed, 3 Jun 2020 13:12:01 +0000 (15:12 +0200)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 13:07:21 +0000 (14:07 +0100)]
add class containing all regfiles
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 12:40:07 +0000 (13:40 +0100)]
whitespace
Luke Kenneth Casson Leighton [Wed, 3 Jun 2020 12:35:08 +0000 (13:35 +0100)]
use common get_cu_inputs for CR unit tests
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
Tobias Platen [Wed, 3 Jun 2020 12:19:48 +0000 (14:19 +0200)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Wed, 3 Jun 2020 12:19:40 +0000 (14:19 +0200)]
whitespace fix for proof_datamerger.py
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