soc.git
4 years agoadd bigendian
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 21:46:10 +0000 (22:46 +0100)]
add bigendian

4 years agomore setting bigendian
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 20:06:51 +0000 (21:06 +0100)]
more setting bigendian

4 years agoadd bigendian mode to helloworld test
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 20:01:47 +0000 (21:01 +0100)]
add bigendian mode to helloworld test

4 years agosort out big/little endian startup on qemu
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 16:38:14 +0000 (17:38 +0100)]
sort out big/little endian startup on qemu

4 years agosorting out bigendian/littleendian including in qemu
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 16:34:07 +0000 (17:34 +0100)]
sorting out bigendian/littleendian including in qemu
qemu is a pain!

4 years agowhoops output trunc_divs not trunc_div
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 11:35:23 +0000 (12:35 +0100)]
whoops output trunc_divs not trunc_div

4 years agoadd random mulhd and mulld tests
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 11:02:29 +0000 (12:02 +0100)]
add random mulhd and mulld tests

4 years agoenable mul tests after sorting pseudo-code mul overflow
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 10:26:20 +0000 (11:26 +0100)]
enable mul tests after sorting pseudo-code mul overflow

4 years agospecial test for mul hw to cope with ignoring OE flag
Luke Kenneth Casson Leighton [Sat, 11 Jul 2020 10:08:48 +0000 (11:08 +0100)]
special test for mul hw to cope with ignoring OE flag

4 years agoadd a DIVS function as separate and discrete from floor_div
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 20:09:30 +0000 (21:09 +0100)]
add a DIVS function as separate and discrete from floor_div
likewise for MODS and MULS

4 years agoadd random unsigned div tests
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 15:29:07 +0000 (16:29 +0100)]
add random unsigned div tests

4 years agoadd overflow div tests
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 15:28:24 +0000 (16:28 +0100)]
add overflow div tests

4 years agopropagate missing parameters from div
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 15:28:12 +0000 (16:28 +0100)]
propagate missing parameters from div

4 years agocode comments
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 15:27:01 +0000 (16:27 +0100)]
code comments

4 years agodo not set div result if overflow occurs
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 15:16:12 +0000 (16:16 +0100)]
do not set div result if overflow occurs

4 years agore-enable div random tests and other regressions
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 15:05:23 +0000 (16:05 +0100)]
re-enable div random tests and other regressions

4 years agocheck for div_overflow equal to None rather than == 1
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 15:04:08 +0000 (16:04 +0100)]
check for div_overflow equal to None rather than == 1

4 years agore-add rc/oe back into LDST input record
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 13:30:28 +0000 (14:30 +0100)]
re-add rc/oe back into LDST input record
this for later use with st*cx because it writes CR and OV (and SO)

4 years agowhew panic over, missed a bigendian argument in test_compunit.py
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 13:21:48 +0000 (14:21 +0100)]
whew panic over, missed a bigendian argument in test_compunit.py

4 years agoadd test7 div regression
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 13:12:50 +0000 (14:12 +0100)]
add test7 div regression

4 years agoadd more debug output for #425
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 09:40:15 +0000 (10:40 +0100)]
add more debug output for #425

4 years agoadd debugging chain for #425
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 09:16:28 +0000 (10:16 +0100)]
add debugging chain for #425

4 years agoupdate submodule
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 09:15:52 +0000 (10:15 +0100)]
update submodule

4 years agocut/paste error writing to wrong vcd file
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 08:44:27 +0000 (09:44 +0100)]
cut/paste error writing to wrong vcd file

4 years agoswitch to using Signal.width instead of Signal.shape()[0] since Shape isn't a tuple...
Jacob Lifshay [Fri, 10 Jul 2020 00:21:37 +0000 (17:21 -0700)]
switch to using Signal.width instead of Signal.shape()[0] since Shape isn't a tuple anymore

see https://github.com/nmigen/nmigen/pull/422

4 years agoformat file
Jacob Lifshay [Fri, 10 Jul 2020 00:21:19 +0000 (17:21 -0700)]
format file

