soc.git
2 years agocode tidyup / comments, and use defaultdict
Luke Kenneth Casson Leighton [Fri, 19 Nov 2021 14:12:34 +0000 (14:12 +0000)]
code tidyup / comments, and use defaultdict

2 years agocreate lists of latches in each FU, to record the read/write register
Luke Kenneth Casson Leighton [Fri, 19 Nov 2021 13:59:38 +0000 (13:59 +0000)]
create lists of latches in each FU, to record the read/write register
numbers required by the FU to read/write to regfiles.

previously, in the FSM-only version, these read/write regnums were
held (globally) by TestIssuer, and because only one instruction was
active, it did not matter.

now with the possibility of multiple instructions being run, it matters
(a lot)

2 years agofor some reason DMI CTRL returns status of 0x6 not 0x0
Luke Kenneth Casson Leighton [Fri, 19 Nov 2021 13:22:05 +0000 (13:22 +0000)]
for some reason DMI CTRL returns status of 0x6 not 0x0

2 years agomissing argument, domain="sync" in JTAG instance
Luke Kenneth Casson Leighton [Fri, 19 Nov 2021 13:17:49 +0000 (13:17 +0000)]
missing argument, domain="sync" in JTAG instance

2 years agoreturn None if data returned is empty
Luke Kenneth Casson Leighton [Fri, 19 Nov 2021 13:17:27 +0000 (13:17 +0000)]
return None if data returned is empty

2 years agoremove combinatorial loop in core instruction conflict detection
Luke Kenneth Casson Leighton [Thu, 18 Nov 2021 23:19:32 +0000 (23:19 +0000)]
remove combinatorial loop in core instruction conflict detection

2 years agoexperimenting with overlapping instructions, bit of a mess
Luke Kenneth Casson Leighton [Thu, 18 Nov 2021 22:52:34 +0000 (22:52 +0000)]
experimenting with overlapping instructions, bit of a mess

2 years agoset up core processing FSM, which captures data if FU is not ready
Luke Kenneth Casson Leighton [Thu, 18 Nov 2021 22:08:00 +0000 (22:08 +0000)]
set up core processing FSM, which captures data if FU is not ready

2 years agoset up a temporary copy of CoreInput
Luke Kenneth Casson Leighton [Thu, 18 Nov 2021 21:40:48 +0000 (21:40 +0000)]
set up a temporary copy of CoreInput
(and fix CoreInput.eq, sigh)

2 years agoexperiment allowing overlap (activated with --allow-overlap) in TestIssuer
Luke Kenneth Casson Leighton [Thu, 18 Nov 2021 21:24:19 +0000 (21:24 +0000)]
experiment allowing overlap (activated with --allow-overlap) in TestIssuer

2 years agoremove unneeded import
Luke Kenneth Casson Leighton [Thu, 18 Nov 2021 13:25:29 +0000 (13:25 +0000)]
remove unneeded import

2 years agostart adding bitmanip FU
Jacob Lifshay [Wed, 17 Nov 2021 20:49:41 +0000 (12:49 -0800)]
start adding bitmanip FU

2 years agoPortInterfaceBase: fix fast exception handling
Tobias Platen [Wed, 17 Nov 2021 18:34:36 +0000 (19:34 +0100)]
PortInterfaceBase: fix fast exception handling

2 years agowhitespace
Tobias Platen [Wed, 17 Nov 2021 18:04:20 +0000 (19:04 +0100)]
whitespace

2 years agoMerge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Wed, 17 Nov 2021 18:03:23 +0000 (19:03 +0100)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc

2 years agofix mistake in test_pi2ls.py
Tobias Platen [Wed, 17 Nov 2021 18:02:38 +0000 (19:02 +0100)]
fix mistake in test_pi2ls.py

2 years agoreading of regfile bitvector added, which activates on a per-FU basis
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 18:01:27 +0000 (18:01 +0000)]
reading of regfile bitvector added, which activates on a per-FU basis
at the regfile read port

