soc.git
3 years agoadjust indentation of dcache_slow
Luke Kenneth Casson Leighton [Mon, 7 Sep 2020 13:11:32 +0000 (14:11 +0100)]
adjust indentation of dcache_slow

3 years agomore dcache translation
Luke Kenneth Casson Leighton [Mon, 7 Sep 2020 13:01:22 +0000 (14:01 +0100)]
more dcache translation

3 years agoadd start on cache_ram.vhdl to nmigen conversion
Luke Kenneth Casson Leighton [Mon, 7 Sep 2020 12:24:42 +0000 (13:24 +0100)]
add start on cache_ram.vhdl to nmigen conversion

3 years agomore dcache translation
Luke Kenneth Casson Leighton [Mon, 7 Sep 2020 12:22:45 +0000 (13:22 +0100)]
more dcache translation

3 years agoallow Decode2ToExecute1Type to take an opkls argument
Luke Kenneth Casson Leighton [Mon, 7 Sep 2020 11:00:36 +0000 (12:00 +0100)]
allow Decode2ToExecute1Type to take an opkls argument

3 years agowhoops truncated the mb and me fields
Luke Kenneth Casson Leighton [Mon, 7 Sep 2020 10:58:30 +0000 (11:58 +0100)]
whoops truncated the mb and me fields

3 years agominor reorg on PowerDecoder
Luke Kenneth Casson Leighton [Mon, 7 Sep 2020 00:01:39 +0000 (01:01 +0100)]
minor reorg on PowerDecoder

3 years agocomment, nothing unusual when Trap Type is DEC
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 21:31:17 +0000 (22:31 +0100)]
comment, nothing unusual when Trap Type is DEC

3 years agodecoder immediate b split out to DecodeBImm
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 21:21:09 +0000 (22:21 +0100)]
decoder immediate b split out to DecodeBImm

3 years agodecoder immediate a split out to DecodeAImm
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 21:16:00 +0000 (22:16 +0100)]
decoder immediate a split out to DecodeAImm

3 years agoadd row subset selector for PowerDecode.
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 20:42:51 +0000 (21:42 +0100)]
add row subset selector for PowerDecode.
allows functions to be used to create subset decoders

3 years agoadd row_subset (doesnt do anything yet)
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 20:22:09 +0000 (21:22 +0100)]
add row_subset (doesnt do anything yet)

3 years agopass col_subset throughout PowerDecoder
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 20:15:32 +0000 (21:15 +0100)]
pass col_subset throughout PowerDecoder

3 years agoreorganise PowerOp to be dynamic
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 19:59:48 +0000 (20:59 +0100)]
reorganise PowerOp to be dynamic

3 years agoreorg of PowerOp to be able to dynamically subset it
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 19:33:16 +0000 (20:33 +0100)]
reorg of PowerOp to be able to dynamically subset it

3 years agogrr, autopep8 messing up
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 19:19:03 +0000 (20:19 +0100)]
grr, autopep8 messing up

3 years agocopy dec SPR into decoder cur_state
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 18:46:41 +0000 (19:46 +0100)]
copy dec SPR into decoder cur_state

3 years agoadd reset option to Register
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 18:43:40 +0000 (19:43 +0100)]
add reset option to Register

3 years agowark-wark, fast regs is binary-addressed
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 17:00:31 +0000 (18:00 +0100)]
wark-wark, fast regs is binary-addressed

3 years agoadd unit test for slow SPRs (SPRG0/1)
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 16:49:20 +0000 (17:49 +0100)]
add unit test for slow SPRs (SPRG0/1)
add test mapping for slow SPR numbers

3 years agominor code-munge on SPR-to-FAST mapping
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 16:35:02 +0000 (17:35 +0100)]
minor code-munge on SPR-to-FAST mapping

3 years agouse with subTest in spr unit test
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 16:34:13 +0000 (17:34 +0100)]
use with subTest in spr unit test

