soc.git
4 years agoFix bug in rotator preventing use of 64 bit rlcl/r
Michael Nolan [Wed, 13 May 2020 22:44:49 +0000 (18:44 -0400)]
Fix bug in rotator preventing use of 64 bit rlcl/r

4 years agoUpdate to latest wiki version
Michael Nolan [Wed, 13 May 2020 22:00:23 +0000 (18:00 -0400)]
Update to latest wiki version

4 years agoadd TODO placeholders for popcount and parity
Luke Kenneth Casson Leighton [Wed, 13 May 2020 21:54:51 +0000 (22:54 +0100)]
add TODO placeholders for popcount and parity

4 years agominor tidyup
Luke Kenneth Casson Leighton [Wed, 13 May 2020 21:45:05 +0000 (22:45 +0100)]
minor tidyup

4 years agocomments on ALU pipeline
Luke Kenneth Casson Leighton [Wed, 13 May 2020 21:42:51 +0000 (22:42 +0100)]
comments on ALU pipeline

4 years agoupdate comment on Logical pipeline
Luke Kenneth Casson Leighton [Wed, 13 May 2020 21:40:12 +0000 (22:40 +0100)]
update comment on Logical pipeline

4 years agoremove Logical operations from ALU pipeline
Luke Kenneth Casson Leighton [Wed, 13 May 2020 21:37:21 +0000 (22:37 +0100)]
remove Logical operations from ALU pipeline

4 years agosplit out Logical operations into separate pipeline
Luke Kenneth Casson Leighton [Wed, 13 May 2020 21:35:16 +0000 (22:35 +0100)]
split out Logical operations into separate pipeline

