soc.git
3 years agoadd mtmsr tests (fail)
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 21:32:56 +0000 (22:32 +0100)]
add mtmsr tests (fail)

3 years agocheck trap compunit output properly
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 21:18:34 +0000 (22:18 +0100)]
check trap compunit output properly

3 years agocheck msr in trap test, fix OP_RFID
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 21:17:13 +0000 (22:17 +0100)]
check msr in trap test, fix OP_RFID

3 years agoadd an illegal instruction trap test
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 20:54:58 +0000 (21:54 +0100)]
add an illegal instruction trap test

3 years agoset up a trap function for microcode override
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 20:54:42 +0000 (21:54 +0100)]
set up a trap function for microcode override

3 years agobig reorg on PowerDecoder2, actually Decode2Execute1Type
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 15:40:30 +0000 (16:40 +0100)]
big reorg on PowerDecoder2, actually Decode2Execute1Type
plan is to move the decoding of instruction fields closer to the
CompUnits

3 years agostop debug output in power_decoder
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 15:29:35 +0000 (16:29 +0100)]
stop debug output in power_decoder

3 years agocomments in power_regspec_map.py
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 14:36:18 +0000 (15:36 +0100)]
comments in power_regspec_map.py

3 years agocomment on spr2, not needed
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 14:30:58 +0000 (15:30 +0100)]
comment on spr2, not needed

3 years agocheck xer_out not xer_in
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 14:29:27 +0000 (15:29 +0100)]
check xer_out not xer_in

3 years agosplit out Decode2ToExecuteType fields involving registers
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 14:27:23 +0000 (15:27 +0100)]
split out Decode2ToExecuteType fields involving registers
into constants Decode2ToOperand

3 years agosigh read and write xer detection, fix spr and trap compunit tests
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 14:16:13 +0000 (15:16 +0100)]
sigh read and write xer detection, fix spr and trap compunit tests

3 years agocheck spr1 in test spr compunit
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 12:56:44 +0000 (13:56 +0100)]
check spr1 in test spr compunit

3 years agoget/set slow spr in spr test_pipe_caller
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 12:52:38 +0000 (13:52 +0100)]
get/set slow spr in spr test_pipe_caller

3 years agoadd first spr compunit test (not working yet)
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 12:29:29 +0000 (13:29 +0100)]
add first spr compunit test (not working yet)

3 years agoadd SPR test case, commented out for now
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 12:25:46 +0000 (13:25 +0100)]
add SPR test case, commented out for now

3 years agomove valid signal out of Decode2ToExecute1Type and into PowerDecoder2
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 12:18:03 +0000 (13:18 +0100)]
move valid signal out of Decode2ToExecute1Type and into PowerDecoder2

3 years agoadd slow spr regfile regspec support
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 12:12:28 +0000 (13:12 +0100)]
add slow spr regfile regspec support

3 years agoremap SPR PowerISA numbers to internal SPR enum
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 12:04:22 +0000 (13:04 +0100)]
remap SPR PowerISA numbers to internal SPR enum

3 years agocomment out SPR for now, needs SPR regfile
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 11:22:28 +0000 (12:22 +0100)]
comment out SPR for now, needs SPR regfile

3 years agoadd SPR compunit
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 11:18:10 +0000 (12:18 +0100)]
add SPR compunit

3 years agomissing initialisation of disasm_start
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 11:09:08 +0000 (12:09 +0100)]
missing initialisation of disasm_start

3 years agocheck NIA on trap fu test
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 10:52:20 +0000 (11:52 +0100)]
check NIA on trap fu test

3 years agoOP_RFID needs to read SRR0/1, OP_SC needs to write
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 10:52:09 +0000 (11:52 +0100)]
OP_RFID needs to read SRR0/1, OP_SC needs to write

3 years agofix qemu trap test
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 10:34:16 +0000 (11:34 +0100)]
fix qemu trap test

3 years agocater for illegal instruction (generates a trap)
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 23:52:35 +0000 (00:52 +0100)]
cater for illegal instruction (generates a trap)

3 years agoadd sc back in
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 21:35:19 +0000 (22:35 +0100)]
add sc back in

3 years agocomments in trap about exceptions using microcoding
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 21:32:38 +0000 (22:32 +0100)]
comments in trap about exceptions using microcoding

3 years agoadd pspec to test_core.py
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 20:01:34 +0000 (21:01 +0100)]
add pspec to test_core.py

3 years agoadd pspec to test_core.py
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 20:01:04 +0000 (21:01 +0100)]
add pspec to test_core.py

3 years agomore rename spr1/spr2 to fast1/fast2
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 19:56:29 +0000 (20:56 +0100)]
more rename spr1/spr2 to fast1/fast2

3 years agowhitespace
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 19:49:50 +0000 (20:49 +0100)]
whitespace

3 years agomore updating spr1/spr2 to fast1/fast2
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 19:45:45 +0000 (20:45 +0100)]
more updating spr1/spr2 to fast1/fast2

3 years agomore updating spr1/spr2 to fast1/fast2
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 19:44:50 +0000 (20:44 +0100)]
more updating spr1/spr2 to fast1/fast2

