soc.git
3 years agointeresting. use of Settle() works, showing that Regfile is combinatorial on read
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

3 years agomodule comments for popcount
Luke Kenneth Casson Leighton [Fri, 29 May 2020 21:38:28 +0000 (22:38 +0100)]
module comments for popcount

3 years agocomments on popcount
Luke Kenneth Casson Leighton [Fri, 29 May 2020 21:33:46 +0000 (22:33 +0100)]
comments on popcount

3 years agotrigger ALU ready when operands ready
Luke Kenneth Casson Leighton [Fri, 29 May 2020 16:11:00 +0000 (17:11 +0100)]
trigger ALU ready when operands ready

3 years agofixes for DataMerger
Tobias Platen [Fri, 29 May 2020 16:06:35 +0000 (18:06 +0200)]
fixes for DataMerger

3 years agotrigger read ALU ready/valid from latch as well
Luke Kenneth Casson Leighton [Fri, 29 May 2020 15:49:29 +0000 (16:49 +0100)]
trigger read ALU ready/valid from latch as well

3 years agouse a latch to communicate read/valid output from ALU
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

3 years agoDataMerger: rename addr_match_i to addr_array_i
Tobias Platen [Fri, 29 May 2020 15:20:10 +0000 (17:20 +0200)]
DataMerger: rename addr_match_i to addr_array_i

3 years agofixed 'return m is missing'
Tobias Platen [Fri, 29 May 2020 14:43:07 +0000 (16:43 +0200)]
fixed 'return m is missing'

3 years agowhitespace fixes
Tobias Platen [Fri, 29 May 2020 14:40:32 +0000 (16:40 +0200)]
whitespace fixes

3 years agolatch all output on ALU output valid
Luke Kenneth Casson Leighton [Fri, 29 May 2020 13:13:07 +0000 (14:13 +0100)]
latch all output on ALU output valid

3 years agocreate read-done pulse
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:50:56 +0000 (13:50 +0100)]
create read-done pulse

3 years agowrite-release moves out of "ALU valid" due to using alu_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

3 years agosignal start of request from when ALU triggers result ready
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

3 years agocreate rising pulse from ALU valid
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:31:29 +0000 (13:31 +0100)]
create rising pulse from ALU valid

3 years agonames of attributes needs to be dest_o not dest_i
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

3 years agorename output signals in Test ALU
Luke Kenneth Casson Leighton [Fri, 29 May 2020 12:12:06 +0000 (13:12 +0100)]
rename output signals in Test ALU

3 years agoAllow immediate assertion of go in the same cycle as rel
Cesar Strauss [Fri, 29 May 2020 11:09:14 +0000 (08:09 -0300)]
Allow immediate assertion of go in the same cycle as rel

3 years agoCorrect typo
Cesar Strauss [Fri, 29 May 2020 09:30:14 +0000 (06:30 -0300)]
Correct typo

There is no "rd" signal. It's "rel".

3 years agoSend a one-clock "go" pulse after a configurable number of cycles
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

3 years agomessing about with proof_regfile.py
Luke Kenneth Casson Leighton [Thu, 28 May 2020 23:39:27 +0000 (00:39 +0100)]
messing about with proof_regfile.py

3 years agomove simple_popcount out of class (does not use any class state)
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)

3 years agoAdded Initial() synchronous check with draft truth
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

3 years agoextra check on rd.req in test_alu_compunit
Luke Kenneth Casson Leighton [Thu, 28 May 2020 12:26:21 +0000 (13:26 +0100)]
extra check on rd.req in test_alu_compunit

3 years agoindention
Tobias Platen [Thu, 28 May 2020 18:58:39 +0000 (20:58 +0200)]
indention

3 years agoAdd proof for OP_SETB
Michael Nolan [Thu, 28 May 2020 15:36:41 +0000 (11:36 -0400)]
Add proof for OP_SETB