this is somewhat complete overkill because strictly speaking the
read should be done at issue time.  fortunately, merging of lots of ORs
results in the exact same thing, just distributed

horribly inefficient though

2 years agocore hazard bitvector regfiles need to be readable
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 17:42:05 +0000 (17:42 +0000)]
core hazard bitvector regfiles need to be readable
immediately (combinatorial) not via sync.  allow synced option to
pass through from VirtualRegPort to RegFileArray

2 years agofixed busy waiting in pi_st
Tobias Platen [Wed, 17 Nov 2021 17:53:54 +0000 (18:53 +0100)]
fixed busy waiting in pi_st

2 years agoadd option to test_issuer.py to allow for overlapping issue of
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 16:23:45 +0000 (16:23 +0000)]
add option to test_issuer.py to allow for overlapping issue of
instructions.  this is for Core hazard detection prior to moving to
an in-order core

2 years agoadd ability to run hazard instruction for test purposes
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 16:15:37 +0000 (16:15 +0000)]
add ability to run hazard instruction for test purposes

2 years agodetect the case in Core bitvector when the Function Unit says:
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 14:44:40 +0000 (14:44 +0000)]
detect the case in Core bitvector when the Function Unit says:
"actually, although you said i *could* write to this regfile
(and therefore have been reserving a write hazard protection for me)
actually i'm not going to write to it."

this situation occurs when:
* at issue time a wrflag (from PowerDecoder decode_regspec_write) was HI
* at ALU output time (alu.n.o_ready) the FU dest.data.ok flag is LOW

under these unusual but perfectly valid circumstances the write hazard
bitvector MUST still be cleared

2 years agoadd probe of whether CompUnit ALU is done or not.
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 14:40:56 +0000 (14:40 +0000)]
add probe of whether CompUnit ALU is done or not.
this is used in core to detect whether the optional situation of
an ALU *maybe* writing to a regfile occurs or not

2 years agomissing optional check on make_hazard_vecs
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 14:10:50 +0000 (14:10 +0000)]
missing optional check on make_hazard_vecs

2 years agomove core hazard set/clear to separate function, for clarity
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 14:08:50 +0000 (14:08 +0000)]
move core hazard set/clear to separate function, for clarity

2 years agowhoops context-indentation by mistake (no harm done, just odd)
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 13:40:08 +0000 (13:40 +0000)]
whoops context-indentation by mistake (no harm done, just odd)

2 years agoadd a FetchOutput pipeline data structure
Luke Kenneth Casson Leighton [Wed, 17 Nov 2021 13:34:52 +0000 (13:34 +0000)]
add a FetchOutput pipeline data structure

2 years agoprint out regfile unary status, bit of name-cleanup
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 19:12:51 +0000 (19:12 +0000)]
print out regfile unary status, bit of name-cleanup

2 years agouse a virtual regfile port for the hazard bitvectors
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 18:54:21 +0000 (18:54 +0000)]
use a virtual regfile port for the hazard bitvectors
this allows a full width of enables and full width of bits
(one per reg being written to)

2 years agopi_ld busy waiting fix
Tobias Platen [Tue, 16 Nov 2021 18:22:53 +0000 (19:22 +0100)]
pi_ld busy waiting fix

2 years agoloadstore1 now reports exception reason
Tobias Platen [Tue, 16 Nov 2021 17:24:59 +0000 (18:24 +0100)]
loadstore1 now reports exception reason

2 years agocreate set/get ports for bitvectors
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 16:29:30 +0000 (16:29 +0000)]
create set/get ports for bitvectors

2 years agocapture write port (wrflag) in byregfiles_spec for use in
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 14:03:28 +0000 (14:03 +0000)]
capture write port (wrflag) in byregfiles_spec for use in
bitvector setting at issue time