4 years agoupdate libreriscv submodule
Jacob Lifshay [Fri, 10 Jul 2020 00:19:29 +0000 (17:19 -0700)]
update libreriscv submodule

4 years agoadd regression test for div overflow case
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 23:18:53 +0000 (00:18 +0100)]
add regression test for div overflow case
see https://bugs.libre-soc.org/show_bug.cgi?id=425

4 years agoslightly different so handling in common output stage
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 21:20:41 +0000 (22:20 +0100)]
slightly different so handling in common output stage

4 years agoalso set so only if OE requires it
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 21:08:55 +0000 (22:08 +0100)]
also set so only if OE requires it

4 years agodebug information related to 32/64 bit mode
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 21:08:15 +0000 (22:08 +0100)]
debug information related to 32/64 bit mode

4 years agobug #424 - 32/64 bit is a *global* flag not a per-op one
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 21:07:06 +0000 (22:07 +0100)]
bug #424 - 32/64 bit is a *global* flag not a per-op one
when it comes to setting CR0

4 years agotest top bit 31 in 32-bit mode for CR0 creation
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 20:10:37 +0000 (21:10 +0100)]
test top bit 31 in 32-bit mode for CR0 creation

4 years agoha ha very funny. pipelines being pipelines, you have to wait for them
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:54:09 +0000 (20:54 +0100)]
ha ha very funny.  pipelines being pipelines, you have to wait for them
just as with MUL, it was necessary to set the "valid" signal for
only one cycle otherwise spurious output is created

4 years agowhoops test gets copied 4 times on the If.
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:44:34 +0000 (20:44 +0100)]
whoops test gets copied 4 times on the If.
create intermediate signal

4 years agoALU output stage, change logic slightly
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:37:14 +0000 (20:37 +0100)]
ALU output stage, change logic slightly
test for oe/ok then set xer/ov data/ok if true

4 years agoset xer_ov.ok = 1
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:28:54 +0000 (20:28 +0100)]
set xer_ov.ok = 1

4 years agoremove unneeded xer.ca in MulOutputData
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:18:04 +0000 (20:18 +0100)]
remove unneeded xer.ca in MulOutputData

4 years agosomething weird going on with div. interaction between tests
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:14:29 +0000 (20:14 +0100)]
something weird going on with div.  interaction between tests

4 years agosimplify setting of mul overflow into xer_ov
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:00:29 +0000 (20:00 +0100)]
simplify setting of mul overflow into xer_ov

4 years agoclarifying comments on setting xer_ov/so
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 19:00:07 +0000 (20:00 +0100)]
clarifying comments on setting xer_ov/so

4 years agoDIV overflow needs to be copied into both bits of XER.ov
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 18:59:45 +0000 (19:59 +0100)]
DIV overflow needs to be copied into both bits of XER.ov
(OV, OV32)

4 years agoadd debug output of DIV results
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 18:58:13 +0000 (19:58 +0100)]
add debug output of DIV results

4 years agocheck result first then CR second
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 18:57:34 +0000 (19:57 +0100)]
check result first then CR second

4 years agomunge alu_fsm Shifter into looking like CompALU API compliant
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 17:07:25 +0000 (18:07 +0100)]
munge alu_fsm Shifter into looking like CompALU API compliant

4 years agoresolving issues with div tests (turned out to be nmutil.divmod)
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 12:34:07 +0000 (13:34 +0100)]
resolving issues with div tests (turned out to be nmutil.divmod)
adding more tests to track down a CR0 issue

4 years agoremove xer_ca from DIV pipeline (took a bit of messing about)
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 10:49:51 +0000 (11:49 +0100)]
remove xer_ca from DIV pipeline (took a bit of messing about)

4 years agoDefine ports for a simple sequential Shifter
Cesar Strauss [Thu, 9 Jul 2020 09:50:47 +0000 (06:50 -0300)]
Define ports for a simple sequential Shifter

4 years agoirony comment on how one line creates a massive array of gates
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 09:55:52 +0000 (10:55 +0100)]
irony comment on how one line creates a massive array of gates