3 years agoredo generation of microwatt.v from litex
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 16:33:48 +0000 (17:33 +0100)]
redo generation of microwatt.v from litex

3 years agoadd comments for DEC / TB
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 12:08:57 +0000 (13:08 +0100)]
add comments for DEC / TB

3 years agoadd a DEC/TB FSM to TestIssuer
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 11:56:48 +0000 (12:56 +0100)]
add a DEC/TB FSM to TestIssuer

this operates on alternative cycles, because it reads/writes from the
Fast Regfile directly

3 years agomove DEC and TB from StateRegs to FastRegs for several reasons
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 11:50:47 +0000 (12:50 +0100)]
move DEC and TB from StateRegs to FastRegs for several reasons
first: SPR pipeline already has fast1 read/write
second: a new DecodeStateIn/Out object would be needed
        instead just add FastRegs.DEC/TB to DecodeA/Out
third: there is probably a third somewhere

3 years agoadd DEC SPR to CoreState and PowerDecoder, activate 0x900 interrupt
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 11:13:16 +0000 (12:13 +0100)]
add DEC SPR to CoreState and PowerDecoder, activate 0x900 interrupt

3 years agoadd DEC and TB to State regfile
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 11:11:45 +0000 (12:11 +0100)]
add DEC and TB to State regfile

3 years agoadd DEC/TB SPRs to spr pipeline
Luke Kenneth Casson Leighton [Sun, 6 Sep 2020 11:11:25 +0000 (12:11 +0100)]
add DEC/TB SPRs to spr pipeline

3 years agoadd comments on MSR read
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 20:43:04 +0000 (21:43 +0100)]
add comments on MSR read

3 years agomove GPIO IRQ to 15 to match microwatt modifications
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 20:25:56 +0000 (21:25 +0100)]
move GPIO IRQ to 15 to match microwatt modifications

3 years agohmmm XICS data being asserted on wb bus for too long
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 19:52:35 +0000 (20:52 +0100)]
hmmm XICS data being asserted on wb bus for too long

3 years agoargh missed a VHDL "&" translating to Cat
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 19:44:49 +0000 (20:44 +0100)]
argh missed a VHDL "&" translating to Cat

3 years agoreduce XICS address lookup by 2 bits
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 18:06:37 +0000 (19:06 +0100)]
reduce XICS address lookup by 2 bits

3 years agoMSR read in INSN_READ only occurs for 1 cycle
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 17:15:36 +0000 (18:15 +0100)]
MSR read in INSN_READ only occurs for 1 cycle

3 years agosync on ICP eint
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 16:58:00 +0000 (17:58 +0100)]
sync on ICP eint

3 years agoconnect XICS core irq to Decode2 eint
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 16:35:17 +0000 (17:35 +0100)]
connect XICS core irq to Decode2 eint

3 years agowhoops, combinatorial loop on pending_priority
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 16:20:15 +0000 (17:20 +0100)]
whoops, combinatorial loop on pending_priority

3 years agouse stbcix in test
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 16:10:26 +0000 (17:10 +0100)]
use stbcix in test

3 years agoXICS addresses in words: divide by 4
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 16:07:04 +0000 (17:07 +0100)]
XICS addresses in words: divide by 4

3 years agowhoops, ICS in litex sim needs to be 0x1000 size region
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 15:38:56 +0000 (16:38 +0100)]
whoops, ICS in litex sim needs to be 0x1000 size region

3 years agoadd lwzcix unit test
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 15:38:40 +0000 (16:38 +0100)]
add lwzcix unit test

3 years agoincrease wishbone address width to 29 for xics and gpio
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 15:32:23 +0000 (16:32 +0100)]
increase wishbone address width to 29 for xics and gpio
this may not be exactly correct, have to see how it goes

3 years agosubmodule update
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 14:17:24 +0000 (15:17 +0100)]
submodule update

