soc.git
4 years agoadd loop example, required a bit of munging.
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 16:10:21 +0000 (17:10 +0100)]
add loop example, required a bit of munging.

4 years agoget fu compunit test to use ISACaller instruction-memory
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 14:55:04 +0000 (15:55 +0100)]
get fu compunit test to use ISACaller instruction-memory

4 years agogot fed up of adding arguments to ISACaller / ISA, use *args and **kwargs
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 14:46:04 +0000 (15:46 +0100)]
got fed up of adding arguments to ISACaller / ISA, use *args and **kwargs

4 years agosplit execute and setup of ISACaller instruction execution
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 14:40:46 +0000 (15:40 +0100)]
split execute and setup of ISACaller instruction execution
into two phases

4 years agocomment ISACaller setup
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 14:24:27 +0000 (15:24 +0100)]
comment ISACaller setup

4 years agostart to add in independent execution into ISACaller
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 14:20:35 +0000 (15:20 +0100)]
start to add in independent execution into ISACaller

4 years agoadd a fake program counter to ISACaller
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 13:42:47 +0000 (14:42 +0100)]
add a fake program counter to ISACaller

4 years agouse an independent power decoder in ISACaller
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 13:42:33 +0000 (14:42 +0100)]
use an independent power decoder in ISACaller

4 years agoadd "respect_pc" boolean to ISACaller
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 13:20:06 +0000 (14:20 +0100)]
add "respect_pc" boolean to ISACaller

4 years agoadd optional instruction memory
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 13:07:59 +0000 (14:07 +0100)]
add optional instruction memory

4 years agosplit out TestIssuer into separate module
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 11:17:31 +0000 (12:17 +0100)]
split out TestIssuer into separate module

4 years agoremove unneeded yield
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 11:08:08 +0000 (12:08 +0100)]
remove unneeded yield

4 years agoenable all tests again in test_core.py and test_issuer.py
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 05:41:09 +0000 (06:41 +0100)]
enable all tests again in test_core.py and test_issuer.py

4 years agogot test_issuer FSM operating. bit of a hack
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 05:39:53 +0000 (06:39 +0100)]
got test_issuer FSM operating.  bit of a hack

4 years agodebugging test_issuer, getting FSM working
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 04:42:10 +0000 (05:42 +0100)]
debugging test_issuer, getting FSM working

4 years agooutput to issuer_simulator.vcd
Luke Kenneth Casson Leighton [Wed, 17 Jun 2020 04:14:40 +0000 (05:14 +0100)]
output to issuer_simulator.vcd

4 years agoadd first version unit test for TestIssuer
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 18:33:05 +0000 (19:33 +0100)]
add first version unit test for TestIssuer

4 years agoreduce instruction depth to 6 bits in TestIssuer
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 18:32:46 +0000 (19:32 +0100)]
reduce instruction depth to 6 bits in TestIssuer

4 years agomove debug statements to check function
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 18:21:20 +0000 (19:21 +0100)]
move debug statements to check function

4 years agohack LD/ST ad/st together, allow PC to be set externally
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 18:12:01 +0000 (19:12 +0100)]
hack LD/ST ad/st together, allow PC to be set externally

4 years agomove check regs in simple core to separate function
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 17:29:37 +0000 (18:29 +0100)]
move check regs in simple core to separate function

4 years agomove test core reg set up into separate function
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 17:24:43 +0000 (18:24 +0100)]
move test core reg set up into separate function

4 years agoset up a TestIssuer class with a FSM for doing instruction issue to simple core
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 17:18:20 +0000 (18:18 +0100)]
set up a TestIssuer class with a FSM for doing instruction issue to simple core

4 years agoadd ports to TestMemory
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 17:16:53 +0000 (18:16 +0100)]
add ports to TestMemory

4 years agoadd beginnings of TestIssuer class, to issue instructions to simple core
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 14:39:03 +0000 (15:39 +0100)]
add beginnings of TestIssuer class, to issue instructions to simple core

4 years agoweird: adding TestMemory with no port causes nmigen recursion-exceeded
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 13:00:12 +0000 (14:00 +0100)]
weird: adding TestMemory with no port causes nmigen recursion-exceeded

4 years agorefer to signals directly in Test Core
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 12:57:41 +0000 (13:57 +0100)]
refer to signals directly in Test Core

4 years agoadd test instruction memory SRAM
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 12:41:17 +0000 (13:41 +0100)]
add test instruction memory SRAM