4 years agoadd new stages etc. to get multiply working without xer_ca
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 09:52:46 +0000 (10:52 +0100)]
add new stages etc. to get multiply working without xer_ca

4 years agocreate new DivMulOutputData which does not have CA/CA32
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 09:32:57 +0000 (10:32 +0100)]
create new DivMulOutputData which does not have CA/CA32

4 years agomake carry output handling optional in common output stage
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 08:32:55 +0000 (09:32 +0100)]
make carry output handling optional in common output stage

4 years agoidentifying locations where big/little endian is in place, adding args
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 00:07:24 +0000 (01:07 +0100)]
identifying locations where big/little endian is in place, adding args

4 years agoresolving bigendian/littleendian modes in qemu sim
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 19:49:32 +0000 (20:49 +0100)]
resolving bigendian/littleendian modes in qemu sim

4 years agoresolving old and new behaviour for lookup of SPRs
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 19:24:45 +0000 (20:24 +0100)]
resolving old and new behaviour for lookup of SPRs

4 years agoresolving old and new behaviour for lookup of SPRs
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 19:23:39 +0000 (20:23 +0100)]
resolving old and new behaviour for lookup of SPRs

4 years agoadding in ALU test back in, debugging SPR setup
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 19:15:23 +0000 (20:15 +0100)]
adding in ALU test back in, debugging SPR setup

4 years agosorting out setting of XER
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 19:09:48 +0000 (20:09 +0100)]
sorting out setting of XER

4 years agoadd spr to fast reg converter
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 18:45:27 +0000 (19:45 +0100)]
add spr to fast reg converter

4 years agogot test_issuer operational on one unit test
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 18:37:14 +0000 (19:37 +0100)]
got test_issuer operational on one unit test
however needs further investigation

4 years agoswitch assembler to little-endian
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 17:26:16 +0000 (18:26 +0100)]
switch assembler to little-endian

4 years agostashing current state of investigation whilst looking for regression bug
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 16:41:48 +0000 (17:41 +0100)]
stashing current state of investigation whilst looking for regression bug

4 years agoadd test trap simulator unit test
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 16:22:52 +0000 (17:22 +0100)]
add test trap simulator unit test

4 years agoallow qemu to stop at specified end point
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 16:22:35 +0000 (17:22 +0100)]
allow qemu to stop at specified end point

4 years agoadd mtspr and bcctrl instructions to helloworld test
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 16:18:51 +0000 (17:18 +0100)]
add mtspr and bcctrl instructions to helloworld test

4 years agoadd option to qemu to break at known alternate address
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 16:18:29 +0000 (17:18 +0100)]
add option to qemu to break at known alternate address

4 years agoadd to/from spr test (mtspr, mfspr)
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 16:05:16 +0000 (17:05 +0100)]
add to/from spr test (mtspr, mfspr)

4 years agoadd code-fragment from microwatt helloworld
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 15:09:18 +0000 (16:09 +0100)]
add code-fragment from microwatt helloworld

4 years agoadd a simple addis test (regression)
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 15:05:18 +0000 (16:05 +0100)]
add a simple addis test (regression)

4 years agocopy binary loaded from disk into data memory as well
Luke Kenneth Casson Leighton [Wed, 8 Jul 2020 15:05:04 +0000 (16:05 +0100)]
copy binary loaded from disk into data memory as well

4 years agoStart the FSM-based ALU example.
Cesar Strauss [Wed, 8 Jul 2020 09:42:07 +0000 (06:42 -0300)]
Start the FSM-based ALU example.

4 years agoMerge branch 'master' of ssh://git.libre-riscv.org:922/soc
Jacob Lifshay [Wed, 8 Jul 2020 02:39:36 +0000 (19:39 -0700)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc

4 years agoadd WIP pipeline loop demo
Jacob Lifshay [Wed, 8 Jul 2020 02:39:13 +0000 (19:39 -0700)]
add WIP pipeline loop demo

4 years agoadd hello world binary test
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 23:41:12 +0000 (00:41 +0100)]
add hello world binary test