3 years agoadd simple GPIO wishbone bus to litex sim.py
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 14:03:21 +0000 (15:03 +0100)]
add simple GPIO wishbone bus to litex sim.py

3 years agoadd stbcix and lwzcix to power_enum list
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 14:02:53 +0000 (15:02 +0100)]
add stbcix and lwzcix to power_enum list

3 years agoadd simple GPIO peripheral to verilog TestIssuer
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 13:38:08 +0000 (14:38 +0100)]
add simple GPIO peripheral to verilog TestIssuer

3 years agomove wb read/write to separate util test library and use them
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 13:30:46 +0000 (14:30 +0100)]
move wb read/write to separate util test library and use them

3 years agoadd simple wishbone GPIO peripheral
Luke Kenneth Casson Leighton [Sat, 5 Sep 2020 13:27:30 +0000 (14:27 +0100)]
add simple wishbone GPIO peripheral

3 years agoAdd unit test replicating failing proof case
Samuel A. Falvo II [Sat, 5 Sep 2020 00:23:06 +0000 (17:23 -0700)]
Add unit test replicating failing proof case

3 years agoadd sld test with RB=64 to see what happens
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 23:48:23 +0000 (00:48 +0100)]
add sld test with RB=64 to see what happens

3 years agoreduce CSR data width to 8 as an experiment
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 23:48:08 +0000 (00:48 +0100)]
reduce CSR data width to 8 as an experiment

3 years agoadd UART reserved IRQ @ 0
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 19:56:44 +0000 (20:56 +0100)]
add UART reserved IRQ @ 0

3 years agoadd XICS memory regions, shrink litex CSR memmap size to do it
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 19:48:30 +0000 (20:48 +0100)]
add XICS memory regions, shrink litex CSR memmap size to do it

3 years agoadding XICS wb slave devices to litex sim
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 19:03:02 +0000 (20:03 +0100)]
adding XICS wb slave devices to litex sim
also linking external interrupt line

3 years agobring out XICS ICS interrupt levels so that they can be wired to peripherals
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 15:16:40 +0000 (16:16 +0100)]
bring out XICS ICS interrupt levels so that they can be wired to peripherals

3 years agoadding option to include XICS external interrupts.
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 15:11:10 +0000 (16:11 +0100)]
adding option to include XICS external interrupts.
XICS ICP and ICS are included, the wishbone slave ports added to TestIssuer
then if ext_irq is raised in core, execution jumps to 0x500 through a TRAP

3 years agoadd means to run hello_world.bin under simulation
Luke Kenneth Casson Leighton [Fri, 4 Sep 2020 12:01:09 +0000 (13:01 +0100)]
add means to run hello_world.bin under simulation
works with both microwatt and libresoc

3 years agoupdate to match refactored power-instruction-analyzer API
Jacob Lifshay [Fri, 4 Sep 2020 04:32:56 +0000 (21:32 -0700)]
update to match refactored power-instruction-analyzer API

matches the api of power-instruction-analyzer commit e828d2acecc25a82d5c29b765163a10993547566

3 years agoProvide full name and email in copyright notice.
Samuel A. Falvo II [Thu, 3 Sep 2020 22:12:58 +0000 (15:12 -0700)]
Provide full name and email in copyright notice.

3 years agodo more on dcache conversion
Luke Kenneth Casson Leighton [Thu, 3 Sep 2020 19:29:21 +0000 (20:29 +0100)]
do more on dcache conversion

3 years agotesting microwatt 3.bin (2.bin ok)
Luke Kenneth Casson Leighton [Thu, 3 Sep 2020 07:45:23 +0000 (08:45 +0100)]
testing microwatt 3.bin (2.bin ok)

3 years agowhen mtocrf FXM is 0, the CR has to be set to CR7
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 22:08:27 +0000 (23:08 +0100)]
when mtocrf FXM is 0, the CR has to be set to CR7