4 years agoupdate popcount docstring
Luke Kenneth Casson Leighton [Tue, 16 Jun 2020 11:15:42 +0000 (12:15 +0100)]
update popcount docstring

4 years agostart trying to fill in some comments in Minerva L1 cache code
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 23:52:30 +0000 (00:52 +0100)]
start trying to fill in some comments in Minerva L1 cache code

4 years agowhitespace cleanup
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 20:56:24 +0000 (21:56 +0100)]
whitespace cleanup

4 years agoimports and syntax errors fixed (found test_cache.py)
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 20:55:39 +0000 (21:55 +0100)]
imports and syntax errors fixed (found test_cache.py)

4 years agomore whitespace
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 19:53:43 +0000 (20:53 +0100)]
more whitespace

4 years agomore whitespace on minerva (no unit tests, so cannot check it)
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 19:51:56 +0000 (20:51 +0100)]
more whitespace on minerva (no unit tests, so cannot check it)

4 years agowhitespace cleanup, remove minerva DataSelector class
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 19:46:25 +0000 (20:46 +0100)]
whitespace cleanup, remove minerva DataSelector class

4 years agohave to set up addr/st rel-go link before setting up nmigen Simulator
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 19:05:32 +0000 (20:05 +0100)]
have to set up addr/st rel-go link before setting up nmigen Simulator
LD/ST now works in test_core.py

4 years agoadd in memory setup/check but disable LDST Unit Tests in core.py
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 14:54:49 +0000 (15:54 +0100)]
add in memory setup/check but disable LDST Unit Tests in core.py
LDST is still busy after 2nd instruction, bug needs tracking down

4 years agomove setup/check memory into helper functions for use in test_core.py
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 14:40:36 +0000 (15:40 +0100)]
move setup/check memory into helper functions for use in test_core.py

4 years agowhoops LDSTCompUnit was identified as a Function.ALU not a Function.LDST
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 14:33:35 +0000 (15:33 +0100)]
whoops LDSTCompUnit was identified as a Function.ALU not a Function.LDST

4 years agoadd in TstL0CacheBuffer but disable temporarily
Luke Kenneth Casson Leighton [Mon, 15 Jun 2020 14:26:05 +0000 (15:26 +0100)]
add in TstL0CacheBuffer but disable temporarily

4 years agoadd optional LDSTFunctionUnit to compunits
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 20:22:04 +0000 (21:22 +0100)]
add optional LDSTFunctionUnit to compunits

4 years agounit tests showing byte-reverse works
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 17:08:23 +0000 (18:08 +0100)]
unit tests showing byte-reverse works

4 years agoadd sim-qemu test for byte-reversed LD/ST
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 16:51:17 +0000 (17:51 +0100)]
add sim-qemu test for byte-reversed LD/ST

4 years agoadd in byte-reverse from op PowerDecode2 field
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 16:40:20 +0000 (17:40 +0100)]
add in byte-reverse from op PowerDecode2 field

4 years agoerror in address width (truncated) in setting up L0CacheBuffer
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 14:50:35 +0000 (15:50 +0100)]
error in address width (truncated) in setting up L0CacheBuffer

4 years agoerror in naming that ended up in gtkwave from a proxy
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 14:49:27 +0000 (15:49 +0100)]
error in naming that ended up in gtkwave from a proxy

4 years agoadd another LD/ST example to qemu-sim test,
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 14:37:30 +0000 (15:37 +0100)]
add another LD/ST example to qemu-sim test,
mirroring the one in ldst compunit test

4 years agoadd byte-reversal on LD and ST in L0CacheBuffer
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 14:36:57 +0000 (15:36 +0100)]
add byte-reversal on LD and ST in L0CacheBuffer

4 years agoreasonably certain that the careful and slow use of little-endian data read/write
Luke Kenneth Casson Leighton [Sun, 14 Jun 2020 14:00:12 +0000 (15:00 +0100)]
reasonably certain that the careful and slow use of little-endian data read/write
and explicit endian-ness swapping is correct, when comparing the
simulator against qemu

4 years agoWait for all active rel signals to be high, and only then pulse go.
Cesar Strauss [Sat, 13 Jun 2020 23:51:14 +0000 (20:51 -0300)]
Wait for all active rel signals to be high, and only then pulse go.

It's the best we can do without parallel processes.

4 years agofirst cut at qemu memory dump and compare
Luke Kenneth Casson Leighton [Fri, 12 Jun 2020 18:44:09 +0000 (19:44 +0100)]
first cut at qemu memory dump and compare