3 years agorename spr1/spr2 to fast1/fast2 in branch
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 19:41:00 +0000 (20:41 +0100)]
rename spr1/spr2 to fast1/fast2 in branch

3 years agoupdate trap docstring
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 18:18:05 +0000 (19:18 +0100)]
update trap docstring

3 years agouse new consts module
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 18:01:05 +0000 (19:01 +0100)]
use new consts module

3 years agosorting out trap fastregs
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 17:44:23 +0000 (18:44 +0100)]
sorting out trap fastregs

3 years agosort out trap test reg checking
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 17:14:03 +0000 (18:14 +0100)]
sort out trap test reg checking

3 years agoresolve spr names in ISACaller
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 16:59:52 +0000 (17:59 +0100)]
resolve spr names in ISACaller

3 years agorename spr1 to fast1 in trap data
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 16:52:44 +0000 (17:52 +0100)]
rename spr1 to fast1 in trap data

3 years agosorting out fast/spr naming
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 16:52:20 +0000 (17:52 +0100)]
sorting out fast/spr naming

3 years agooops initialise Function Unit class with idx
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 14:08:52 +0000 (15:08 +0100)]
oops initialise Function Unit class with idx

3 years agoadd first cookie-cut test_trap_compunit.py
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 14:07:39 +0000 (15:07 +0100)]
add first cookie-cut test_trap_compunit.py

3 years agoadd gitignores
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 14:07:19 +0000 (15:07 +0100)]
add gitignores

3 years agodebugging decoding of SPRs (fast)
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 14:04:18 +0000 (15:04 +0100)]
debugging decoding of SPRs (fast)

3 years agoadd spr test, add decode of spr in/out
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 13:19:38 +0000 (14:19 +0100)]
add spr test, add decode of spr in/out

3 years agoadd spr main stage
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 12:22:09 +0000 (13:22 +0100)]
add spr main stage

3 years agoadd spr input record
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 11:59:19 +0000 (12:59 +0100)]
add spr input record

3 years agoadd SPR pipeline
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 11:56:42 +0000 (12:56 +0100)]
add SPR pipeline

3 years agoreduce steps per stage to 8
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 09:50:31 +0000 (10:50 +0100)]
reduce steps per stage to 8

3 years agoset only div/rem supported
Luke Kenneth Casson Leighton [Fri, 3 Jul 2020 03:12:34 +0000 (04:12 +0100)]
set only div/rem supported

3 years agoallow flexible selection of the types of ALUs
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 23:22:00 +0000 (00:22 +0100)]
allow flexible selection of the types of ALUs

3 years agofix unit tests due to change in using pspec
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 23:10:10 +0000 (00:10 +0100)]
fix unit tests due to change in using pspec

3 years agouse Mock class (more convenient)
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 23:09:47 +0000 (00:09 +0100)]
use Mock class (more convenient)

3 years agoallow ALU names to propagate through from FU to CompUnit ALU
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 21:52:52 +0000 (22:52 +0100)]
allow ALU names to propagate through from FU to CompUnit ALU

3 years agoname function unit ALUs
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 21:37:21 +0000 (22:37 +0100)]
name function unit ALUs

3 years agocomment out DIV unit for now
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 19:58:27 +0000 (20:58 +0100)]
comment out DIV unit for now

3 years agoincrease combinatorial stages to 8
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 19:22:32 +0000 (20:22 +0100)]
increase combinatorial stages to 8

3 years agoreduce DIV radix to 1
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 19:17:07 +0000 (20:17 +0100)]
reduce DIV radix to 1

3 years agoadd DIV function unit to compunits
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 18:28:10 +0000 (19:28 +0100)]
add DIV function unit to compunits

3 years agoadd trap function unit into compunits
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 17:59:16 +0000 (18:59 +0100)]
add trap function unit into compunits

3 years agoadd bare wishbone option to TestIssuer, sort out ports
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 17:36:51 +0000 (18:36 +0100)]
add bare wishbone option to TestIssuer, sort out ports

3 years agouse single-arg pspec for TestIssuer and Core
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 13:13:48 +0000 (14:13 +0100)]
use single-arg pspec for TestIssuer and Core

3 years agofirst experimental index.rst for sphinx documentation
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 13:13:09 +0000 (14:13 +0100)]
first experimental index.rst for sphinx documentation

3 years agoadd sphinx doc preliminary start
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 13:12:14 +0000 (14:12 +0100)]
add sphinx doc preliminary start

3 years agoPresent the ALU result only when valid_o is active
Cesar Strauss [Thu, 2 Jul 2020 08:55:59 +0000 (05:55 -0300)]
Present the ALU result only when valid_o is active

This should help to catch latching of invalid data.
Also, better demonstrates the valid / ready protocol.

3 years agowhoops missed some cases in unit test changing ALUHelpers
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 19:41:23 +0000 (20:41 +0100)]
whoops missed some cases in unit test changing ALUHelpers

3 years agominor reorg on how Bus and Config classes are set up
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 19:38:00 +0000 (20:38 +0100)]
minor reorg on how Bus and Config classes are set up