2 years agorename regports for bitvectors so that
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 13:36:26 +0000 (13:36 +0000)]
rename regports for bitvectors so that
* read regfile can SET the bitvector
* write regfile can CLEAR the bitvector

2 years agostarting to get write-clear of hazard vectors operating
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 10:29:37 +0000 (10:29 +0000)]
starting to get write-clear of hazard vectors operating

2 years agowhoops, hazard vectors were depth 1 width N
Luke Kenneth Casson Leighton [Tue, 16 Nov 2021 10:28:46 +0000 (10:28 +0000)]
whoops, hazard vectors were depth 1 width N
they need to be regwidth 1 (1 bit wide) depth N (one per register)

2 years agoreport dar on exception + test case
Tobias Platen [Mon, 15 Nov 2021 19:29:13 +0000 (20:29 +0100)]
report dar on exception + test case

2 years agoadd test_loadstore1.py
Tobias Platen [Mon, 15 Nov 2021 18:48:05 +0000 (19:48 +0100)]
add test_loadstore1.py

2 years agoadd quick instructions on how to run pinouts.py to get some debug info
Luke Kenneth Casson Leighton [Sat, 13 Nov 2021 15:11:00 +0000 (15:11 +0000)]
add quick instructions on how to run pinouts.py to get some debug info

2 years agoupdate submodule to make ngi pointer router pinouts
Luke Kenneth Casson Leighton [Sat, 13 Nov 2021 15:08:43 +0000 (15:08 +0000)]
update submodule to make ngi pointer router pinouts

2 years agoadd new get_pinspec_resources function which creates nmigen
Luke Kenneth Casson Leighton [Sat, 13 Nov 2021 15:07:23 +0000 (15:07 +0000)]
add new get_pinspec_resources function which creates nmigen
Resource/Subsignal/Pins suite from the JSON files generated by pinmux

2 years agocode-comment for get_pinspecs()
Luke Kenneth Casson Leighton [Sat, 13 Nov 2021 14:42:05 +0000 (14:42 +0000)]
code-comment for get_pinspecs()

2 years agostart adding hazard vector setting in core (unfinished)
Luke Kenneth Casson Leighton [Sat, 13 Nov 2021 14:41:51 +0000 (14:41 +0000)]
start adding hazard vector setting in core (unfinished)

2 years agodebug prints
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 16:14:58 +0000 (16:14 +0000)]
debug prints

2 years agofix regfile port names for "fast" port access (regreduce=False)
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 16:11:48 +0000 (16:11 +0000)]
fix regfile port names for "fast" port access (regreduce=False)

2 years agoTODO, implement is_dcbz
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 16:10:07 +0000 (16:10 +0000)]
TODO, implement is_dcbz

2 years agocode-comments
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 16:00:22 +0000 (16:00 +0000)]
code-comments

2 years agosplit out core input/output into separate file core_data.py
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 15:56:05 +0000 (15:56 +0000)]
split out core input/output into separate file core_data.py

2 years agoenable hazard vecs in core
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 15:51:39 +0000 (15:51 +0000)]
enable hazard vecs in core

2 years agoadd exact same number - and name - bitvector ports to regfiles
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 14:56:09 +0000 (14:56 +0000)]
add exact same number - and name - bitvector ports to regfiles
for hazard purposes, easier to just have the exact same names
g

2 years agocode-morph regfile port specs to a dictionary format rather than hardcoded
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 14:21:49 +0000 (14:21 +0000)]
code-morph regfile port specs to a dictionary format rather than hardcoded
this allows for Hazard Bit-vector regfiles to be created with exactly
the same regfile port names

2 years agoinvert numbering on CR HDLState.get_crregs
Luke Kenneth Casson Leighton [Thu, 11 Nov 2021 10:29:19 +0000 (10:29 +0000)]
invert numbering on CR HDLState.get_crregs