4 years agonote possible BE/LE mode needed for memory reads/writes
Luke Kenneth Casson Leighton [Fri, 12 Jun 2020 15:28:32 +0000 (16:28 +0100)]
note possible BE/LE mode needed for memory reads/writes

4 years agoupdate ld/st test to see what is going on
Luke Kenneth Casson Leighton [Fri, 12 Jun 2020 14:58:21 +0000 (15:58 +0100)]
update ld/st test to see what is going on

4 years agotracking down what looks like an error in the Simulator Mem ld/st
Luke Kenneth Casson Leighton [Fri, 12 Jun 2020 14:41:16 +0000 (15:41 +0100)]
tracking down what looks like an error in the Simulator Mem ld/st

4 years agodebug printout of sim and hardware memory, shows mismatch of depths
Luke Kenneth Casson Leighton [Fri, 12 Jun 2020 14:03:10 +0000 (15:03 +0100)]
debug printout of sim and hardware memory, shows mismatch of depths

4 years agouse ALUHelpers in LDSTCompUnit test
Luke Kenneth Casson Leighton [Fri, 12 Jun 2020 13:46:25 +0000 (14:46 +0100)]
use ALUHelpers in LDSTCompUnit test

4 years agosome ugly hacks that get LD/ST immediate working
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 19:03:30 +0000 (20:03 +0100)]
some ugly hacks that get LD/ST immediate working

4 years agoeven more complexity in CompALUMulti, to deal with an edge case where
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 14:29:41 +0000 (15:29 +0100)]
even more complexity in CompALUMulti, to deal with an edge case where
go-write is requested immediately (same cycle as go-req).
the set and reset on "req_l" happen to come in on the same cycle.
the result: the latch *remains* set high.
solution: record the go signals for one extra cycle (sync) and push
them into the req-reset and wr_any signals

4 years agomust distinguish between rd/write xer_ca sim helpers
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 10:54:27 +0000 (11:54 +0100)]
must distinguish between rd/write xer_ca sim helpers

4 years agofixing get_rd_sim_xer_ca, has to only read carry if available
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 10:53:21 +0000 (11:53 +0100)]
fixing get_rd_sim_xer_ca, has to only read carry if available

4 years agoyield needed for unit tests to work (has to go)
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 10:53:00 +0000 (11:53 +0100)]
yield needed for unit tests to work (has to go)

4 years agoread and write version of get_sim_xer_ca are different
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 10:31:05 +0000 (11:31 +0100)]
read and write version of get_sim_xer_ca are different

4 years agouse ALUHelpers in shift_rot
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 10:23:10 +0000 (11:23 +0100)]
use ALUHelpers in shift_rot

4 years agoadd fast spr1/2 sim ALUHelpers
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 06:14:49 +0000 (07:14 +0100)]
add fast spr1/2 sim ALUHelpers

4 years agorename get_sim_cr_a to get_wr_sim_cr_a for now
Luke Kenneth Casson Leighton [Thu, 11 Jun 2020 06:10:27 +0000 (07:10 +0100)]
rename get_sim_cr_a to get_wr_sim_cr_a for now
add read-version of get_sim_cr_a

4 years agomove Decode2ToExecute1Type to separate module
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 23:56:58 +0000 (00:56 +0100)]
move Decode2ToExecute1Type to separate module

4 years agowhitespace
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 23:48:01 +0000 (00:48 +0100)]
whitespace

4 years agomodify qemu.py to set qemu's cr to 0
Michael Nolan [Wed, 10 Jun 2020 19:28:30 +0000 (15:28 -0400)]
modify qemu.py to set qemu's cr to 0

4 years agolink ST.go directly to ST.rel
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:41:35 +0000 (17:41 +0100)]
link ST.go directly to ST.rel

4 years agorename unit test function in ld/st compalu_multi
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:38:58 +0000 (17:38 +0100)]
rename unit test function in ld/st compalu_multi

4 years agohmmm very confused about LD/ST CompUnit unit test
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:35:13 +0000 (17:35 +0100)]
hmmm very confused about LD/ST CompUnit unit test

4 years agowrong data structure being imported, duplicate CompLDSTOpSubset
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:26:47 +0000 (17:26 +0100)]
wrong data structure being imported, duplicate CompLDSTOpSubset

4 years agoremove old code
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:23:40 +0000 (17:23 +0100)]
remove old code

4 years agoset data_len in compldst_multi unit test
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:11:25 +0000 (17:11 +0100)]
set data_len in compldst_multi unit test

4 years agoyield ports from data_o and addr_o
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:09:46 +0000 (17:09 +0100)]
yield ports from data_o and addr_o