4 years agowhoops error in test of dynamic parameter
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 23:23:56 +0000 (00:23 +0100)]
whoops error in test of dynamic parameter

4 years agosort-of got binary execution test working
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 23:21:48 +0000 (00:21 +0100)]
sort-of got binary execution test working

4 years agocode-shuffle on testing to prepare loading large files into memory
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 20:05:21 +0000 (21:05 +0100)]
code-shuffle on testing to prepare loading large files into memory

4 years agoClear input data along with valid_i
Cesar Strauss [Tue, 7 Jul 2020 09:30:02 +0000 (06:30 -0300)]
Clear input data along with valid_i

4 years agoordering of tests for OP_ATTN needed shuffling. seems to be working
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 15:20:12 +0000 (16:20 +0100)]
ordering of tests for OP_ATTN needed shuffling.  seems to be working

4 years agowhoops got Function.NONE test wrong in PowerDecode2
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 15:11:40 +0000 (16:11 +0100)]
whoops got Function.NONE test wrong in PowerDecode2

4 years agoremove unneeded record field from logical_input_record
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 15:05:54 +0000 (16:05 +0100)]
remove unneeded record field from logical_input_record

4 years agodebugging termination (OP_ATTN)
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 15:02:24 +0000 (16:02 +0100)]
debugging termination (OP_ATTN)

4 years agoupdate opcode map for OP_ATTN
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 14:50:30 +0000 (15:50 +0100)]
update opcode map for OP_ATTN

4 years agoadd halted condition in ISACaller, when attn instruction encountered
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 14:42:52 +0000 (15:42 +0100)]
add halted condition in ISACaller, when attn instruction encountered

4 years agodebugging termination / OP_ATTN
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 14:27:50 +0000 (15:27 +0100)]
debugging termination / OP_ATTN

4 years agoadd ATTN unit test
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 13:15:56 +0000 (14:15 +0100)]
add ATTN unit test

4 years agoadd core start/stop capability, and OP_ATTN support
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 13:14:46 +0000 (14:14 +0100)]
add core start/stop capability, and OP_ATTN support

4 years agoadd in SPR test cases into test_issuer.py
Luke Kenneth Casson Leighton [Tue, 7 Jul 2020 12:42:20 +0000 (13:42 +0100)]
add in SPR test cases into test_issuer.py

4 years agouse ComMULOpSubset in mul pipeline
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 22:28:38 +0000 (23:28 +0100)]
use ComMULOpSubset in mul pipeline

4 years agoremove alu unneeded op record data
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 22:26:56 +0000 (23:26 +0100)]
remove alu unneeded op record data

4 years agoremove alu unneeded op record data
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 22:23:51 +0000 (23:23 +0100)]
remove alu unneeded op record data

4 years agoremove alu unneeded op record data
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 22:22:45 +0000 (23:22 +0100)]
remove alu unneeded op record data

4 years agoadd mul unit to test_issuer
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 22:15:55 +0000 (23:15 +0100)]
add mul unit to test_issuer

4 years agoadd mul compunit
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 22:13:00 +0000 (23:13 +0100)]
add mul compunit

4 years agowhoops forgot that the mul pipeline is actually a pipeline (3 stage, first one)
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 22:08:53 +0000 (23:08 +0100)]
whoops forgot that the mul pipeline is actually a pipeline (3 stage, first one)

4 years agodo abs slightly differently in SelectableInt
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 19:48:26 +0000 (20:48 +0100)]
do abs slightly differently in SelectableInt

4 years agocontinue mul unit test debugging
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 19:43:48 +0000 (20:43 +0100)]
continue mul unit test debugging

4 years agoadd MULS (signed) version of multiply
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 19:19:58 +0000 (20:19 +0100)]
add MULS (signed) version of multiply

4 years agoimprove debug for test_sim.py
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 19:19:48 +0000 (20:19 +0100)]
improve debug for test_sim.py

4 years agoadd mullw test to qemu sim
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 19:19:26 +0000 (20:19 +0100)]
add mullw test to qemu sim