3 years agofix bug in cmpli (and cmplw)
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 17:48:34 +0000 (18:48 +0100)]
fix bug in cmpli (and cmplw)

3 years agosign-extend lhax needs 16-64, separate from lwax which is 32-64
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 16:48:17 +0000 (17:48 +0100)]
sign-extend lhax needs 16-64, separate from lwax which is 32-64

3 years agoadd bc ctr regression test when CTR=0 and CTR=1
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 16:38:03 +0000 (17:38 +0100)]
add bc ctr regression test when CTR=0 and CTR=1

3 years agoupdate submodule
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 14:13:31 +0000 (15:13 +0100)]
update submodule

3 years agobug in carry32 handling in OP_CMP
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 14:13:22 +0000 (15:13 +0100)]
bug in carry32 handling in OP_CMP

3 years agoadd cmpl regression test (one binary, one assembly)
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 14:13:06 +0000 (15:13 +0100)]
add cmpl regression test (one binary, one assembly)

3 years agoadd cmpl microwatt 1.bin test, cmpl
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 11:44:15 +0000 (12:44 +0100)]
add cmpl microwatt 1.bin test, cmpl

3 years agoseries of extensive modifications to fix long-standing bug in CR handling
Luke Kenneth Casson Leighton [Wed, 2 Sep 2020 11:32:38 +0000 (12:32 +0100)]
series of extensive modifications to fix long-standing bug in CR handling
cr as a FieldSelectableInt is being removed

3 years agoadd XER to fastregs and "construct" it in mfspr/mtspr
Luke Kenneth Casson Leighton [Mon, 31 Aug 2020 11:06:24 +0000 (12:06 +0100)]
add XER to fastregs and "construct" it in mfspr/mtspr

3 years agoredo OP_CMP based on microwatt. L=1 had been ignored
Luke Kenneth Casson Leighton [Sun, 30 Aug 2020 19:49:58 +0000 (20:49 +0100)]
redo OP_CMP based on microwatt.  L=1 had been ignored

3 years agoreversal of FXM mask for one-hot selection in OP_MTCR decode
Luke Kenneth Casson Leighton [Sun, 30 Aug 2020 14:45:03 +0000 (15:45 +0100)]
reversal of FXM mask for one-hot selection in OP_MTCR decode

3 years agoworking on dcache.py
Luke Kenneth Casson Leighton [Sun, 30 Aug 2020 12:05:36 +0000 (13:05 +0100)]
working on dcache.py

3 years agotidyup on mul proof
Luke Kenneth Casson Leighton [Sun, 30 Aug 2020 10:00:37 +0000 (11:00 +0100)]
tidyup on mul proof

3 years agoset mul post_stage o.ok only when needed, and fix xer_so pass-through
Luke Kenneth Casson Leighton [Sun, 30 Aug 2020 09:51:30 +0000 (10:51 +0100)]
set mul post_stage o.ok only when needed, and fix xer_so pass-through
https://bugs.libre-soc.org/show_bug.cgi?id=482

3 years agoMerge branch 'master' of git.libre-soc.org:soc
Cole Poirier [Sun, 30 Aug 2020 03:24:22 +0000 (20:24 -0700)]
Merge branch 'master' of git.libre-soc.org:soc

3 years agoicache.py commit progress, about a third through the process
Cole Poirier [Sun, 30 Aug 2020 03:23:18 +0000 (20:23 -0700)]
icache.py commit progress, about a third through the process

3 years agoQualify XER_OV output in proof
Samuel A. Falvo II [Sat, 29 Aug 2020 23:53:49 +0000 (16:53 -0700)]
Qualify XER_OV output in proof

3 years agoFix test breakage in MUL proofs
Samuel A. Falvo II [Sat, 29 Aug 2020 23:27:54 +0000 (16:27 -0700)]
Fix test breakage in MUL proofs

