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
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 04:38:44 +0000 (05:38 +0100)]
add first version compunit branch test
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 04:20:08 +0000 (05:20 +0100)]
whoops need to read RS in CR inputs test
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 03:46:26 +0000 (04:46 +0100)]
add first version of CR CompUnit test
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 02:25:39 +0000 (03:25 +0100)]
minor adjustment, zero test in ALU output stage
Luke Kenneth Casson Leighton [Mon, 1 Jun 2020 00:52:50 +0000 (01:52 +0100)]
remove unneeded code
Luke Kenneth Casson Leighton [Sun, 31 May 2020 23:20:20 +0000 (00:20 +0100)]
bit-test on the function-unit value being tested
this because Function Unit is a bitfield
Luke Kenneth Casson Leighton [Sun, 31 May 2020 23:14:11 +0000 (00:14 +0100)]
update isatables to cmpb not modifying CR0
Luke Kenneth Casson Leighton [Sun, 31 May 2020 23:07:42 +0000 (00:07 +0100)]
add logical compunit test
Luke Kenneth Casson Leighton [Sun, 31 May 2020 18:50:34 +0000 (19:50 +0100)]
comment inputs and outputs from ALU unit test
Luke Kenneth Casson Leighton [Sun, 31 May 2020 18:46:44 +0000 (19:46 +0100)]
imports - use of globals. baaaad
Luke Kenneth Casson Leighton [Sun, 31 May 2020 18:45:12 +0000 (19:45 +0100)]
remove unneeded code and inputs. convert to "naming" in CompUnit inputs
Luke Kenneth Casson Leighton [Sun, 31 May 2020 18:27:56 +0000 (19:27 +0100)]
split out common code from test_alu_compunit.py
Luke Kenneth Casson Leighton [Sun, 31 May 2020 17:03:31 +0000 (18:03 +0100)]
add comments for MultiCompUnit parallel test
Luke Kenneth Casson Leighton [Sun, 31 May 2020 16:57:46 +0000 (17:57 +0100)]
de-hard-code-ify getting results from MultiCompUnit
Luke Kenneth Casson Leighton [Sun, 31 May 2020 16:44:03 +0000 (17:44 +0100)]
remove unneeded imports
Luke Kenneth Casson Leighton [Sun, 31 May 2020 16:41:28 +0000 (17:41 +0100)]
split out compalu unit tests to separate module (getting quite big)
Luke Kenneth Casson Leighton [Sun, 31 May 2020 14:58:04 +0000 (15:58 +0100)]
HA! found a bug in MultiCompUnit handling of write-masks
Luke Kenneth Casson Leighton [Sun, 31 May 2020 13:35:17 +0000 (14:35 +0100)]
clarify
Luke Kenneth Casson Leighton [Sun, 31 May 2020 13:34:09 +0000 (14:34 +0100)]
OP_CMPEQB also requesting change of output reg (stop that)
Luke Kenneth Casson Leighton [Sun, 31 May 2020 13:26:21 +0000 (14:26 +0100)]
OP_CMP is requesting a change of the output register (should not do that)
Luke Kenneth Casson Leighton [Sun, 31 May 2020 12:19:35 +0000 (13:19 +0100)]
still investigating
Luke Kenneth Casson Leighton [Sun, 31 May 2020 12:08:22 +0000 (13:08 +0100)]
start with zero, try not to compare against 9 bytes in a 64-bit value: cmpeqb test
Luke Kenneth Casson Leighton [Sun, 31 May 2020 12:04:13 +0000 (13:04 +0100)]
more debug statements
Luke Kenneth Casson Leighton [Sun, 31 May 2020 11:54:53 +0000 (12:54 +0100)]
add in more CR debug statements
Luke Kenneth Casson Leighton [Sun, 31 May 2020 11:54:29 +0000 (12:54 +0100)]
copy in cr0.data into cr0 temp, not whole of cr0 (including ok flag)
Luke Kenneth Casson Leighton [Sun, 31 May 2020 11:33:30 +0000 (12:33 +0100)]
remove commented-out vars from ALU input record
Luke Kenneth Casson Leighton [Sun, 31 May 2020 11:28:38 +0000 (12:28 +0100)]
write cr0 when op.write_cr.ok is set
Luke Kenneth Casson Leighton [Sun, 31 May 2020 11:27:45 +0000 (12:27 +0100)]
add write_cr to ALU record subset
Luke Kenneth Casson Leighton [Sun, 31 May 2020 10:21:31 +0000 (11:21 +0100)]
comment out xer ov/so for now
Luke Kenneth Casson Leighton [Sat, 30 May 2020 22:33:40 +0000 (23:33 +0100)]
get carry from cr write_cr
Luke Kenneth Casson Leighton [Sat, 30 May 2020 22:31:25 +0000 (23:31 +0100)]
select CR0 write out only when RC=1
Luke Kenneth Casson Leighton [Sat, 30 May 2020 20:28:13 +0000 (21:28 +0100)]
set CR0 output when OP_CMP or OP_CMPEQB need it
Luke Kenneth Casson Leighton [Sat, 30 May 2020 19:39:08 +0000 (20:39 +0100)]
add in use of "Settle"
Luke Kenneth Casson Leighton [Sat, 30 May 2020 19:37:10 +0000 (20:37 +0100)]
add in write-mask into MultiCompUnit and MCU-ALU unit test: bug detected in
RC handling
Tobias Platen [Sat, 30 May 2020 19:12:07 +0000 (21:12 +0200)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Sat, 30 May 2020 19:11:02 +0000 (21:11 +0200)]
unit test for DataMerger
Luke Kenneth Casson Leighton [Sat, 30 May 2020 19:00:33 +0000 (20:00 +0100)]
create read-mask for ALU CompUnit: switches off optional operands
Luke Kenneth Casson Leighton [Sat, 30 May 2020 18:46:30 +0000 (19:46 +0100)]
create a write-mask, anything with an "ok" in the Record fields
Luke Kenneth Casson Leighton [Sat, 30 May 2020 18:39:11 +0000 (19:39 +0100)]
allow MultiCompUnit outputs to be Records, to capture Data.ok
Luke Kenneth Casson Leighton [Sat, 30 May 2020 18:34:08 +0000 (19:34 +0100)]
add read-mask to MultiCompUnit
Luke Kenneth Casson Leighton [Sat, 30 May 2020 18:29:51 +0000 (19:29 +0100)]
code-shuffle / comments
Luke Kenneth Casson Leighton [Sat, 30 May 2020 15:23:46 +0000 (16:23 +0100)]
mess - but a functional mess. ALU-MultiCompUnit semi-functional using pipeline
Luke Kenneth Casson Leighton [Sat, 30 May 2020 13:45:55 +0000 (14:45 +0100)]
grab other results from ALU pipeline in compunit test
Luke Kenneth Casson Leighton [Sat, 30 May 2020 13:27:06 +0000 (14:27 +0100)]
order of XER so/ca wrong way round from regspec
Luke Kenneth Casson Leighton [Sat, 30 May 2020 10:58:30 +0000 (11:58 +0100)]
still experimenting with ALU-CompUnit interaction
Luke Kenneth Casson Leighton [Fri, 29 May 2020 23:51:25 +0000 (00:51 +0100)]
interesting. use of Settle() works, showing that Regfile is combinatorial on read
Luke Kenneth Casson Leighton [Fri, 29 May 2020 21:38:28 +0000 (22:38 +0100)]
module comments for popcount
Luke Kenneth Casson Leighton [Fri, 29 May 2020 21:33:46 +0000 (22:33 +0100)]
comments on popcount
Luke Kenneth Casson Leighton [Fri, 29 May 2020 16:11:00 +0000 (17:11 +0100)]
trigger ALU ready when operands ready
Tobias Platen [Fri, 29 May 2020 16:06:35 +0000 (18:06 +0200)]
fixes for DataMerger
Luke Kenneth Casson Leighton [Fri, 29 May 2020 15:49:29 +0000 (16:49 +0100)]
trigger read ALU ready/valid from latch as well
Luke Kenneth Casson Leighton [Fri, 29 May 2020 15:30:35 +0000 (16:30 +0100)]
use a latch to communicate read/valid output from ALU
Tobias Platen [Fri, 29 May 2020 15:20:10 +0000 (17:20 +0200)]
DataMerger: rename addr_match_i to addr_array_i
Tobias Platen [Fri, 29 May 2020 14:43:07 +0000 (16:43 +0200)]
fixed 'return m is missing'
Tobias Platen [Fri, 29 May 2020 14:40:32 +0000 (16:40 +0200)]
whitespace fixes
Luke Kenneth Casson Leighton [Fri, 29 May 2020 13:13:07 +0000 (14:13 +0100)]
latch all output on ALU output valid
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:50:56 +0000 (13:50 +0100)]
create read-done pulse
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:35:40 +0000 (13:35 +0100)]
write-release moves out of "ALU valid" due to using alu_pulse
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:33:45 +0000 (13:33 +0100)]
signal start of request from when ALU triggers result ready
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:31:29 +0000 (13:31 +0100)]
create rising pulse from ALU valid
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:30:06 +0000 (13:30 +0100)]
names of attributes needs to be dest_o not dest_i
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:12:06 +0000 (13:12 +0100)]
rename output signals in Test ALU
Cesar Strauss [Fri, 29 May 2020 11:09:14 +0000 (08:09 -0300)]
Allow immediate assertion of go in the same cycle as rel
Cesar Strauss [Fri, 29 May 2020 09:30:14 +0000 (06:30 -0300)]
Correct typo
There is no "rd" signal. It's "rel".
Cesar Strauss [Thu, 28 May 2020 22:49:04 +0000 (19:49 -0300)]
Send a one-clock "go" pulse after a configurable number of cycles
Luke Kenneth Casson Leighton [Thu, 28 May 2020 23:39:27 +0000 (00:39 +0100)]
messing about with proof_regfile.py
Luke Kenneth Casson Leighton [Thu, 28 May 2020 23:23:05 +0000 (00:23 +0100)]
move simple_popcount out of class (does not use any class state)
colepoirier [Thu, 28 May 2020 21:58:03 +0000 (14:58 -0700)]
Added Initial() synchronous check with draft truth
table for rp.ren and wp.wen of Register() in proof_regfile
Luke Kenneth Casson Leighton [Thu, 28 May 2020 12:26:21 +0000 (13:26 +0100)]
extra check on rd.req in test_alu_compunit
Tobias Platen [Thu, 28 May 2020 18:58:39 +0000 (20:58 +0200)]
indention
Michael Nolan [Thu, 28 May 2020 15:36:41 +0000 (11:36 -0400)]
Add proof for OP_SETB
Michael Nolan [Thu, 28 May 2020 15:04:28 +0000 (11:04 -0400)]
Update to latest wiki version
Michael Nolan [Thu, 28 May 2020 15:03:21 +0000 (11:03 -0400)]
Add OP_SETB
Michael Nolan [Thu, 28 May 2020 14:51:31 +0000 (10:51 -0400)]
Fix test_isel to properly examine registers
Tobias Platen [Thu, 28 May 2020 13:05:38 +0000 (15:05 +0200)]
unittest for DataMerger