4 years agocomments (and whitespace
Luke Kenneth Casson Leighton [Wed, 13 May 2020 21:19:54 +0000 (22:19 +0100)]
comments (and whitespace

4 years agoFix too wide bitfield being selected for opcode 30
Michael Nolan [Wed, 13 May 2020 20:41:37 +0000 (16:41 -0400)]
Fix too wide bitfield being selected for opcode 30

4 years agoFix weirdness with rldicl and friends in test_caller.py
Michael Nolan [Wed, 13 May 2020 20:22:44 +0000 (16:22 -0400)]
Fix weirdness with rldicl and friends in test_caller.py

4 years agoAdd support for OP_EXTS
Michael Nolan [Wed, 13 May 2020 19:54:55 +0000 (15:54 -0400)]
Add support for OP_EXTS

4 years agorestore field decoders (works with BE/LE) in rotator
Luke Kenneth Casson Leighton [Wed, 13 May 2020 19:23:11 +0000 (20:23 +0100)]
restore field decoders (works with BE/LE) in rotator

4 years agominor cleanup of shift_rot main_stage
Luke Kenneth Casson Leighton [Wed, 13 May 2020 18:55:41 +0000 (19:55 +0100)]
minor cleanup of shift_rot main_stage

4 years agoAdd missing input stage and pipe_data
Michael Nolan [Wed, 13 May 2020 18:52:26 +0000 (14:52 -0400)]
Add missing input stage and pipe_data

4 years agosimplift right_mask and left_mask rotator sub-functions, remove TODO comments
Luke Kenneth Casson Leighton [Wed, 13 May 2020 18:51:12 +0000 (19:51 +0100)]
simplift right_mask and left_mask rotator sub-functions, remove TODO comments

4 years agoFix bug with ROTL32 helper
Michael Nolan [Wed, 13 May 2020 18:02:13 +0000 (14:02 -0400)]
Fix bug with ROTL32 helper

Turns out it's supposed to duplicate the lower 32 bits to the high 32
bits, and do a 64 bit rotate

4 years agoSomewhat working now?
Michael Nolan [Wed, 13 May 2020 17:51:13 +0000 (13:51 -0400)]
Somewhat working now?

4 years agoIntegrate rotator.py into shift_rot unit
Michael Nolan [Wed, 13 May 2020 17:45:06 +0000 (13:45 -0400)]
Integrate rotator.py into shift_rot unit

4 years agoUpdate cmp test in test_caller.py
Michael Nolan [Wed, 13 May 2020 15:35:41 +0000 (11:35 -0400)]
Update cmp test in test_caller.py

4 years agoAdd assertions to ALU and shift_rot test that the instruction FU is right
Michael Nolan [Wed, 13 May 2020 14:26:38 +0000 (10:26 -0400)]
Add assertions to ALU and shift_rot test that the instruction FU is right

4 years agoAdd SHIFT_ROT FU
Michael Nolan [Wed, 13 May 2020 14:23:21 +0000 (10:23 -0400)]
Add SHIFT_ROT FU

4 years agoModify alu test to put reg1 *OR* reg3 into alu input A
Michael Nolan [Wed, 13 May 2020 14:12:36 +0000 (10:12 -0400)]
Modify alu test to put reg1 *OR* reg3 into alu input A

4 years agoUpdate TODO
Michael Nolan [Wed, 13 May 2020 14:07:56 +0000 (10:07 -0400)]
Update TODO

4 years agoremove operand c from ALU in/out
Luke Kenneth Casson Leighton [Wed, 13 May 2020 00:02:21 +0000 (01:02 +0100)]
remove operand c from ALU in/out

4 years agotemporary reorg of reg/immediate reading
Luke Kenneth Casson Leighton [Tue, 12 May 2020 20:57:18 +0000 (21:57 +0100)]
temporary reorg of reg/immediate reading

4 years agoadd 3rd register input to ALUInputData
Luke Kenneth Casson Leighton [Tue, 12 May 2020 20:21:49 +0000 (21:21 +0100)]
add 3rd register input to ALUInputData

4 years agoconnect LDSTMulti to 6600 Scoreboard
Luke Kenneth Casson Leighton [Tue, 12 May 2020 18:10:41 +0000 (19:10 +0100)]
connect LDSTMulti to 6600 Scoreboard

4 years agowhen doing LD-immediate only acknowledge register 1 rd-req
Luke Kenneth Casson Leighton [Tue, 12 May 2020 12:34:30 +0000 (13:34 +0100)]
when doing LD-immediate only acknowledge register 1 rd-req

4 years agoAdd new shift_rot FU for shifts and rotates
Michael Nolan [Tue, 12 May 2020 17:37:42 +0000 (13:37 -0400)]
Add new shift_rot FU for shifts and rotates

4 years agoRemove rotates and shifts from alu
Michael Nolan [Tue, 12 May 2020 17:29:02 +0000 (13:29 -0400)]
Remove rotates and shifts from alu

4 years agoMassively spead up test_pipe_caller.py
Michael Nolan [Mon, 11 May 2020 22:45:22 +0000 (18:45 -0400)]
Massively spead up test_pipe_caller.py

4 years agoRevert "Greatly speed up test_pipe_caller.py"
Michael Nolan [Mon, 11 May 2020 22:20:54 +0000 (18:20 -0400)]
Revert "Greatly speed up test_pipe_caller.py"

This reverts commit 54025cace312817b0f9d831865441a0e52db573a.

4 years agoGreatly speed up test_pipe_caller.py
Michael Nolan [Mon, 11 May 2020 21:46:01 +0000 (17:46 -0400)]
Greatly speed up test_pipe_caller.py

4 years agocomments from discussion
Luke Kenneth Casson Leighton [Mon, 11 May 2020 18:18:29 +0000 (19:18 +0100)]
comments from discussion
https://bugs.libre-soc.org/show_bug.cgi?id=305#c43

4 years agoReverse bit order for cr0 in proof
Michael Nolan [Mon, 11 May 2020 15:32:20 +0000 (11:32 -0400)]
Reverse bit order for cr0 in proof

4 years agoCheck output of cr0 from alu
Michael Nolan [Mon, 11 May 2020 15:30:34 +0000 (11:30 -0400)]
Check output of cr0 from alu

4 years agoAdd carry in input to alu testbench
Michael Nolan [Mon, 11 May 2020 15:19:13 +0000 (11:19 -0400)]
Add carry in input to alu testbench

4 years agoAdd ability to specify initial state for SPRs
Michael Nolan [Mon, 11 May 2020 15:15:37 +0000 (11:15 -0400)]
Add ability to specify initial state for SPRs

4 years agoFix proof_input_stage.py
Michael Nolan [Mon, 11 May 2020 14:33:08 +0000 (10:33 -0400)]
Fix proof_input_stage.py

4 years agoFix rlwimi by reordering the inputs *again*
Michael Nolan [Mon, 11 May 2020 14:28:28 +0000 (10:28 -0400)]
Fix rlwimi by reordering the inputs *again*

4 years agoRe-enable rlwinm test
Michael Nolan [Mon, 11 May 2020 14:23:00 +0000 (10:23 -0400)]
Re-enable rlwinm test

4 years agoCheck write register number too
Michael Nolan [Mon, 11 May 2020 14:10:25 +0000 (10:10 -0400)]
Check write register number too

4 years agoReorder the register reads so the field in read_reg2 is last
Michael Nolan [Mon, 11 May 2020 14:04:07 +0000 (10:04 -0400)]
Reorder the register reads so the field in read_reg2 is last

4 years agoHave test_pipe_caller actually read from the registers specified in instruction
Michael Nolan [Mon, 11 May 2020 13:55:52 +0000 (09:55 -0400)]
Have test_pipe_caller actually read from the registers specified in instruction

4 years agoActually implement rlwimi
Michael Nolan [Sun, 10 May 2020 23:16:17 +0000 (19:16 -0400)]
Actually implement rlwimi

4 years agocomment input signals
Luke Kenneth Casson Leighton [Mon, 11 May 2020 12:55:40 +0000 (13:55 +0100)]
comment input signals

4 years agocleanup rotator.py
Luke Kenneth Casson Leighton [Mon, 11 May 2020 12:10:26 +0000 (13:10 +0100)]
cleanup rotator.py

4 years agoadd docstring, missing return module
Luke Kenneth Casson Leighton [Mon, 11 May 2020 10:47:26 +0000 (11:47 +0100)]
add docstring, missing return module

4 years agostart cleanup of rotator.py, Cat order is inverted
Luke Kenneth Casson Leighton [Mon, 11 May 2020 10:44:00 +0000 (11:44 +0100)]
start cleanup of rotator.py, Cat order is inverted

4 years agoconvert microwatt rotator to nmigen (first draft)
Luke Kenneth Casson Leighton [Mon, 11 May 2020 10:29:49 +0000 (11:29 +0100)]
convert microwatt rotator to nmigen (first draft)

4 years agoAdd test for rlwnm
Michael Nolan [Sun, 10 May 2020 22:55:16 +0000 (18:55 -0400)]
Add test for rlwnm

4 years agoImplement rlwimi as well
Michael Nolan [Sun, 10 May 2020 22:52:45 +0000 (18:52 -0400)]
Implement rlwimi as well

4 years agoImplement rlwinm in alu
Michael Nolan [Sun, 10 May 2020 20:05:23 +0000 (16:05 -0400)]
Implement rlwinm in alu

4 years agoAdd test for rlwinm
Michael Nolan [Sun, 10 May 2020 20:03:35 +0000 (16:03 -0400)]
Add test for rlwinm

4 years agoReduce BMC depth on proof_main_stage.py
Michael Nolan [Sun, 10 May 2020 16:26:27 +0000 (12:26 -0400)]
Reduce BMC depth on proof_main_stage.py

4 years agouse temporary python vars rather than copy signals (shorter code)
Luke Kenneth Casson Leighton [Sun, 10 May 2020 05:42:43 +0000 (06:42 +0100)]
use temporary python vars rather than copy signals (shorter code)

4 years agoAdd shift left and shift right to main stage proof
Michael Nolan [Sat, 9 May 2020 23:22:28 +0000 (19:22 -0400)]
Add shift left and shift right to main stage proof

4 years agosigh ton of syntax errors
Luke Kenneth Casson Leighton [Sat, 9 May 2020 18:25:55 +0000 (19:25 +0100)]
sigh ton of syntax errors

4 years agobit of reorg, trick on add - put carry in into the LSB
Luke Kenneth Casson Leighton [Sat, 9 May 2020 18:19:20 +0000 (19:19 +0100)]
bit of reorg, trick on add - put carry in into the LSB

4 years agocomment output stage
Luke Kenneth Casson Leighton [Sat, 9 May 2020 17:48:27 +0000 (18:48 +0100)]
comment output stage

4 years agocomment maskgen
Luke Kenneth Casson Leighton [Sat, 9 May 2020 17:33:20 +0000 (18:33 +0100)]
comment maskgen

4 years agoHandle algebraic shifts too
Michael Nolan [Sat, 9 May 2020 17:21:07 +0000 (13:21 -0400)]
Handle algebraic shifts too

4 years agoImplement logical shift right
Michael Nolan [Sat, 9 May 2020 17:06:48 +0000 (13:06 -0400)]
Implement logical shift right

4 years agoAdd support for sld
Michael Nolan [Sat, 9 May 2020 17:03:52 +0000 (13:03 -0400)]
Add support for sld

4 years agoChange shift left to be implemented with rotate and mask
Michael Nolan [Sat, 9 May 2020 17:00:14 +0000 (13:00 -0400)]
Change shift left to be implemented with rotate and mask

4 years agoAdd mask generator for shift class instructions
Michael Nolan [Sat, 9 May 2020 15:58:19 +0000 (11:58 -0400)]
Add mask generator for shift class instructions

4 years agoAdd shift left opcode to main_stage
Michael Nolan [Sat, 9 May 2020 15:18:53 +0000 (11:18 -0400)]
Add shift left opcode to main_stage

4 years agoFix broken mask when x == y
Michael Nolan [Sat, 9 May 2020 15:15:34 +0000 (11:15 -0400)]
Fix broken mask when x == y

4 years agoAdd right shift test to test_caller.py
Michael Nolan [Sat, 9 May 2020 14:57:31 +0000 (10:57 -0400)]
Add right shift test to test_caller.py

4 years agoAdd shift test to test_caller, fix fixedshift being weird on 32 bit shifts
Michael Nolan [Sat, 9 May 2020 14:51:44 +0000 (10:51 -0400)]
Add shift test to test_caller, fix fixedshift being weird on 32 bit shifts

4 years agoFix helpers.py not playing nicely with selectableInts
Michael Nolan [Sat, 9 May 2020 14:47:00 +0000 (10:47 -0400)]
Fix helpers.py not playing nicely with selectableInts

4 years agoAdd reversed add and subtract, as well as lshift and rshift
Michael Nolan [Sat, 9 May 2020 14:41:29 +0000 (10:41 -0400)]
Add reversed add and subtract, as well as lshift and rshift

4 years agocomment where ALUIntermediateData to go
Luke Kenneth Casson Leighton [Sat, 9 May 2020 14:06:02 +0000 (15:06 +0100)]
comment where ALUIntermediateData to go

4 years agoTODO on AluIntermediateData
Luke Kenneth Casson Leighton [Sat, 9 May 2020 14:04:55 +0000 (15:04 +0100)]
TODO on AluIntermediateData

4 years agomissing sticky-overflow pass-through from middle stage
Luke Kenneth Casson Leighton [Sat, 9 May 2020 13:59:30 +0000 (14:59 +0100)]
missing sticky-overflow pass-through from middle stage

4 years agopass through sticky-overflow
Luke Kenneth Casson Leighton [Sat, 9 May 2020 13:56:16 +0000 (14:56 +0100)]
pass through sticky-overflow

4 years agoremove unneeded class
Luke Kenneth Casson Leighton [Sat, 9 May 2020 13:56:02 +0000 (14:56 +0100)]
remove unneeded class

4 years agoclarifying comments
Luke Kenneth Casson Leighton [Sat, 9 May 2020 13:54:34 +0000 (14:54 +0100)]
clarifying comments

4 years agoMinor cleanup
Michael Nolan [Sat, 9 May 2020 13:19:26 +0000 (09:19 -0400)]
Minor cleanup

4 years agopreliminary test for LD/ST "update" mode working
Luke Kenneth Casson Leighton [Sat, 9 May 2020 11:18:11 +0000 (12:18 +0100)]
preliminary test for LD/ST "update" mode working

4 years agodocument PowerOp
Luke Kenneth Casson Leighton [Sat, 9 May 2020 10:58:54 +0000 (11:58 +0100)]
document PowerOp

4 years agoadd comments
Luke Kenneth Casson Leighton [Fri, 8 May 2020 23:01:22 +0000 (00:01 +0100)]
add comments

4 years agoadd ALUFirstInputData
Luke Kenneth Casson Leighton [Fri, 8 May 2020 23:01:12 +0000 (00:01 +0100)]
add  ALUFirstInputData

4 years agosend address to memory only for one cycle and acknowledge LD immediately
Luke Kenneth Casson Leighton [Fri, 8 May 2020 21:29:55 +0000 (22:29 +0100)]
send address to memory only for one cycle and acknowledge LD immediately
in test-L0CacheBuffer

4 years agoexperimenting
Luke Kenneth Casson Leighton [Fri, 8 May 2020 21:13:51 +0000 (22:13 +0100)]
experimenting

4 years agoworking indexed version of LD/ST CompUnit
Luke Kenneth Casson Leighton [Fri, 8 May 2020 20:54:19 +0000 (21:54 +0100)]
working indexed version of LD/ST CompUnit

4 years agohmmm i think LD/ST Comp Unit might actually be working...
Luke Kenneth Casson Leighton [Fri, 8 May 2020 20:45:42 +0000 (21:45 +0100)]
hmmm i think LD/ST Comp Unit might actually be working...

4 years agoOops, forgot pipeline.py
Michael Nolan [Fri, 8 May 2020 20:35:40 +0000 (16:35 -0400)]
Oops, forgot pipeline.py

4 years agoAdd tests for immediates, add subf to tests
Michael Nolan [Fri, 8 May 2020 20:34:57 +0000 (16:34 -0400)]
Add tests for immediates, add subf to tests

4 years agoAdd comments about the purpose of each alu stage
Michael Nolan [Fri, 8 May 2020 20:11:41 +0000 (16:11 -0400)]
Add comments about the purpose of each alu stage

4 years agoAdd test for alu against simulator
Michael Nolan [Fri, 8 May 2020 19:55:26 +0000 (15:55 -0400)]
Add test for alu against simulator

4 years agoAdd assertions for output stage cr0
Michael Nolan [Fri, 8 May 2020 18:59:45 +0000 (14:59 -0400)]
Add assertions for output stage cr0

4 years agoAdd output stage
Michael Nolan [Fri, 8 May 2020 18:51:58 +0000 (14:51 -0400)]
Add output stage

4 years agoAdd and or and xor to main_stage
Michael Nolan [Fri, 8 May 2020 17:56:37 +0000 (13:56 -0400)]
Add and or and xor to main_stage

4 years agoAdd carry in and out
Michael Nolan [Fri, 8 May 2020 17:52:30 +0000 (13:52 -0400)]
Add carry in and out

4 years agoHave input_stage set the b operand to imm_data if it is valid
Michael Nolan [Fri, 8 May 2020 17:49:27 +0000 (13:49 -0400)]
Have input_stage set the b operand to imm_data if it is valid

4 years agoAdd extra bits (carry, overflow, etc) to input and output structs
Michael Nolan [Fri, 8 May 2020 17:32:35 +0000 (13:32 -0400)]
Add extra bits (carry, overflow, etc) to input and output structs

4 years agoBegin adding main ALU stage
Michael Nolan [Fri, 8 May 2020 17:23:09 +0000 (13:23 -0400)]
Begin adding main ALU stage

4 years agoConvert alu to use the op in ctx
Michael Nolan [Fri, 8 May 2020 16:35:51 +0000 (12:35 -0400)]
Convert alu to use the op in ctx