3 years agoMerge branch 'master' of git.libre-soc.org:soc
Cole Poirier [Sat, 29 Aug 2020 22:58:31 +0000 (15:58 -0700)]
Merge branch 'master' of git.libre-soc.org:soc

3 years agommu.py, dcache.py, mem_types.py change types capitalization because I
Cole Poirier [Sat, 29 Aug 2020 22:56:15 +0000 (15:56 -0700)]
mmu.py, dcache.py, mem_types.py change types capitalization because I
was making typing errors, and this make more sense. Mmu -> MMU, Dcache
-> DCache, Icache -> ICache

3 years agomem_types add more types from common.vhdl specifially for icache,
Cole Poirier [Sat, 29 Aug 2020 22:41:07 +0000 (15:41 -0700)]
mem_types add more types from common.vhdl specifially for icache,
Fetch1ToIcacheType() and IcacheToDecode1Type()

3 years agomem_types.py arrange in alphabetical order for ease of reference, align
Cole Poirier [Sat, 29 Aug 2020 22:32:38 +0000 (15:32 -0700)]
mem_types.py arrange in alphabetical order for ease of reference, align
formatting

3 years agoBROKEN: xer_ov_o != dut.o.xer_ov.data ???!!!
Samuel A. Falvo II [Sat, 29 Aug 2020 22:24:15 +0000 (15:24 -0700)]
BROKEN: xer_ov_o != dut.o.xer_ov.data ???!!!

3 years agommu.py remove duplicate comment left over from mmu.vhdl
Cole Poirier [Sat, 29 Aug 2020 22:06:01 +0000 (15:06 -0700)]
mmu.py remove duplicate comment left over from mmu.vhdl

3 years agoicache.py initial commit of first attempt at translation of icache.vhdl
Cole Poirier [Sat, 29 Aug 2020 22:02:56 +0000 (15:02 -0700)]
icache.py initial commit of first attempt at translation of icache.vhdl

3 years agoMove new write_gtkw and its example to nmutil
Cesar Strauss [Fri, 28 Aug 2020 09:55:10 +0000 (06:55 -0300)]
Move new write_gtkw and its example to nmutil

But keep using it to generate the GTKWave document for this unit test.

3 years agominor code-shuffle, comments
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 19:56:29 +0000 (20:56 +0100)]
minor code-shuffle, comments

3 years agoslowly morphing towards using an XER bit-field selector in decoder
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 19:42:35 +0000 (20:42 +0100)]
slowly morphing towards using an XER bit-field selector in decoder

3 years agoMUL pipeline formal proofs complete, I *think*.
Samuel A. Falvo II [Sat, 29 Aug 2020 19:41:30 +0000 (12:41 -0700)]
MUL pipeline formal proofs complete, I *think*.

3 years agobreak down XER into flags
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 18:54:23 +0000 (19:54 +0100)]
break down XER into flags

3 years agoadd XER read via DMI interface to sim.py
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 18:47:40 +0000 (19:47 +0100)]
add XER read via DMI interface to sim.py

3 years agoadd hack to get at XER through DMI interface
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 18:41:49 +0000 (19:41 +0100)]
add hack to get at XER through DMI interface

3 years agosubmodule update
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 18:29:16 +0000 (19:29 +0100)]
submodule update

3 years agoWIP: prep for 64-bit insns
Samuel A. Falvo II [Sat, 29 Aug 2020 17:28:12 +0000 (10:28 -0700)]
WIP: prep for 64-bit insns

3 years agoyep disable OE for MULH64/32 and EXTS and CNTZ
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 16:18:10 +0000 (17:18 +0100)]
yep disable OE for MULH64/32 and EXTS and CNTZ

3 years agoinvestigating CR mtocrf / mfocrf
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 15:27:23 +0000 (16:27 +0100)]
investigating CR mtocrf / mfocrf

3 years agoadd additional CR regression tests
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 13:19:48 +0000 (14:19 +0100)]
add additional CR regression tests