3 years agoUpdate to latest wiki version
Michael Nolan [Thu, 28 May 2020 15:04:28 +0000 (11:04 -0400)]
Update to latest wiki version

3 years agoAdd OP_SETB
Michael Nolan [Thu, 28 May 2020 15:03:21 +0000 (11:03 -0400)]
Add OP_SETB

3 years agoFix test_isel to properly examine registers
Michael Nolan [Thu, 28 May 2020 14:51:31 +0000 (10:51 -0400)]
Fix test_isel to properly examine registers

3 years agounittest for DataMerger
Tobias Platen [Thu, 28 May 2020 13:05:38 +0000 (15:05 +0200)]
unittest for DataMerger

3 years agomore fixes for DataMerger
Tobias Platen [Thu, 28 May 2020 12:52:02 +0000 (14:52 +0200)]
more fixes for DataMerger

3 years agoMerge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Thu, 28 May 2020 12:23:03 +0000 (14:23 +0200)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc

3 years agofixes for l0_cache.py
Tobias Platen [Thu, 28 May 2020 12:22:45 +0000 (14:22 +0200)]
fixes for l0_cache.py

3 years agodebug-print rd/wr rel in test_alu_compunit
Luke Kenneth Casson Leighton [Thu, 28 May 2020 12:21:28 +0000 (13:21 +0100)]
debug-print rd/wr rel in test_alu_compunit

3 years agoadd quick test of 3-operand DummyALU in MultiCompALU
Luke Kenneth Casson Leighton [Thu, 28 May 2020 12:10:56 +0000 (13:10 +0100)]
add quick test of 3-operand DummyALU in MultiCompALU

3 years agoadd 3rd parameter to DummyALU
Luke Kenneth Casson Leighton [Thu, 28 May 2020 12:03:38 +0000 (13:03 +0100)]
add 3rd parameter to DummyALU

3 years agodebugging test_alu_compunit.py
Luke Kenneth Casson Leighton [Thu, 28 May 2020 11:55:58 +0000 (12:55 +0100)]
debugging test_alu_compunit.py

3 years agostart on a compunit ALU test
Luke Kenneth Casson Leighton [Thu, 28 May 2020 10:41:24 +0000 (11:41 +0100)]
start on a compunit ALU test

3 years agoupdate comment
Luke Kenneth Casson Leighton [Thu, 28 May 2020 10:33:20 +0000 (11:33 +0100)]
update comment

3 years agoremove trick of not setting SO
Luke Kenneth Casson Leighton [Thu, 28 May 2020 10:27:20 +0000 (11:27 +0100)]
remove trick of not setting SO

3 years agoCheck that rd rises after issue_i, unless it's immediate
Cesar Strauss [Thu, 28 May 2020 10:17:00 +0000 (07:17 -0300)]
Check that rd rises after issue_i, unless it's immediate

3 years agohmm....
Luke Kenneth Casson Leighton [Thu, 28 May 2020 10:10:17 +0000 (11:10 +0100)]
hmm....

3 years agoAdd sync Assert for _wrports 'wen' signal in proof_regfile.py, proof
colepoirier [Thu, 28 May 2020 01:11:25 +0000 (18:11 -0700)]
Add sync Assert for _wrports 'wen' signal in proof_regfile.py, proof
still not working

3 years agoStore and present parameters together with issue_i
Cesar Strauss [Thu, 28 May 2020 00:37:02 +0000 (21:37 -0300)]
Store and present parameters together with issue_i

3 years agodo not use range(0, x) - just range(x)
Luke Kenneth Casson Leighton [Wed, 27 May 2020 19:26:32 +0000 (20:26 +0100)]
do not use range(0, x) - just range(x)

3 years agoremove write-block on register zero
Luke Kenneth Casson Leighton [Wed, 27 May 2020 19:22:13 +0000 (20:22 +0100)]
remove write-block on register zero

