Luke Kenneth Casson Leighton [Fri, 29 Jan 2021 14:59:49 +0000 (14:59 +0000)]
add SV etype/ptype to power decoder
Luke Kenneth Casson Leighton [Fri, 29 Jan 2021 12:12:12 +0000 (12:12 +0000)]
whoops syntax error. submodule update
Luke Kenneth Casson Leighton [Fri, 29 Jan 2021 11:56:35 +0000 (11:56 +0000)]
start adding svp64 enums
Luke Kenneth Casson Leighton [Fri, 29 Jan 2021 11:33:22 +0000 (11:33 +0000)]
use new svp64-augmented csv reader in PowerDecoder
Luke Kenneth Casson Leighton [Fri, 29 Jan 2021 11:19:14 +0000 (11:19 +0000)]
whoops missed out "+" on explicit license listing
Luke Kenneth Casson Leighton [Thu, 28 Jan 2021 16:07:29 +0000 (16:07 +0000)]
add SVSTATE to StateRegs
(also fix comments)
Luke Kenneth Casson Leighton [Thu, 28 Jan 2021 15:53:50 +0000 (15:53 +0000)]
add SVState SPR Record, SVSTATERec
Luke Kenneth Casson Leighton [Wed, 27 Jan 2021 18:38:34 +0000 (18:38 +0000)]
add svp64 CR field identification for EXTRA2/3 decoding
Luke Kenneth Casson Leighton [Wed, 27 Jan 2021 18:16:47 +0000 (18:16 +0000)]
move svp64 reg-decode function to more appropriate location
use it in SVP64RM get_svp64_csv to decode EXTRA bit-field positions
Luke Kenneth Casson Leighton [Wed, 27 Jan 2021 12:49:05 +0000 (12:49 +0000)]
provide "merger" of SVP64 RM info into v3.0B CSV files
Tobias Platen [Wed, 27 Jan 2021 19:45:37 +0000 (20:45 +0100)]
use SPR constants
Luke Kenneth Casson Leighton [Wed, 27 Jan 2021 12:38:35 +0000 (12:38 +0000)]
move SVP64RM CSV class to new module
Luke Kenneth Casson Leighton [Wed, 27 Jan 2021 12:35:30 +0000 (12:35 +0000)]
whitespace and shortening of SPR MMU redirection in Power Decoder
Luke Kenneth Casson Leighton [Wed, 27 Jan 2021 12:25:40 +0000 (12:25 +0000)]
also read LDST RM files
Tobias Platen [Tue, 26 Jan 2021 19:37:41 +0000 (20:37 +0100)]
[Bug 580] update comment above changed block
Tobias Platen [Tue, 26 Jan 2021 19:27:40 +0000 (20:27 +0100)]
[Bug 580] redirect MMU SPRs to the MMU
Luke Kenneth Casson Leighton [Mon, 25 Jan 2021 16:23:07 +0000 (16:23 +0000)]
extra comments in svp64
Luke Kenneth Casson Leighton [Sun, 24 Jan 2021 11:35:43 +0000 (11:35 +0000)]
changing svp64 asm syntax to use / instead of . as separators
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 21:43:36 +0000 (21:43 +0000)]
move sanity-checks, add mode into svp64_rm
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 21:39:26 +0000 (21:39 +0000)]
cleanup on aisle 3 - simplify sv_mode svp64
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 21:30:30 +0000 (21:30 +0000)]
check src/dest mask exist if zeroing, svp64
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 20:58:03 +0000 (20:58 +0000)]
add predicate-result svp64 decoding
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 20:50:30 +0000 (20:50 +0000)]
add svp64 saturation decoding
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 20:44:58 +0000 (20:44 +0000)]
start decoding modes in svp64
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 19:19:47 +0000 (19:19 +0000)]
and now for something completely different...
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 19:14:19 +0000 (19:14 +0000)]
add elwidth encoding svp64, add more debug-print
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 18:41:28 +0000 (18:41 +0000)]
add svp64 subvl encoding
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 18:35:33 +0000 (18:35 +0000)]
add in svp64 predicate mask encoding
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 18:03:41 +0000 (18:03 +0000)]
capture CR 3 and 5 bit sv encodings
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 16:01:02 +0000 (16:01 +0000)]
start decoding EXTRA2/3
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 15:38:17 +0000 (15:38 +0000)]
start decoding sv EXTRAs and identifying them
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 15:02:59 +0000 (15:02 +0000)]
start to read RM CSV files
Luke Kenneth Casson Leighton [Sat, 23 Jan 2021 13:23:58 +0000 (13:23 +0000)]
add beginnings of svp64 assembly translator
Luke Kenneth Casson Leighton [Fri, 22 Jan 2021 20:04:31 +0000 (20:04 +0000)]
add example on how to access regs list for cmp
Tobias Platen [Tue, 19 Jan 2021 18:54:45 +0000 (19:54 +0100)]
test_issuer_mmu_data_path.py: test both ld and st instructions
Tobias Platen [Tue, 19 Jan 2021 18:40:07 +0000 (19:40 +0100)]
connect LDSTException to MMU and DCache
Tobias Platen [Tue, 19 Jan 2021 17:21:50 +0000 (18:21 +0100)]
connect wishbone bus to test memory
Tobias Platen [Mon, 18 Jan 2021 19:51:59 +0000 (20:51 +0100)]
uncomment #FIXME in unit_test
Tobias Platen [Mon, 18 Jan 2021 17:25:13 +0000 (18:25 +0100)]
fu/mmu/fsm.py: connect valid and load signals
Tobias Platen [Sun, 17 Jan 2021 16:48:26 +0000 (17:48 +0100)]
add test memory for simulation
Tobias Platen [Sun, 17 Jan 2021 15:59:22 +0000 (16:59 +0100)]
cleanup test_issuer_mmu_data_path.py
Tobias Platen [Sat, 16 Jan 2021 17:31:48 +0000 (18:31 +0100)]
clean up test case for tlbie and dcbz
Tobias Platen [Sat, 16 Jan 2021 16:43:46 +0000 (17:43 +0100)]
move microwatt_mmu bool variable to pspec
Tobias Platen [Sat, 16 Jan 2021 10:00:07 +0000 (11:00 +0100)]
add new unittest: test_issuer_mmu_data_path.py
Tobias Platen [Fri, 15 Jan 2021 18:16:57 +0000 (19:16 +0100)]
cleanup test_non_production_core.py
Tobias Platen [Fri, 15 Jan 2021 18:05:36 +0000 (19:05 +0100)]
add microwatt_mmu boolean variable to core and compunits
Tobias Platen [Fri, 15 Jan 2021 17:56:18 +0000 (18:56 +0100)]
test_non_production_core.py: fix hanging test
Tobias Platen [Fri, 15 Jan 2021 16:50:16 +0000 (17:50 +0100)]
test_non_production_core.py: wire instruction decoder to core
Tobias Platen [Thu, 14 Jan 2021 20:06:55 +0000 (21:06 +0100)]
add test case for mmu+NonProductionCore
Tobias Platen [Sun, 10 Jan 2021 13:05:03 +0000 (14:05 +0100)]
add microwatt mmu config option to compunits.py
Tobias Platen [Fri, 8 Jan 2021 20:11:06 +0000 (21:11 +0100)]
fix broken testcase for simple core
Tobias Platen [Thu, 7 Jan 2021 17:25:48 +0000 (18:25 +0100)]
set initial_sprs, cleanup mfspr testprog
Tobias Platen [Thu, 7 Jan 2021 16:50:28 +0000 (17:50 +0100)]
mfspr is RT, SPR
Tobias Platen [Wed, 6 Jan 2021 18:49:36 +0000 (19:49 +0100)]
first testcase for mmu: case_mfspr_after_invalid_load
Tobias Platen [Wed, 6 Jan 2021 18:26:52 +0000 (19:26 +0100)]
fu/mmu/fsm.py: mfspr!=mtspr
Tobias Platen [Mon, 4 Jan 2021 17:58:31 +0000 (18:58 +0100)]
test_countzero.py: rename output files
Cesar Strauss [Fri, 1 Jan 2021 21:05:38 +0000 (18:05 -0300)]
Add zero CR test case and fix comments
Cesar Strauss [Fri, 1 Jan 2021 20:58:07 +0000 (17:58 -0300)]
Add test cases with rc=1
Checks that the CR port produces results.
Cesar Strauss [Fri, 1 Jan 2021 20:38:57 +0000 (17:38 -0300)]
Make all ports the same size, on the test ALU
The old regspec API can't cope with different port sizes.
The CR port is now changed from 3 to "width" bits (16).
The problem was that cr.ok went into the fourth bit, messing with
the results.
Cesar Strauss [Fri, 1 Jan 2021 18:34:24 +0000 (15:34 -0300)]
Add CR output port to test cases
Test cases can now set rc=1, and expect results in the CR port.
wrmask and dest_delay arrays have incremented their length accordingly.
Cesar Strauss [Fri, 1 Jan 2021 17:46:35 +0000 (14:46 -0300)]
Add CR to the output data port
Cesar Strauss [Fri, 1 Jan 2021 15:06:48 +0000 (12:06 -0300)]
Make output write enables independent of valid_o
Just combinatiorally decode the operation.
This is because MultiCompUnit depends on *_ok being kept valid.
Cesar Strauss [Fri, 1 Jan 2021 14:11:24 +0000 (11:11 -0300)]
Move NOP test case earlier
Better way to see alu_o_ok being disabled during the instruction.
Cesar Strauss [Fri, 1 Jan 2021 12:59:49 +0000 (09:59 -0300)]
Disable data value output on NOP
Cesar Strauss [Fri, 1 Jan 2021 12:54:45 +0000 (09:54 -0300)]
Add condition register (CR) output
Cesar Strauss [Thu, 31 Dec 2020 21:41:18 +0000 (18:41 -0300)]
Implement and test NOP in the test ALU
Change the output port from Signal to Data, to allow for the output to be
masked-out.
Specify a masked-out output in the NOP test case.
Cesar Strauss [Thu, 31 Dec 2020 20:43:34 +0000 (17:43 -0300)]
Don't use OP_NOP for zero-delay subtraction
We are going to implement an actual NOP
Cesar Strauss [Thu, 31 Dec 2020 20:31:41 +0000 (17:31 -0300)]
Test first input port being masked out
Cesar Strauss [Thu, 31 Dec 2020 20:28:05 +0000 (17:28 -0300)]
Sign extend the second input port
Cesar Strauss [Thu, 31 Dec 2020 20:06:56 +0000 (17:06 -0300)]
Test masked-out second input port
Sign extend uses only the first port.
Cesar Strauss [Thu, 31 Dec 2020 19:51:03 +0000 (16:51 -0300)]
Add sign extend to the Test ALU
Cesar Strauss [Thu, 31 Dec 2020 13:36:58 +0000 (10:36 -0300)]
Show rdmaskn and wrmask in GTKWave
Cesar Strauss [Thu, 31 Dec 2020 13:08:41 +0000 (10:08 -0300)]
Use the increment operator
Cesar Strauss [Thu, 31 Dec 2020 13:04:05 +0000 (10:04 -0300)]
Add support for masked write operations
Note that the test ALU currently does not have any masked writes.
Cesar Strauss [Thu, 31 Dec 2020 12:20:13 +0000 (12:20 +0000)]
Clarify reason for holding rdmaskn valid during the entire cycle
Cesar Strauss [Thu, 31 Dec 2020 10:42:27 +0000 (10:42 +0000)]
Remove previous version of the CompUnit parallel unit test
It was too detailed, modeling properties which are better checked by
formal verification.
Other than that, the new version has reached feature parity, so the old
code can finally be removed.
Cesar Strauss [Thu, 31 Dec 2020 10:22:04 +0000 (10:22 +0000)]
Only hold the decoder signals for one cycle, along with issue_i
The exception is rdmaskn, which is not latched, and must be held valid
for the entire instrucion cycle.
Cesar Strauss [Wed, 30 Dec 2020 21:00:38 +0000 (21:00 +0000)]
Test the rdmaskn control signal
The operation issuer now can drive the rdmaskn signals, and check
that the operand fetch on any masked ports is supressed.
Cesar Strauss [Tue, 29 Dec 2020 11:26:29 +0000 (11:26 +0000)]
Remove left-over comments.
The debug signals were removed in a previous commit, but the comment
lines remained.
Luke Kenneth Casson Leighton [Mon, 28 Dec 2020 20:30:34 +0000 (20:30 +0000)]
add CR1 to power_enums
Cesar Strauss [Sun, 20 Dec 2020 14:18:34 +0000 (11:18 -0300)]
Add support for CXXSim simulation
Cesar Strauss [Sun, 13 Dec 2020 18:16:29 +0000 (15:16 -0300)]
Ignore formal verification output in the source directory
This is similarly done in other sister directories.
Cesar Strauss [Sun, 13 Dec 2020 18:03:59 +0000 (15:03 -0300)]
Allow more test cases to be run with CXXSim
Luke Kenneth Casson Leighton [Sat, 12 Dec 2020 16:37:49 +0000 (16:37 +0000)]
skip madd, not implemented
Luke Kenneth Casson Leighton [Wed, 9 Dec 2020 18:13:28 +0000 (18:13 +0000)]
update submodules
Luke Kenneth Casson Leighton [Wed, 9 Dec 2020 18:10:48 +0000 (18:10 +0000)]
update submodules
Cesar Strauss [Mon, 7 Dec 2020 21:44:40 +0000 (18:44 -0300)]
Display the instruction type as a vector on cxxsim
It doesn't support enums traces yet.
Luke Kenneth Casson Leighton [Sun, 6 Dec 2020 19:35:57 +0000 (19:35 +0000)]
attempt to split into two separate GPIO banks due to a coriolis2 compile error
Cesar Strauss [Sun, 6 Dec 2020 12:31:31 +0000 (09:31 -0300)]
Whitespace
Cesar Strauss [Sun, 6 Dec 2020 11:34:35 +0000 (08:34 -0300)]
Update GTKWave documents to work with latest cxxsim
* Hierarchy begins at "top", just like pysim
* Avoid intermediate signals, that work differently on both
* Use the new "submodule" style in write_gtkw
Cesar Strauss [Sat, 5 Dec 2020 12:40:20 +0000 (09:40 -0300)]
Write a GTKWave document to investigate why the proof fails
Cesar Strauss [Sat, 5 Dec 2020 12:37:18 +0000 (09:37 -0300)]
Use the DummyALU regspec and its corresponding OpSubset
Luke Kenneth Casson Leighton [Thu, 3 Dec 2020 16:52:09 +0000 (16:52 +0000)]
put ls180 litex bus width back to 32 bit temporarily
Luke Kenneth Casson Leighton [Thu, 3 Dec 2020 15:51:56 +0000 (15:51 +0000)]
argh issue with yosys ABC
Luke Kenneth Casson Leighton [Thu, 3 Dec 2020 15:34:33 +0000 (15:34 +0000)]
add 3 more 4k SRAMs, change WB bus width to 64 in ls180 litex
Cesar Strauss [Sat, 28 Nov 2020 17:59:30 +0000 (14:59 -0300)]
Fix signal names: go/rel -> go_i/rel_o
Cesar Strauss [Tue, 24 Nov 2020 11:06:30 +0000 (08:06 -0300)]
Fix some typos and whitespace
Cesar Strauss [Tue, 24 Nov 2020 10:53:14 +0000 (07:53 -0300)]
Port the DummyALU test case to the new parallel issuer
In the process, fix its OpSubset to be consistent with the one which is
really used by this ALU.
This required adapting the issuer, to cope with the absence of some fields
in the OpSubset.
Cesar Strauss [Mon, 23 Nov 2020 10:59:42 +0000 (07:59 -0300)]
Results are now a list, so "expected" should follow suit
Cesar Strauss [Mon, 23 Nov 2020 10:40:04 +0000 (07:40 -0300)]
Parameterize the issuer on the number of operands and results
This allows reuse for the DummyALU, which has three operands, but is
otherwise similar to the ALU in terms of operations.
Also, the issuer now creates the producers and consumers.