Tobias Platen [Tue, 1 Jun 2021 18:23:37 +0000 (20:23 +0200)]
test_ldst_pi.py: add new test case
Tobias Platen [Sat, 29 May 2021 18:46:18 +0000 (20:46 +0200)]
test_ldst_pi.py: first version of test_dcache_random()
Tobias Platen [Sat, 29 May 2021 18:10:15 +0000 (20:10 +0200)]
test_ldst_pi.py: more test_dcache_regression()
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:21:16 +0000 (18:21 +0100)]
adjust PLL connections looking for coriolis2 issue
Luke Kenneth Casson Leighton [Thu, 27 May 2021 12:04:10 +0000 (13:04 +0100)]
corrections on spblock ack
Luke Kenneth Casson Leighton [Thu, 27 May 2021 12:01:42 +0000 (13:01 +0100)]
classic wishbone mode: must not do ack if already acked
Luke Kenneth Casson Leighton [Wed, 26 May 2021 15:10:30 +0000 (16:10 +0100)]
arse. PLL test_issuer clk_sel_i accidentally only 1 bit not 2
Luke Kenneth Casson Leighton [Wed, 26 May 2021 15:09:58 +0000 (16:09 +0100)]
remove err feature from sram4k wb
Luke Kenneth Casson Leighton [Wed, 26 May 2021 13:22:45 +0000 (14:22 +0100)]
add ldst PortInterface misalign unit test (underway)
Luke Kenneth Casson Leighton [Tue, 25 May 2021 11:31:31 +0000 (12:31 +0100)]
rename PLL signals
Tobias Platen [Tue, 25 May 2021 19:00:41 +0000 (21:00 +0200)]
test_ldst_pi.py: fix race condition causing early stop
Tobias Platen [Tue, 25 May 2021 17:22:46 +0000 (19:22 +0200)]
wait_ldok: add debug output count
Luke Kenneth Casson Leighton [Mon, 24 May 2021 17:21:00 +0000 (18:21 +0100)]
whoops sort out name of SPBlock RAM
Luke Kenneth Casson Leighton [Mon, 24 May 2021 17:05:10 +0000 (18:05 +0100)]
change name of submodule to real_pll
Luke Kenneth Casson Leighton [Sat, 22 May 2021 11:55:09 +0000 (12:55 +0100)]
match up PLL names
Cesar Strauss [Sat, 22 May 2021 21:12:48 +0000 (18:12 -0300)]
Remove redundant build step
The pywriter script has already ran, as part of the openpower-isa install.
Cesar Strauss [Sat, 22 May 2021 21:10:02 +0000 (18:10 -0300)]
Include missing step in automated build
The newly added pyfnwriter script needs to run just before pywriter.
Cesar Strauss [Sat, 22 May 2021 20:31:00 +0000 (17:31 -0300)]
Move the reset code outside of the sub-test
Even if a sub-test fails, the core still needs to be reset.
This code does not check any assertions, so it's safe to move it outside.
Luke Kenneth Casson Leighton [Sat, 22 May 2021 10:50:32 +0000 (11:50 +0100)]
update submodule
Luke Kenneth Casson Leighton [Sat, 22 May 2021 10:50:25 +0000 (11:50 +0100)]
update PLL to use Instance
Tobias Platen [Sat, 15 May 2021 17:10:33 +0000 (19:10 +0200)]
test_ldst_pi.py: add dcache regression and random test from test_dcache.py
Luke Kenneth Casson Leighton [Fri, 14 May 2021 19:47:38 +0000 (20:47 +0100)]
add radix MMU "miss" test
Luke Kenneth Casson Leighton [Fri, 14 May 2021 12:04:17 +0000 (13:04 +0100)]
clear out request data on return to idle
Luke Kenneth Casson Leighton [Fri, 14 May 2021 11:09:55 +0000 (12:09 +0100)]
sort out LoadStore1 misalignment FSM, also required test function pi_ld
to be modified to understand exceptions. pi_st TODO
Luke Kenneth Casson Leighton [Fri, 14 May 2021 10:36:19 +0000 (11:36 +0100)]
remove minerva units previously missed in cleanout
Luke Kenneth Casson Leighton [Fri, 14 May 2021 10:30:53 +0000 (11:30 +0100)]
add misaligned load through MMU (which is incorrectly succeeding without error)
Luke Kenneth Casson Leighton [Thu, 13 May 2021 21:12:33 +0000 (22:12 +0100)]
minor rework of wb_get, make generic
Luke Kenneth Casson Leighton [Thu, 13 May 2021 21:02:32 +0000 (22:02 +0100)]
added STORE test in test_ldst_pi.py, and it worked straight off
Luke Kenneth Casson Leighton [Thu, 13 May 2021 21:01:54 +0000 (22:01 +0100)]
update comments in issuer.py regarding a 4th FSM
Luke Kenneth Casson Leighton [Thu, 13 May 2021 19:02:00 +0000 (20:02 +0100)]
yet more debug log stuff for DCache, this time on CacheRam, to discern
which SRAM the read/write request went to
Luke Kenneth Casson Leighton [Thu, 13 May 2021 19:01:20 +0000 (20:01 +0100)]
fix wb_get error where data was being corrupted
(not WB classic compliant)
Luke Kenneth Casson Leighton [Thu, 13 May 2021 17:05:01 +0000 (18:05 +0100)]
add read at different locations in test_ldst_pi.py
Luke Kenneth Casson Leighton [Thu, 13 May 2021 16:46:07 +0000 (17:46 +0100)]
add some data for MMU to actually look up
Luke Kenneth Casson Leighton [Thu, 13 May 2021 16:35:07 +0000 (17:35 +0100)]
ha, hilarious: swapped TLBUpdate output sizes db_out and pb_out.
Luke Kenneth Casson Leighton [Thu, 13 May 2021 15:39:33 +0000 (16:39 +0100)]
whoops TLBIE must *clear* the valid bit not set it. TLBUpdate
Luke Kenneth Casson Leighton [Thu, 13 May 2021 15:38:18 +0000 (16:38 +0100)]
more debug Display in dcache.py
Luke Kenneth Casson Leighton [Thu, 13 May 2021 13:14:43 +0000 (14:14 +0100)]
putting in a lot more debug print statements in DCache, investigation
Luke Kenneth Casson Leighton [Wed, 12 May 2021 19:15:35 +0000 (20:15 +0100)]
add dcache tlb / pte test
Luke Kenneth Casson Leighton [Wed, 12 May 2021 19:04:12 +0000 (20:04 +0100)]
set m_out.load from ldst_r(egister) in LoadStore1
Luke Kenneth Casson Leighton [Wed, 12 May 2021 18:48:23 +0000 (19:48 +0100)]
move dcache unit test to separate test_dcache.py
Luke Kenneth Casson Leighton [Wed, 12 May 2021 18:35:35 +0000 (19:35 +0100)]
experimentation with MMU-enabled LoadStore1 through PortInterface
added was a way to capture a snapshot of the incoming LD/ST request,
so that it can be re-presented after an MMU lookup.
Luke Kenneth Casson Leighton [Wed, 12 May 2021 14:33:04 +0000 (15:33 +0100)]
add debug info, update comments, disable dcache in test
all tracking down bugs in test_ldst_pi.py
Luke Kenneth Casson Leighton [Wed, 12 May 2021 14:07:09 +0000 (15:07 +0100)]
start doing virtual memory queries via PortInterface on LoadStore1
Luke Kenneth Casson Leighton [Wed, 12 May 2021 13:35:55 +0000 (14:35 +0100)]
whoops missing default zero (no idea how)
Luke Kenneth Casson Leighton [Wed, 12 May 2021 12:17:33 +0000 (13:17 +0100)]
addcomments for MMU PortInterface test (how it, um, doesnt actually use PortInterface? :)
Luke Kenneth Casson Leighton [Wed, 12 May 2021 12:15:05 +0000 (13:15 +0100)]
bit of a hack to get test_mmu_dcache_pi.py operational.
if missing data from the mem dictionary in wb_get, return zero
Luke Kenneth Casson Leighton [Wed, 12 May 2021 12:04:51 +0000 (13:04 +0100)]
whitespace
Luke Kenneth Casson Leighton [Wed, 12 May 2021 12:04:37 +0000 (13:04 +0100)]
no need for sel0
Luke Kenneth Casson Leighton [Tue, 11 May 2021 10:59:45 +0000 (11:59 +0100)]
pass through MSR.PR through PortInterface, into LoadStore1
Luke Kenneth Casson Leighton [Tue, 11 May 2021 10:52:53 +0000 (11:52 +0100)]
connect MSR.PR to PortInterface in LDSTCompUnit
Luke Kenneth Casson Leighton [Tue, 11 May 2021 10:46:33 +0000 (11:46 +0100)]
add msr_pr bit in PortInterface
Luke Kenneth Casson Leighton [Tue, 11 May 2021 10:44:42 +0000 (11:44 +0100)]
add MSR to LD/ST Input Record
Luke Kenneth Casson Leighton [Tue, 11 May 2021 10:07:55 +0000 (11:07 +0100)]
comment tidyup
Luke Kenneth Casson Leighton [Tue, 11 May 2021 10:05:57 +0000 (11:05 +0100)]
must also pass through instruction fault exception in LoadStore1
Luke Kenneth Casson Leighton [Tue, 11 May 2021 10:04:25 +0000 (11:04 +0100)]
whoops names changed in MMU FSM
Luke Kenneth Casson Leighton [Tue, 11 May 2021 09:56:56 +0000 (10:56 +0100)]
tidyup comments and remove LoadStore COMPLETE state
Luke Kenneth Casson Leighton [Tue, 11 May 2021 09:53:34 +0000 (10:53 +0100)]
cleanup on exception setting
Luke Kenneth Casson Leighton [Tue, 11 May 2021 09:45:29 +0000 (10:45 +0100)]
rename LoadStore1 data structures back to microwatt names
Luke Kenneth Casson Leighton [Mon, 10 May 2021 23:43:17 +0000 (00:43 +0100)]
add block for MMU activation to LoadStore1
Luke Kenneth Casson Leighton [Mon, 10 May 2021 23:35:18 +0000 (00:35 +0100)]
move LoadStore1 d_validblip setting, and get MMU_LOOKUP to re-run
the dcache request after the MMU_LOOKUP succeeds
Luke Kenneth Casson Leighton [Mon, 10 May 2021 23:25:53 +0000 (00:25 +0100)]
whoops, indentation issue on m.If/m.Else in dcache.py
Tobias Platen [Mon, 10 May 2021 17:41:58 +0000 (19:41 +0200)]
style-wise: use ~self.instr_fault not self.instr_fault==0
Tobias Platen [Mon, 10 May 2021 17:23:19 +0000 (19:23 +0200)]
LoadStore1: add rules for MMU_LOOKUP
Luke Kenneth Casson Leighton [Mon, 10 May 2021 13:15:49 +0000 (14:15 +0100)]
add links to set associative image, and bugreport
Luke Kenneth Casson Leighton [Sun, 9 May 2021 19:41:22 +0000 (20:41 +0100)]
add comments on translation of MMU_LOOKUP
Luke Kenneth Casson Leighton [Sun, 9 May 2021 19:34:39 +0000 (20:34 +0100)]
install MMU_LOOKUP vhdl to be translated to nmigen
Luke Kenneth Casson Leighton [Sun, 9 May 2021 19:32:45 +0000 (20:32 +0100)]
move (unused) ACK_WAIT code into FSM
remove another (unneeded) state, FINISH_LFS
sort-of got ACK_WAIT to flip over to IDLE but done has to be
asserted for longer than necessary. needs investigating
Luke Kenneth Casson Leighton [Sun, 9 May 2021 19:14:28 +0000 (20:14 +0100)]
add comments in LoadStore1
Luke Kenneth Casson Leighton [Sun, 9 May 2021 19:09:45 +0000 (20:09 +0100)]
remove invalid setting of d_in.valid from self.mmureq
Luke Kenneth Casson Leighton [Sun, 9 May 2021 19:05:42 +0000 (20:05 +0100)]
no SECOND_REQ
Luke Kenneth Casson Leighton [Sun, 9 May 2021 19:04:35 +0000 (20:04 +0100)]
remove SECOND_REQ
Tobias Platen [Sun, 9 May 2021 18:57:31 +0000 (20:57 +0200)]
src/soc/fu/ldst/loadstore.py drive output d_in.valid
Tobias Platen [Sun, 9 May 2021 17:00:50 +0000 (19:00 +0200)]
move skeleton to elaborate
Tobias Platen [Sun, 9 May 2021 16:57:55 +0000 (18:57 +0200)]
src/soc/fu/ldst/loadstore.py: add skeleton for fsm
Luke Kenneth Casson Leighton [Sun, 9 May 2021 15:48:29 +0000 (16:48 +0100)]
add comment about LD/ST exception needs copying into PowerDecoder2
Luke Kenneth Casson Leighton [Sun, 9 May 2021 15:47:34 +0000 (16:47 +0100)]
run LD/ST Exception test case for MMU
Luke Kenneth Casson Leighton [Sun, 9 May 2021 14:45:17 +0000 (15:45 +0100)]
add MMU bugtracker link
Luke Kenneth Casson Leighton [Sun, 9 May 2021 14:42:09 +0000 (15:42 +0100)]
git submodule update
Luke Kenneth Casson Leighton [Sun, 9 May 2021 14:34:55 +0000 (15:34 +0100)]
update code-comments
Luke Kenneth Casson Leighton [Sun, 9 May 2021 14:30:25 +0000 (15:30 +0100)]
add in alignment exception capture/reporting in LoadStore1
Luke Kenneth Casson Leighton [Sun, 9 May 2021 12:30:49 +0000 (13:30 +0100)]
preference is to create a temp variable for comb and sync and use that
Luke Kenneth Casson Leighton [Sun, 9 May 2021 12:29:19 +0000 (13:29 +0100)]
add misalign flag to PortInterfaceBase
allows first exception to be generated
Luke Kenneth Casson Leighton [Sat, 8 May 2021 19:17:19 +0000 (20:17 +0100)]
LoadStore1 tidyup
Luke Kenneth Casson Leighton [Sat, 8 May 2021 19:15:34 +0000 (20:15 +0100)]
transferring more over to LoadStore FSM
Luke Kenneth Casson Leighton [Sat, 8 May 2021 19:08:02 +0000 (20:08 +0100)]
start putting state info into LoadStore1, slowly putting loadstore1.vhdl
FSM into LoadStore1
Luke Kenneth Casson Leighton [Sat, 8 May 2021 19:00:10 +0000 (20:00 +0100)]
add LoadStore State enum
Luke Kenneth Casson Leighton [Sat, 8 May 2021 00:43:43 +0000 (01:43 +0100)]
add bugreport link to mmu
Tobias Platen [Fri, 7 May 2021 18:39:37 +0000 (20:39 +0200)]
fix 'sync' referenced before assignment in src/soc/fu/mmu/fsm.py
Luke Kenneth Casson Leighton [Fri, 7 May 2021 17:53:29 +0000 (18:53 +0100)]
start setting DSISR bits but commented out
Luke Kenneth Casson Leighton [Fri, 7 May 2021 12:26:21 +0000 (13:26 +0100)]
update comments and docstrings
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:51:56 +0000 (12:51 +0100)]
whoops, import error
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:51:26 +0000 (12:51 +0100)]
move LoadStore1 class to soc.fu.ldst.loadstore
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:44:07 +0000 (12:44 +0100)]
whoops was still copying output over in CommonOutputStage
for SVP64 pred-zero-dest
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:40:41 +0000 (12:40 +0100)]
how we managed to get this far without noticing that test_runner.py is
not using "with self.subTest" is anyones guess
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:37:17 +0000 (12:37 +0100)]
move dsisr and dar into LoadStore1
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:19:26 +0000 (12:19 +0100)]
move zero-dest-pred in Common Output Stage to not copy target.
this then allows CR0 to set a "zero" bit
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:15:48 +0000 (12:15 +0100)]
whoops setup of core.sv_pred_sm/dm not indented and under "if svp64_en"
Luke Kenneth Casson Leighton [Thu, 6 May 2021 17:52:50 +0000 (18:52 +0100)]
whoops disabled tests agaaaaain
Luke Kenneth Casson Leighton [Thu, 6 May 2021 17:52:24 +0000 (18:52 +0100)]
pass relevant predicate mask bits through to Decoders (PowerDecoderSubset)
at the right time
Luke Kenneth Casson Leighton [Thu, 6 May 2021 17:45:43 +0000 (18:45 +0100)]
add in predicate mask bit detection when zeroing is enabled