3 years agocode-morph, add TODO on OP_RFID, OP_SC, OP_ADDPCIS
Luke Kenneth Casson Leighton [Wed, 27 May 2020 19:19:27 +0000 (20:19 +0100)]
code-morph, add TODO on OP_RFID, OP_SC, OP_ADDPCIS

3 years agoDerive proof_regfile Driver from regfile.Register() so test actually
colepoirier [Wed, 27 May 2020 19:16:06 +0000 (12:16 -0700)]
Derive proof_regfile Driver from regfile.Register() so test actually
runs

3 years agoFix indentation of regfile/formal/proof_regfile.py
colepoirier [Wed, 27 May 2020 18:25:53 +0000 (11:25 -0700)]
Fix indentation of regfile/formal/proof_regfile.py

3 years agoFirst commit of proof of regfile, not working yet
colepoirier [Wed, 27 May 2020 17:25:31 +0000 (10:25 -0700)]
First commit of proof of regfile, not working yet

3 years agoadd LD/ST pipe_data
Luke Kenneth Casson Leighton [Wed, 27 May 2020 17:31:14 +0000 (18:31 +0100)]
add LD/ST pipe_data

3 years agoLogicalOutputData does not need XER.so
Luke Kenneth Casson Leighton [Wed, 27 May 2020 16:12:03 +0000 (17:12 +0100)]
LogicalOutputData does not need XER.so

3 years agocomments
Luke Kenneth Casson Leighton [Wed, 27 May 2020 15:55:10 +0000 (16:55 +0100)]
comments

3 years agoremove XER.ca from logical Input Data - not needed
Luke Kenneth Casson Leighton [Wed, 27 May 2020 15:49:36 +0000 (16:49 +0100)]
remove XER.ca from logical Input Data - not needed

3 years agocleanup logical main proof
Luke Kenneth Casson Leighton [Wed, 27 May 2020 15:40:18 +0000 (16:40 +0100)]
cleanup logical main proof

3 years agocheck cr0, ov and ca ok signals in ALU main_stage proof
Luke Kenneth Casson Leighton [Wed, 27 May 2020 15:27:51 +0000 (16:27 +0100)]
check cr0, ov and ca ok signals in ALU main_stage proof

3 years agoadd carry-out, overflow and cr0 ok setting in ALU main_stage
Luke Kenneth Casson Leighton [Wed, 27 May 2020 15:19:31 +0000 (16:19 +0100)]
add carry-out, overflow and cr0 ok setting in ALU main_stage

3 years agoadd SRR0 to TrapInputData
Luke Kenneth Casson Leighton [Wed, 27 May 2020 14:48:40 +0000 (15:48 +0100)]
add SRR0 to TrapInputData

3 years agoadd links to bugreports into ALu formal proof as well
Luke Kenneth Casson Leighton [Wed, 27 May 2020 14:35:09 +0000 (15:35 +0100)]
add links to bugreports into ALu formal proof as well

3 years agoadd links to bugreports into alu output stage proof
Luke Kenneth Casson Leighton [Wed, 27 May 2020 14:34:01 +0000 (15:34 +0100)]
add links to bugreports into alu output stage proof

3 years agocheck reg output Data.ok in shift_rot formal proof
Luke Kenneth Casson Leighton [Wed, 27 May 2020 14:28:30 +0000 (15:28 +0100)]
check reg output Data.ok in shift_rot formal proof

3 years agorename CROutputData.cr_o to just CROutputData.cr
Luke Kenneth Casson Leighton [Wed, 27 May 2020 14:16:43 +0000 (15:16 +0100)]
rename CROutputData.cr_o to just CROutputData.cr

3 years agotest Data.ok for cr output and full cr output
Luke Kenneth Casson Leighton [Wed, 27 May 2020 14:15:14 +0000 (15:15 +0100)]
test Data.ok for cr output and full cr output