3 years agowhoops swapped trap test instructions accidentally
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 19:16:32 +0000 (20:16 +0100)]
whoops swapped trap test instructions accidentally

3 years agoprint out msr for debug
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 16:47:29 +0000 (17:47 +0100)]
print out msr for debug

3 years agoattempting to add SPRs to rfid test
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 16:41:16 +0000 (17:41 +0100)]
attempting to add SPRs to rfid test

3 years agoadd OP_SC
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 16:14:47 +0000 (17:14 +0100)]
add OP_SC

3 years agotrap test check results
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 15:51:10 +0000 (16:51 +0100)]
trap test check results

3 years agoadd name "test_issuer" to ilang conversion
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 14:36:00 +0000 (15:36 +0100)]
add name "test_issuer" to ilang conversion

3 years agoadd in trap compunit
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 14:34:24 +0000 (15:34 +0100)]
add in trap compunit

3 years agoadd rfid and td/tw trap test
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 14:32:15 +0000 (15:32 +0100)]
add rfid and td/tw trap test

3 years agocontinue debugging trap pipeline
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 12:37:32 +0000 (13:37 +0100)]
continue debugging trap pipeline

3 years agodebugging trap pipeline
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 12:06:42 +0000 (13:06 +0100)]
debugging trap pipeline

3 years agostart running trap unit test, fixing errors
Luke Kenneth Casson Leighton [Wed, 1 Jul 2020 11:21:46 +0000 (12:21 +0100)]
start running trap unit test, fixing errors

3 years agoadd lte ltu for use by twi and other trap functions
Luke Kenneth Casson Leighton [Tue, 30 Jun 2020 14:51:09 +0000 (15:51 +0100)]
add lte ltu for use by twi and other trap functions

3 years agoadd in pseudocode keyword into mdwn isa files
Luke Kenneth Casson Leighton [Tue, 30 Jun 2020 11:31:42 +0000 (12:31 +0100)]
add in pseudocode keyword into mdwn isa files

3 years agocode-morph on div pipeline
Luke Kenneth Casson Leighton [Tue, 30 Jun 2020 10:57:00 +0000 (11:57 +0100)]
code-morph on div pipeline

3 years agoadd README for fu directory
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 21:20:41 +0000 (22:20 +0100)]
add README for fu directory

3 years agouse correct ALUHelpers in div test
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 15:08:16 +0000 (16:08 +0100)]
use correct ALUHelpers in div test

3 years agosort out syntax errors in div
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 15:03:56 +0000 (16:03 +0100)]
sort out syntax errors in div

3 years agofirst unit test for div
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 15:03:46 +0000 (16:03 +0100)]
first unit test for div

3 years agoupdate submodule to fix div bug
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 14:38:20 +0000 (15:38 +0100)]
update submodule to fix div bug

3 years agoadd ignore for parsetab.py
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 14:03:59 +0000 (15:03 +0100)]
add ignore for parsetab.py

3 years agoadd autogenerated do not commit comment
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 14:02:49 +0000 (15:02 +0100)]
add autogenerated do not commit comment

3 years agoupdate submodule to div overflow
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 13:58:43 +0000 (14:58 +0100)]
update submodule to div overflow

3 years agoseparate out divide by zero cases
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 13:40:49 +0000 (14:40 +0100)]
separate out divide by zero cases

3 years agoupdate OV and OV32 ISACaller flags if overflow occurs
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 13:39:27 +0000 (14:39 +0100)]
update OV and OV32 ISACaller flags if overflow occurs

3 years agoattempting to add overflow setting in ISACaller
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 13:29:27 +0000 (14:29 +0100)]
attempting to add overflow setting in ISACaller

3 years agowhoops, hex parser digits are in multiples of 4 bits
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 12:28:08 +0000 (13:28 +0100)]
whoops, hex parser digits are in multiples of 4 bits

3 years agofetch instructions from bare wishbone fetch unit
Luke Kenneth Casson Leighton [Mon, 29 Jun 2020 10:53:25 +0000 (11:53 +0100)]
fetch instructions from bare wishbone fetch unit

3 years agoStart with a simpler test case
Cesar Strauss [Sun, 28 Jun 2020 22:17:31 +0000 (19:17 -0300)]
Start with a simpler test case

Leave other variants (immediate, rdmaskn) for later.

3 years agoLet p.ready_o be active while the test ALU is idle
Cesar Strauss [Sun, 28 Jun 2020 21:38:03 +0000 (18:38 -0300)]
Let p.ready_o be active while the test ALU is idle

The valid/ready protocol doesn't actually forbid p.ready_o
being active while p.valid_i is inactive. It just mean that
the ALU is idle, and is ready to accept new data.

This should help avoiding potential combinatorial loops from
p.ready_o to p.valid_i.

3 years agoadd cached fetch unit pass-through args
Luke Kenneth Casson Leighton [Sun, 28 Jun 2020 21:41:18 +0000 (22:41 +0100)]
add cached fetch unit pass-through args

3 years agoneed args to WishboneArbiter, match data width size
Luke Kenneth Casson Leighton [Sun, 28 Jun 2020 21:38:37 +0000 (22:38 +0100)]
need args to WishboneArbiter, match data width size