2 years agoupdate store data reg 10 to 0xfe in virtmode mmu test
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 19:42:53 +0000 (19:42 +0000)]
update store data reg 10 to 0xfe in virtmode mmu test

2 years agoremove read of MSR, it is done by passing through PowerDecoder2
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 19:09:14 +0000 (19:09 +0000)]
remove read of MSR, it is done by passing through PowerDecoder2

2 years agoallow MSR to be set in StateRegs in test_core.py
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 19:01:40 +0000 (19:01 +0000)]
allow MSR to be set in StateRegs in test_core.py

2 years agoadd $Display of oper_r.msr in LDSTCompUnit
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 18:38:08 +0000 (18:38 +0000)]
add $Display of oper_r.msr in LDSTCompUnit

2 years agowhitespace
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 18:26:15 +0000 (18:26 +0000)]
whitespace

2 years agomorph regfiles to add hazard vector make_vecs function
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 18:22:09 +0000 (18:22 +0000)]
morph regfiles to add hazard vector make_vecs function

2 years agoadd fetch of MSR in LD/ST pipe_data
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 18:20:07 +0000 (18:20 +0000)]
add fetch of MSR in LD/ST pipe_data

2 years agoadd debug output for msr_pr
Tobias Platen [Wed, 10 Nov 2021 18:20:06 +0000 (19:20 +0100)]
add debug output for msr_pr

2 years agoMerge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Wed, 10 Nov 2021 17:58:18 +0000 (18:58 +0100)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc

2 years agotest testcase for exception
Tobias Platen [Wed, 10 Nov 2021 17:57:57 +0000 (18:57 +0100)]
test testcase for exception

2 years agomake core busy_o part of the CoreOutput data structure
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 13:41:49 +0000 (13:41 +0000)]
make core busy_o part of the CoreOutput data structure
the FSM TestIssuer can use this to detect not to send anything to it
and the InOrderIssuer can safely ignore it as long as it takes care
of RaW hazards

2 years agoadd a "fu_found" signal to core, which allows for an indicator that
Luke Kenneth Casson Leighton [Wed, 10 Nov 2021 13:23:44 +0000 (13:23 +0000)]
add a "fu_found" signal to core, which allows for an indicator that
no Function Unit (no Reservation Station) is currently available for this
instruction

2 years agoMerge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Tue, 9 Nov 2021 19:43:00 +0000 (20:43 +0100)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc

2 years agotest_issuer_mmu.py: add case_5_allsprs
Tobias Platen [Tue, 9 Nov 2021 19:42:29 +0000 (20:42 +0100)]
test_issuer_mmu.py: add case_5_allsprs

2 years agoadd core instruction-issue PriorityPickers
Luke Kenneth Casson Leighton [Tue, 9 Nov 2021 17:49:30 +0000 (17:49 +0000)]
add core instruction-issue PriorityPickers

this got more complicated than expected.  it should have been dead easy:
* identify each type of ALU (Logical, Shift, Mul)
* create a list per type of ALU of all Function Units providing that Function
* create a PriorityPicker for each type of ALU
* pick one
* shove that into the "issue" of the picked Function Unit.

where that went wrong was nothing to do with issue, it was to do with the
selection of the register files.

a return result from connect_instruction is a dictionary of "enabled"
bits, one per FU, giving permission for that FU to perform read/write
access to regfile ports.

however with the fu_bitdict changing from "continuously-enabled" over
to "single-pulse indicating issue", the read/write ports were no longer
requested.

to fix this, an *additional* dictionary was created: fu_selected, which
has the OR of the FU issue *and* the FU "busy" signal, which will be
HI for the whole time that the FU is active (even including the first
issue cycle: normally busy_o only goes active one cycle *after* issue
is blipped)

thus in theory, although in practice it will not happen, the read/write
ports could be requested immediately the instruction is issued.

2 years agocomments
Luke Kenneth Casson Leighton [Tue, 9 Nov 2021 12:50:32 +0000 (12:50 +0000)]
comments