3 years agoassign and test on Data, TODO add Data.ok checking in CR proof
Luke Kenneth Casson Leighton [Wed, 27 May 2020 14:10:00 +0000 (15:10 +0100)]
assign and test on Data, TODO add Data.ok checking in CR proof

3 years agoFix bug in alu main stage proof
Michael Nolan [Wed, 27 May 2020 14:00:57 +0000 (10:00 -0400)]
Fix bug in alu main stage proof

3 years agoMove test case parameters to an "operation" member function
Cesar Strauss [Wed, 27 May 2020 10:06:37 +0000 (07:06 -0300)]
Move test case parameters to an "operation" member function

This allows running several operation cases in succession, without needing
to restart the processes, losing state and trace history.

I expect the need to synchronize the processes for each new operation.

3 years agoMerge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Wed, 27 May 2020 09:27:19 +0000 (11:27 +0200)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc

3 years agoelaborate function for DataMerger
Tobias Platen [Wed, 27 May 2020 09:27:06 +0000 (11:27 +0200)]
elaborate function for DataMerger

3 years agoRemove the monitor process
Cesar Strauss [Wed, 27 May 2020 09:23:58 +0000 (06:23 -0300)]
Remove the monitor process

It may be useful for debugging, but GTKWave is better.
It has served well its purpose, when first setting up the simulation.
Can be added back if needed.

3 years agomake power function unit enum bitmasked
Luke Kenneth Casson Leighton [Wed, 27 May 2020 02:45:40 +0000 (03:45 +0100)]
make power function unit enum bitmasked

3 years agoadd extra INT regs port for now, add Fast Regfile
Luke Kenneth Casson Leighton [Wed, 27 May 2020 00:40:34 +0000 (01:40 +0100)]
add extra INT regs port for now, add Fast Regfile

3 years agoadded XER and CR regfiles, using new VirtualRegPort
Luke Kenneth Casson Leighton [Wed, 27 May 2020 00:34:31 +0000 (01:34 +0100)]
added XER and CR regfiles, using new VirtualRegPort

3 years agocheck assertions
Luke Kenneth Casson Leighton [Tue, 26 May 2020 23:47:53 +0000 (00:47 +0100)]
check assertions

3 years agomake read/write regs properly internal
Luke Kenneth Casson Leighton [Tue, 26 May 2020 23:40:02 +0000 (00:40 +0100)]
make read/write regs properly internal

3 years agoadd VirtualRegPort test, seems to demonstrate it working
Luke Kenneth Casson Leighton [Tue, 26 May 2020 23:14:07 +0000 (00:14 +0100)]
add VirtualRegPort test, seems to demonstrate it working

3 years agoremove sync (not needed)
Luke Kenneth Casson Leighton [Tue, 26 May 2020 22:24:16 +0000 (23:24 +0100)]
remove sync (not needed)

3 years agoget score6600_multi.py working again
Luke Kenneth Casson Leighton [Tue, 26 May 2020 22:17:18 +0000 (23:17 +0100)]
get score6600_multi.py working again

3 years agoredo focus of virtual reg port to do only full datawidth not share with mini-regs
Luke Kenneth Casson Leighton [Tue, 26 May 2020 22:02:47 +0000 (23:02 +0100)]
redo focus of virtual reg port to do only full datawidth not share with mini-regs

3 years agoAdd extras from bottom of the file
Michael Nolan [Tue, 26 May 2020 18:03:30 +0000 (14:03 -0400)]
Add extras from bottom of the file

3 years agoRewrite proof to be more in line with what appears in the wiki
Michael Nolan [Tue, 26 May 2020 17:33:19 +0000 (13:33 -0400)]
Rewrite proof to be more in line with what appears in the wiki

3 years agosort-of (maybe) implemented a virtual port on top of RegFileArray.
Luke Kenneth Casson Leighton [Tue, 26 May 2020 15:54:33 +0000 (16:54 +0100)]
sort-of (maybe) implemented a virtual port on top of RegFileArray.
needs checking