4 years agoexpand LenExpand to 4 bits in order to cover 1/2/4/8 (0b1000)
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 16:04:33 +0000 (17:04 +0100)]
expand LenExpand to 4 bits in order to cover 1/2/4/8 (0b1000)

4 years agogot L0CacheBuffer shift/mask working on a preliminary level
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 15:43:29 +0000 (16:43 +0100)]
got L0CacheBuffer shift/mask working on a preliminary level

4 years agowhitespace
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 14:51:48 +0000 (15:51 +0100)]
whitespace

4 years agoadd use of classes in L0Cache unit tests
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 14:50:26 +0000 (15:50 +0100)]
add use of classes in L0Cache unit tests

4 years agostart using unittest suite in l0_cache.py
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 14:44:03 +0000 (15:44 +0100)]
start using unittest suite in l0_cache.py

4 years agocreates an import error and stops unit tests from running
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 14:39:13 +0000 (15:39 +0100)]
creates an import error and stops unit tests from running

Revert "PortInterface refactoring"

This reverts commit 8e58e66142991e308985a463cfff396a36e3f816.

4 years agoadd in LenExpander to L0CacheBuffer, not used yet
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 14:36:56 +0000 (15:36 +0100)]
add in LenExpander to L0CacheBuffer, not used yet

4 years agomake resetless for all signals in DataMergerRecord
Tobias Platen [Wed, 10 Jun 2020 14:38:24 +0000 (16:38 +0200)]
make resetless for all signals in DataMergerRecord

4 years agoPortInterface refactoring
Tobias Platen [Wed, 10 Jun 2020 14:28:04 +0000 (16:28 +0200)]
PortInterface refactoring

4 years agoexception if rolls in addr_split.py
Tobias Platen [Wed, 10 Jun 2020 13:57:02 +0000 (15:57 +0200)]
exception if rolls in addr_split.py

4 years agoadd link to bug 361 in FU test
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 13:27:05 +0000 (14:27 +0100)]
add link to bug 361 in FU test

4 years agoTODO on RA immediate-zero mode
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 13:25:27 +0000 (14:25 +0100)]
TODO on RA immediate-zero mode

4 years agore-do cookie-cut of alu test_pipe_caller.py over to div. again
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 13:20:27 +0000 (14:20 +0100)]
re-do cookie-cut of alu test_pipe_caller.py over to div. again

4 years agouse ALUHelpers in output stage of test_pipe_caller
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 13:08:16 +0000 (14:08 +0100)]
use ALUHelpers in output stage of test_pipe_caller

4 years agouse sim-get helpers in ALU input fetch
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 13:03:39 +0000 (14:03 +0100)]
use sim-get helpers in ALU input fetch

4 years agouse ALUHelpers in output phase of test_alu_compunit.py
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 12:55:40 +0000 (13:55 +0100)]
use ALUHelpers in output phase of test_alu_compunit.py

4 years agocontinue ALUHelpers check alu outputs code-morph
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 12:54:24 +0000 (13:54 +0100)]
continue ALUHelpers check alu outputs code-morph

4 years agocode-morph ALU output test check phase
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 12:33:19 +0000 (13:33 +0100)]
code-morph ALU output test check phase

4 years agocode-morph regspecmap functions, split into separate read/write
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 12:18:08 +0000 (13:18 +0100)]
code-morph regspecmap functions, split into separate read/write

4 years agostarting on alu output check
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 12:09:45 +0000 (13:09 +0100)]
starting on alu output check

4 years agoilang file output change from alu_pipeline.il to div_pipeline.il
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 11:33:38 +0000 (12:33 +0100)]
ilang file output change from alu_pipeline.il to div_pipeline.il

4 years agocookie-cut alu test_pipe_caller.py over
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 11:31:54 +0000 (12:31 +0100)]
cookie-cut alu test_pipe_caller.py over

4 years agomove to common ALUHelpers for ShiftRot test_pipe_caller.py
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 11:25:48 +0000 (12:25 +0100)]
move to common ALUHelpers for ShiftRot test_pipe_caller.py

4 years agomove to common ALUHelpers for Logical test_pipe_caller.py
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 11:21:43 +0000 (12:21 +0100)]
move to common ALUHelpers for Logical test_pipe_caller.py

4 years agomove to common ALUHelpers for CR test_pipe_caller.py
Luke Kenneth Casson Leighton [Wed, 10 Jun 2020 11:20:17 +0000 (12:20 +0100)]
move to common ALUHelpers for CR test_pipe_caller.py