2 years agocore.py: create a dictionary of lists of Function Units capable of
Luke Kenneth Casson Leighton [Tue, 9 Nov 2021 12:49:54 +0000 (12:49 +0000)]
core.py: create a dictionary of lists of Function Units capable of
dealing with a particular instruction (by power_enums Function: ALU, MMU, DIV
LOGICAL etc.)

2 years agocreate function core conect_satellite_decoders
Luke Kenneth Casson Leighton [Tue, 9 Nov 2021 12:38:25 +0000 (12:38 +0000)]
create function core conect_satellite_decoders
just moving code from elaborate to make it clearer

2 years agoadd cancel in to alu_ok / alu_valid in LDSTCompUnit
Luke Kenneth Casson Leighton [Tue, 9 Nov 2021 00:39:04 +0000 (00:39 +0000)]
add cancel in to alu_ok / alu_valid in LDSTCompUnit

2 years agorename LDSTCompUnit cancel to canceln (because it is active low)
Luke Kenneth Casson Leighton [Tue, 9 Nov 2021 00:34:42 +0000 (00:34 +0000)]
rename LDSTCompUnit cancel to canceln (because it is active low)

2 years agowhoops must remember to do rdmaskn on LDSTCompUnit as well
Luke Kenneth Casson Leighton [Tue, 9 Nov 2021 00:27:05 +0000 (00:27 +0000)]
whoops must remember to do rdmaskn on LDSTCompUnit as well

2 years agoremove unit test that is unfinished
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 23:54:02 +0000 (23:54 +0000)]
remove unit test that is unfinished

2 years agoshorter way of getting FU busy signals
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 23:48:05 +0000 (23:48 +0000)]
shorter way of getting FU busy signals

2 years agoMultiCompUnit fixed to not need rdmask to be sustained indefinitely
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 23:42:21 +0000 (23:42 +0000)]
MultiCompUnit fixed to not need rdmask to be sustained indefinitely
only needs to be set on input (when issue is raised)

2 years agoin MultiCompUnit, put rdmaskn into src latch rather than OR in src release
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 23:38:58 +0000 (23:38 +0000)]
in MultiCompUnit, put rdmaskn into src latch rather than OR in src release
this allows rdmaskn to be set just once rather than left permanently
on.  but, it does mean that the internal src register latches end up
having the wrong (previous) output, which then bleed through into
ALUs.

to stop that, the src data latches are all set to zero if the CompUnit
is not busy

2 years agommu unit test working again
Tobias Platen [Mon, 8 Nov 2021 20:02:07 +0000 (21:02 +0100)]
mmu unit test working again

2 years agoremove unused variable
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 16:37:51 +0000 (16:37 +0000)]
remove unused variable

2 years agocode comments
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 16:34:57 +0000 (16:34 +0000)]
code comments

2 years agocomments
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 16:17:26 +0000 (16:17 +0000)]
comments

2 years agoremove issue_i from core, use i_valid instead to decide when to issue
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 14:36:09 +0000 (14:36 +0000)]
remove issue_i from core, use i_valid instead to decide when to issue
converting core to Pipeline API

2 years agomove "exception happened" detection from TestIssuer to Core
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 14:19:14 +0000 (14:19 +0000)]
move "exception happened" detection from TestIssuer to Core

2 years agouse p.i_valid in core instead of explicit signal ivalid_i
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 14:14:43 +0000 (14:14 +0000)]
use p.i_valid in core instead of explicit signal ivalid_i
converting core to Pipeline API

2 years agouse Pipeline API o_ready instead of explicit core busy_o signal
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 14:08:05 +0000 (14:08 +0000)]
use Pipeline API o_ready instead of explicit core busy_o signal
converting core.py to Pipeline API

2 years agoconvert core.py to Pipeline API, deriving from ControlBase
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 13:59:16 +0000 (13:59 +0000)]
convert core.py to Pipeline API, deriving from ControlBase