3 years agotry new variant of VirtualRegFile
Luke Kenneth Casson Leighton [Tue, 26 May 2020 15:03:58 +0000 (16:03 +0100)]
try new variant of VirtualRegFile

3 years agouse nmutil treereduce
Luke Kenneth Casson Leighton [Tue, 26 May 2020 12:45:58 +0000 (13:45 +0100)]
use nmutil treereduce

3 years agocontinue virtual regfile port
Luke Kenneth Casson Leighton [Tue, 26 May 2020 11:44:18 +0000 (12:44 +0100)]
continue virtual regfile port

3 years agowhitespace, add commentary
Luke Kenneth Casson Leighton [Tue, 26 May 2020 11:43:57 +0000 (12:43 +0100)]
whitespace, add commentary

3 years agoFirst attempt at implementing block access rd and wr regfile port onto
colepoirier [Tue, 26 May 2020 01:04:37 +0000 (18:04 -0700)]
First attempt at implementing block access rd and wr regfile port onto
an array-based regfile

3 years agoCheck that busy_o doesn't rise on its own
Cesar Strauss [Mon, 25 May 2020 22:50:32 +0000 (19:50 -0300)]
Check that busy_o doesn't rise on its own

3 years agoImplement the issue_i/busy_o protocol check.
Cesar Strauss [Mon, 25 May 2020 22:28:43 +0000 (19:28 -0300)]
Implement the issue_i/busy_o protocol check.

It will timeout, until the rel/go signals are implemented.

3 years agoMove process list to CompUnitParallelTest
Cesar Strauss [Mon, 25 May 2020 19:11:03 +0000 (16:11 -0300)]
Move process list to CompUnitParallelTest

The process list (implementation detail) is best left for the class.

3 years agoCorrect polarity of shadow signal
Michael Nolan [Mon, 25 May 2020 19:11:32 +0000 (15:11 -0400)]
Correct polarity of shadow signal

3 years agodocument shadown inversion
Luke Kenneth Casson Leighton [Mon, 25 May 2020 19:00:45 +0000 (20:00 +0100)]
document shadown inversion

3 years agoAdd link to compunit wiki page
Michael Nolan [Mon, 25 May 2020 18:53:49 +0000 (14:53 -0400)]
Add link to compunit wiki page

3 years agoCorrect property numbers, add assertions about busy
Michael Nolan [Mon, 25 May 2020 18:47:58 +0000 (14:47 -0400)]
Correct property numbers, add assertions about busy

3 years agoupdate comments on compalu_multi.py
Luke Kenneth Casson Leighton [Mon, 25 May 2020 18:45:55 +0000 (19:45 +0100)]
update comments on compalu_multi.py

3 years agoAdd assertions about go_wr and wr_rel
Michael Nolan [Mon, 25 May 2020 18:28:42 +0000 (14:28 -0400)]
Add assertions about go_wr and wr_rel

3 years agoMinor cleanup of comments
Michael Nolan [Mon, 25 May 2020 18:12:01 +0000 (14:12 -0400)]
Minor cleanup of comments

3 years agoMinor changes to alu_hier.py to allow it to be used in proof
Michael Nolan [Mon, 25 May 2020 18:10:54 +0000 (14:10 -0400)]
Minor changes to alu_hier.py to allow it to be used in proof

3 years agoBegin working on proof for compunit/fu
Michael Nolan [Mon, 25 May 2020 18:08:20 +0000 (14:08 -0400)]
Begin working on proof for compunit/fu

3 years agoadd some more stub comments
Luke Kenneth Casson Leighton [Mon, 25 May 2020 15:28:30 +0000 (16:28 +0100)]
add some more stub comments

3 years agoyield blank so test passes
Luke Kenneth Casson Leighton [Mon, 25 May 2020 15:24:50 +0000 (16:24 +0100)]
yield blank so test passes