2 years agoremove unneeded imports
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 13:45:10 +0000 (13:45 +0000)]
remove unneeded imports

2 years agomove simple core input and output data to in/out data structures
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 11:12:40 +0000 (11:12 +0000)]
move simple core input and output data to in/out data structures

2 years agomake FSMDivCoreStage properly conform to Stage API
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 22:39:24 +0000 (22:39 +0000)]
make FSMDivCoreStage properly conform to Stage API
added ispec and ospec functions, no need to explicitly set
self.p_i_data and self.n.o_data because that is the job of the Stage API

2 years agoadd hazard vectors to Regfiles
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 15:40:17 +0000 (15:40 +0000)]
add hazard vectors to Regfiles
the reason for adding it to Regfiles is because both In-Order and OoO
need global hazard vectors.

in the case of In-Order the hazard vector bits are set directly by the
Issue Engine.

in the case of Out-of-Order the vector bits are set by way of an
amalgamation (Great Big Or Gate) of the columns from the DMs

in either case the vectors are needed, so might as well be added to Regfiles

2 years agoadd quick test of regfiles to output rtlil
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 15:17:32 +0000 (15:17 +0000)]
add quick test of regfiles to output rtlil

2 years agoswitch over to single-entry (num_rows=1) ReservationStation2 based
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 13:45:41 +0000 (13:45 +0000)]
switch over to single-entry (num_rows=1) ReservationStation2 based
MultiCompUnit

this is effectively identical to FunctionUnitBaseSingle behaviour except
that now there is the possibility of increasing the number of rows
(number of "fronts" to the ALU) to 2 or greater

DIV FSM, Trap and SPR as well as LDST have been left alone

2 years agofor some reason mul test cases had not been added to test_issuer
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 13:40:33 +0000 (13:40 +0000)]
for some reason mul test cases had not been added to test_issuer

2 years agoadding an FSM-based MultiCompUnit test (does not work yet)
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 12:57:12 +0000 (12:57 +0000)]
adding an FSM-based MultiCompUnit test (does not work yet)

2 years agoremove some of the uses of wrmask (redundant)
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 12:29:53 +0000 (12:29 +0000)]
remove some of the uses of wrmask (redundant)
https://bugs.libre-soc.org/show_bug.cgi?id=742

in MultiCompUnit, wrmask is the amalgamation of the incoming "data ok"
signals from an ALU.  ALUs are given the *option* to write to registers:
they are not told, "you absolutely have to write to this register"
but of course for Hazard purposes, the MultiCompUnit has to be told
to "hold" off the write until such time as the ALU can determine whether
it has anything to write

it _should_ now be possible for the ReservationStation version of
FunctionUnit to use combinatorial-setting of write data+ok

2 years agoupdate test_issuer_mmu.py testcase, add needed debug outputs
Tobias Platen [Sat, 6 Nov 2021 14:14:47 +0000 (15:14 +0100)]
update test_issuer_mmu.py testcase, add needed debug outputs

2 years agotlbie, mtspr and mfspr test cases
Tobias Platen [Fri, 5 Nov 2021 20:18:53 +0000 (21:18 +0100)]
tlbie, mtspr and mfspr test cases

2 years agoadd mmu/dcache unit test
Tobias Platen [Fri, 5 Nov 2021 19:15:16 +0000 (20:15 +0100)]
add mmu/dcache unit test

2 years agouse ReservationStations2 (disabled for now)
Luke Kenneth Casson Leighton [Thu, 4 Nov 2021 19:11:28 +0000 (19:11 +0000)]
use ReservationStations2 (disabled for now)

2 years agowrite-ok is expected to stay valid *after* being set,
Luke Kenneth Casson Leighton [Thu, 4 Nov 2021 19:07:37 +0000 (19:07 +0000)]
write-ok is expected to stay valid *after* being set,
working out what is going on here