forked from Github_Repos/cvw
		
	Merge branch 'main' of https://github.com/davidharrishmc/riscv-wally into main
This commit is contained in:
		
						commit
						fb8984c8cf
					
				
							
								
								
									
										42
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								README.md
									
									
									
									
									
								
							@ -3,44 +3,4 @@ Configurable RISC-V Processor
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Wally is a 5-stage pipelined processor configurable to support all the standard RISC-V options, incluidng RV32/64, A, C, F, D, and M extensions, FENCE.I, and the various privileged modes and CSRs.  It is written in SystemVerilog.  It passes the RISC-V Arch Tests and Imperas tests.  As of October 2021, it boots the first 10 million instructions of Buildroot Linux.
 | 
					Wally is a 5-stage pipelined processor configurable to support all the standard RISC-V options, incluidng RV32/64, A, C, F, D, and M extensions, FENCE.I, and the various privileged modes and CSRs.  It is written in SystemVerilog.  It passes the RISC-V Arch Tests and Imperas tests.  As of October 2021, it boots the first 10 million instructions of Buildroot Linux.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To use Wally on Linux:
 | 
					See Chapter 2 of draft book of how to install and compile tests.
 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
git clone https://github.com/davidharrishmc/riscv-wally --recurse-submodules
 | 
					 | 
				
			||||||
cd riscv-wally
 | 
					 | 
				
			||||||
cd addins
 | 
					 | 
				
			||||||
cd riscv-isa-sim
 | 
					 | 
				
			||||||
*** replace these with a copy from ../install/F and ../install/D containing the Makefile.includes already updated
 | 
					 | 
				
			||||||
cp -r arch_test_target/spike/device/rv32i_m/I arch_test_target/spike/device/rv32i_m/F
 | 
					 | 
				
			||||||
<edit arch_test_target/spike/device/rv32i_m/F/Makefile.include line 35 and change --isa=rv32i to --isa=rv32if>
 | 
					 | 
				
			||||||
cp -r arch_test_target/spike/device/rv64i_m/I arch_test_target/spike/device/rv64i_m/D
 | 
					 | 
				
			||||||
<edit arch_test_target/spike/device/rv64i_m/D/Makefile.include line 35 and change --isa=rv64i to --isa=rv64id>
 | 
					 | 
				
			||||||
mkdir build
 | 
					 | 
				
			||||||
cd build
 | 
					 | 
				
			||||||
set RISCV=/cad/riscv/gcc/bin   (or whatever your path is)
 | 
					 | 
				
			||||||
../configure --prefix=$RISCV
 | 
					 | 
				
			||||||
make (this will take a while to build SPIKE)
 | 
					 | 
				
			||||||
sudo make install
 | 
					 | 
				
			||||||
cd ../../riscv-arch-test
 | 
					 | 
				
			||||||
cp ../riscv-isa-sim/arch_test_target/spike/Makefile.include .
 | 
					 | 
				
			||||||
edit Makefile.include
 | 
					 | 
				
			||||||
  change line with TARGETDIR to /home/harris/riscv-wally/addins/riscv-isa-sim/arch_test_target (or whatever your path is) 
 | 
					 | 
				
			||||||
  add line export RISCV_PREFIX = riscv64-unknown-elf-  # this might not be needed if you have 32-bit versions of the riscv gcc compiler built separately
 | 
					 | 
				
			||||||
make
 | 
					 | 
				
			||||||
make XLEN=32
 | 
					 | 
				
			||||||
exe2memfile.pl work/*/*/*.elf  # converts ELF files to a format that can be read by Modelsim
 | 
					 | 
				
			||||||
cd ../../tests
 | 
					 | 
				
			||||||
cd imperas-riscv-tests
 | 
					 | 
				
			||||||
make
 | 
					 | 
				
			||||||
cd ../wally-riscv-arch-test
 | 
					 | 
				
			||||||
make
 | 
					 | 
				
			||||||
make XLEN=32
 | 
					 | 
				
			||||||
exe2memfile.pl work/*/*/*.elf  # converts ELF files to a format that can be read by Modelsim
 | 
					 | 
				
			||||||
cd ../linux-testgen/linux-testvectors
 | 
					 | 
				
			||||||
./tvLinker.sh
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Notes:
 | 
					 | 
				
			||||||
Eventually download imperas-riscv-tests separately
 | 
					 | 
				
			||||||
Move our custom tests to another directory
 | 
					 | 
				
			||||||
Eventually replace exe2memfile.pl with objcopy
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -40,11 +40,11 @@ add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/
 | 
				
			|||||||
add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallE
 | 
					add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallE
 | 
				
			||||||
add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallM
 | 
					add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallM
 | 
				
			||||||
add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallW
 | 
					add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallW
 | 
				
			||||||
add wave -noupdate -expand -group {instruction pipeline} /testbench/InstrFName
 | 
					add wave -noupdate -group {instruction pipeline} /testbench/InstrFName
 | 
				
			||||||
add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/FinalInstrRawF
 | 
					add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/FinalInstrRawF
 | 
				
			||||||
add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/InstrD
 | 
					add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/InstrD
 | 
				
			||||||
add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/InstrE
 | 
					add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/InstrE
 | 
				
			||||||
add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/InstrM
 | 
					add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/InstrM
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/PCD
 | 
					add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/PCD
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/InstrD
 | 
					add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/InstrD
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/InstrDName
 | 
					add wave -noupdate -group {Decode Stage} /testbench/InstrDName
 | 
				
			||||||
@ -53,14 +53,14 @@ add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ieu/c/RegWriteD
 | 
				
			|||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ieu/dp/RdD
 | 
					add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ieu/dp/RdD
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ieu/dp/Rs1D
 | 
					add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ieu/dp/Rs1D
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ieu/dp/Rs2D
 | 
					add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ieu/dp/Rs2D
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} /testbench/dut/hart/ifu/PCE
 | 
					add wave -noupdate -group {Execution Stage} /testbench/dut/hart/ifu/PCE
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} /testbench/ExpectedPCE
 | 
					add wave -noupdate -group {Execution Stage} /testbench/ExpectedPCE
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} /testbench/MepcExpected
 | 
					add wave -noupdate -group {Execution Stage} /testbench/MepcExpected
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} /testbench/dut/hart/ifu/InstrE
 | 
					add wave -noupdate -group {Execution Stage} /testbench/dut/hart/ifu/InstrE
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} /testbench/InstrEName
 | 
					add wave -noupdate -group {Execution Stage} /testbench/InstrEName
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} /testbench/dut/hart/ieu/c/InstrValidE
 | 
					add wave -noupdate -group {Execution Stage} /testbench/dut/hart/ieu/c/InstrValidE
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} /testbench/textE
 | 
					add wave -noupdate -group {Execution Stage} /testbench/textE
 | 
				
			||||||
add wave -noupdate -expand -group {Execution Stage} -color {Cornflower Blue} /testbench/FunctionName/FunctionName
 | 
					add wave -noupdate -group {Execution Stage} -color {Cornflower Blue} /testbench/FunctionName/FunctionName
 | 
				
			||||||
add wave -noupdate -expand -group {Memory Stage} /testbench/checkInstrM
 | 
					add wave -noupdate -expand -group {Memory Stage} /testbench/checkInstrM
 | 
				
			||||||
add wave -noupdate -expand -group {Memory Stage} /testbench/dut/hart/PCM
 | 
					add wave -noupdate -expand -group {Memory Stage} /testbench/dut/hart/PCM
 | 
				
			||||||
add wave -noupdate -expand -group {Memory Stage} /testbench/ExpectedPCM
 | 
					add wave -noupdate -expand -group {Memory Stage} /testbench/ExpectedPCM
 | 
				
			||||||
@ -122,12 +122,12 @@ add wave -noupdate -group Bpred -expand -group {bp wrong} /testbench/dut/hart/if
 | 
				
			|||||||
add wave -noupdate -group Bpred -expand -group {bp wrong} /testbench/dut/hart/ifu/bpred/bpred/BPPredClassNonCFIWrongE
 | 
					add wave -noupdate -group Bpred -expand -group {bp wrong} /testbench/dut/hart/ifu/bpred/bpred/BPPredClassNonCFIWrongE
 | 
				
			||||||
add wave -noupdate -group Bpred -expand -group {bp wrong} /testbench/dut/hart/ifu/bpred/bpred/BPPredWrongE
 | 
					add wave -noupdate -group Bpred -expand -group {bp wrong} /testbench/dut/hart/ifu/bpred/bpred/BPPredWrongE
 | 
				
			||||||
add wave -noupdate -group Bpred /testbench/dut/hart/ifu/bpred/bpred/BPPredWrongE
 | 
					add wave -noupdate -group Bpred /testbench/dut/hart/ifu/bpred/bpred/BPPredWrongE
 | 
				
			||||||
add wave -noupdate -expand -group PCS /testbench/dut/hart/ifu/PCNextF
 | 
					add wave -noupdate -group PCS /testbench/dut/hart/ifu/PCNextF
 | 
				
			||||||
add wave -noupdate -expand -group PCS /testbench/dut/hart/PCF
 | 
					add wave -noupdate -group PCS /testbench/dut/hart/PCF
 | 
				
			||||||
add wave -noupdate -expand -group PCS /testbench/dut/hart/ifu/PCD
 | 
					add wave -noupdate -group PCS /testbench/dut/hart/ifu/PCD
 | 
				
			||||||
add wave -noupdate -expand -group PCS /testbench/dut/hart/PCE
 | 
					add wave -noupdate -group PCS /testbench/dut/hart/PCE
 | 
				
			||||||
add wave -noupdate -expand -group PCS /testbench/dut/hart/PCM
 | 
					add wave -noupdate -group PCS /testbench/dut/hart/PCM
 | 
				
			||||||
add wave -noupdate -expand -group PCS /testbench/PCW
 | 
					add wave -noupdate -group PCS /testbench/PCW
 | 
				
			||||||
add wave -noupdate -group {PCNext Generation} /testbench/dut/hart/ifu/PCNextF
 | 
					add wave -noupdate -group {PCNext Generation} /testbench/dut/hart/ifu/PCNextF
 | 
				
			||||||
add wave -noupdate -group {PCNext Generation} /testbench/dut/hart/ifu/PCF
 | 
					add wave -noupdate -group {PCNext Generation} /testbench/dut/hart/ifu/PCF
 | 
				
			||||||
add wave -noupdate -group {PCNext Generation} /testbench/dut/hart/ifu/PCPlus2or4F
 | 
					add wave -noupdate -group {PCNext Generation} /testbench/dut/hart/ifu/PCPlus2or4F
 | 
				
			||||||
@ -170,28 +170,21 @@ add wave -noupdate -group {alu execution stage} /testbench/dut/hart/ieu/dp/Write
 | 
				
			|||||||
add wave -noupdate -group {alu execution stage} /testbench/dut/hart/ieu/dp/ALUResultE
 | 
					add wave -noupdate -group {alu execution stage} /testbench/dut/hart/ieu/dp/ALUResultE
 | 
				
			||||||
add wave -noupdate -group {alu execution stage} /testbench/dut/hart/ieu/dp/SrcAE
 | 
					add wave -noupdate -group {alu execution stage} /testbench/dut/hart/ieu/dp/SrcAE
 | 
				
			||||||
add wave -noupdate -group {alu execution stage} /testbench/dut/hart/ieu/dp/SrcBE
 | 
					add wave -noupdate -group {alu execution stage} /testbench/dut/hart/ieu/dp/SrcBE
 | 
				
			||||||
add wave -noupdate -expand -group icache -color Gold /testbench/dut/hart/ifu/icache/icache/icachefsm/CurrState
 | 
					add wave -noupdate -group icache -color Gold /testbench/dut/hart/ifu/icache/icache/cachefsm/CurrState
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/ITLBMissF
 | 
					add wave -noupdate -group icache /testbench/dut/hart/ifu/icache/icache/ReadDataWord
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/ITLBWriteF
 | 
					add wave -noupdate -group icache /testbench/dut/hart/ifu/icache/icache/SelAdr
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/ReadLineF
 | 
					add wave -noupdate -group icache /testbench/dut/hart/ifu/icache/icache/LsuAdrE
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/SelAdr
 | 
					add wave -noupdate -group icache /testbench/dut/hart/ifu/icache/icache/LsuPAdrM
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/PCNextF
 | 
					add wave -noupdate -group icache /testbench/dut/hart/ifu/icache/icache/RAdr
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/PCF
 | 
					add wave -noupdate -group icache /testbench/dut/hart/ifu/icache/icache/PreLsuPAdrM
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/RAdr
 | 
					add wave -noupdate -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/CacheHit
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/PCPF
 | 
					add wave -noupdate -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/CacheStall
 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/PCPSpillF
 | 
					add wave -noupdate -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/ReadDataLineSets
 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/hit
 | 
					add wave -noupdate -group icache -expand -group memory /testbench/dut/hart/ifu/IfuBusAdr
 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/spill
 | 
					add wave -noupdate -group icache -expand -group memory /testbench/dut/hart/ifu/IfuBusHRDATA
 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/ICacheStallF
 | 
					add wave -noupdate -group icache -expand -group memory /testbench/dut/hart/ifu/IfuBusAck
 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/spillSave
 | 
					add wave -noupdate -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/CacheMemWriteData
 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/spillSave
 | 
					add wave -noupdate -group icache /testbench/dut/hart/ifu/SpillSupport/SpillDataLine0
 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/FinalInstrRawF
 | 
					 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group memory /testbench/dut/hart/ifu/IfuBusAdr
 | 
					 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group memory /testbench/dut/hart/ifu/IfuBusHRDATA
 | 
					 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group memory /testbench/dut/hart/ifu/IfuBusAck
 | 
					 | 
				
			||||||
add wave -noupdate -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/ICacheMemWriteData
 | 
					 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/ICacheMemReadData
 | 
					 | 
				
			||||||
add wave -noupdate -expand -group icache /testbench/dut/hart/ifu/icache/icache/SpillDataBlock0
 | 
					 | 
				
			||||||
add wave -noupdate -group AHB -color Gold /testbench/dut/hart/ebu/BusState
 | 
					add wave -noupdate -group AHB -color Gold /testbench/dut/hart/ebu/BusState
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/hart/ebu/NextBusState
 | 
					add wave -noupdate -group AHB /testbench/dut/hart/ebu/NextBusState
 | 
				
			||||||
add wave -noupdate -group AHB -expand -group {input requests} /testbench/dut/hart/ebu/AtomicMaskedM
 | 
					add wave -noupdate -group AHB -expand -group {input requests} /testbench/dut/hart/ebu/AtomicMaskedM
 | 
				
			||||||
@ -221,132 +214,132 @@ add wave -noupdate -expand -group lsu -color Gold /testbench/dut/hart/lsu/MEM_VI
 | 
				
			|||||||
add wave -noupdate -expand -group lsu /testbench/dut/hart/lsu/SelHPTW
 | 
					add wave -noupdate -expand -group lsu /testbench/dut/hart/lsu/SelHPTW
 | 
				
			||||||
add wave -noupdate -expand -group lsu /testbench/dut/hart/lsu/InterlockStall
 | 
					add wave -noupdate -expand -group lsu /testbench/dut/hart/lsu/InterlockStall
 | 
				
			||||||
add wave -noupdate -expand -group lsu /testbench/dut/hart/lsu/LSUStall
 | 
					add wave -noupdate -expand -group lsu /testbench/dut/hart/lsu/LSUStall
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -color Gold /testbench/dut/hart/lsu/dcache/dcache/dcachefsm/CurrState
 | 
					add wave -noupdate -expand -group lsu /testbench/dut/hart/lsu/LsuBusAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/FinalWriteDataM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -color Gold /testbench/dut/hart/lsu/dcache/dcache/cachefsm/CurrState
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMBlockWriteEnableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/FinalWriteData
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordWriteEnableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMLineWriteEnableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWayWriteEnable
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordWriteEnableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordEnable
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWayWriteEnable
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMBlockWayWriteEnableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordEnable
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/SelAdrM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SelAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/MEM_VIRTMEM/SelReplayCPURequest
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/MEM_VIRTMEM/SelReplayCPURequest
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/IEUAdrE
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/IEUAdrE
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/IEUAdrM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/IEUAdrM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/RAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/RAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group flush -radix unsigned /testbench/dut/hart/lsu/dcache/dcache/FlushAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush -radix unsigned /testbench/dut/hart/lsu/dcache/dcache/FlushAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group flush /testbench/dut/hart/lsu/dcache/dcache/FlushWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/CacheBusAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group flush /testbench/dut/hart/lsu/dcache/dcache/DCacheBusAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/WordCount
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group flush /testbench/dut/hart/lsu/WordCount
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group flush /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/FlushAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/DCacheMemWriteData
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/FlushAdrQ
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/FlushWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/IgnoreRequest
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/CacheMemWriteData
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetValid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/IgnoreRequest
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/CacheTagMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetValid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/DirtyBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetDirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ValidBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/CacheTagMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/DirtyBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ValidBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/DirtyBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/ValidBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/DirtyBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/ValidBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/WriteWordEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/SetDirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/CacheTagMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[0]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/WriteWordEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[0]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/CacheTagMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[1]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[0]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[1]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[0]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[2]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[1]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[2]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[1]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[2]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[2]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetValid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/CacheTagMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetValid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/DirtyBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetDirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/ValidBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/CacheTagMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/DirtyBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/ValidBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetValid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ClearDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetValid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/VDWriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetDirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/CacheTagMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ClearDirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/DirtyBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/VDWriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ValidBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/CacheTagMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[0]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/DirtyBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[0]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ValidBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[1]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[0]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[1]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[0]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[2]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[1]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[2]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[1]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[3]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[2]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[3]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[2]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/SetValid
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[3]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/ClearValid
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way3 -expand -group Way3Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/word[3]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/SetDirty
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/SetValid
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/ClearDirty
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/ClearValid
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/RAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/SetDirty
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/WayHit}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group valid/dirty /testbench/dut/hart/lsu/dcache/dcache/ClearDirty
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/Valid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/RAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/Dirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/WayHit}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ReadTag}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/Valid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/WayHit}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/Dirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/Valid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ReadTag}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/Dirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/WayHit}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/ReadTag}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/Valid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/WayHit}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/Dirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/Valid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/ReadTag}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/Dirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/WayHit}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/ReadTag}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/Valid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/WayHit}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/Dirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/Valid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/ReadTag}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/Dirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/WayHit}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ReadTag}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/Valid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/Dirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/ReadDataWordM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ReadTag}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/ReadDataWord
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirty
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuRWM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuAdrE
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirty
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/IEUAdrM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/RW
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuPAdrM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuAdrE
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/IEUAdrM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/FlushDCacheM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuPAdrM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/FinalWriteDataM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/ReadDataWordM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/FlushCache
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/DCacheStall
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/FinalWriteData
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group status /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/ReadDataWord
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group status -color {Medium Orchid} /testbench/dut/hart/lsu/dcache/dcache/CacheHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/CacheStall
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -group status /testbench/dut/hart/lsu/WordCount
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group status /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheBusAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group status -color {Medium Orchid} /testbench/dut/hart/lsu/dcache/dcache/CacheHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheFetchLine
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group status /testbench/dut/hart/lsu/WordCount
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheWriteLine
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheBusAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheBusAck
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheFetchLine
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/ReadDataBlockSetsM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheWriteLine
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheMemWriteData
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheBusAck
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dcache /testbench/dut/hart/lsu/dcache/dcache/FlushWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheMemWriteData
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/EffectivePrivilegeMode
 | 
					add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/EffectivePrivilegeMode
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/Translate
 | 
					add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/Translate
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/DisableTranslation
 | 
					add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/DisableTranslation
 | 
				
			||||||
@ -382,20 +375,20 @@ add wave -noupdate -expand -group lsu -group pmp /testbench/dut/hart/lsu/dmmu/dm
 | 
				
			|||||||
add wave -noupdate -expand -group lsu -group pmp /testbench/dut/hart/lsu/dmmu/dmmu/pmpchecker/pmpchecker/W
 | 
					add wave -noupdate -expand -group lsu -group pmp /testbench/dut/hart/lsu/dmmu/dmmu/pmpchecker/pmpchecker/W
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group pmp /testbench/dut/hart/lsu/dmmu/dmmu/pmpchecker/pmpchecker/X
 | 
					add wave -noupdate -expand -group lsu -group pmp /testbench/dut/hart/lsu/dmmu/dmmu/pmpchecker/pmpchecker/X
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group pmp /testbench/dut/hart/lsu/dmmu/dmmu/pmpchecker/pmpchecker/L
 | 
					add wave -noupdate -expand -group lsu -group pmp /testbench/dut/hart/lsu/dmmu/dmmu/pmpchecker/pmpchecker/L
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker -color Gold /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/WalkerState
 | 
					add wave -noupdate -expand -group lsu -group ptwalker -color Gold /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/WalkerState
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/PCF
 | 
					add wave -noupdate -expand -group lsu -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/PCF
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/HPTWAdr
 | 
					add wave -noupdate -expand -group lsu -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/HPTWAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/HPTWReadPTE
 | 
					add wave -noupdate -expand -group lsu -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/HPTWReadPTE
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/HPTWAdr
 | 
					add wave -noupdate -expand -group lsu -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/HPTWAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/PTE
 | 
					add wave -noupdate -expand -group lsu -group ptwalker /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/PTE
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/ITLBMissF
 | 
					add wave -noupdate -expand -group lsu -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/ITLBMissF
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/DTLBMissM
 | 
					add wave -noupdate -expand -group lsu -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/DTLBMissM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/ITLBWriteF
 | 
					add wave -noupdate -expand -group lsu -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/ITLBWriteF
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/DTLBWriteM
 | 
					add wave -noupdate -expand -group lsu -group ptwalker -expand -group types /testbench/dut/hart/lsu/MEM_VIRTMEM/hptw/DTLBWriteM
 | 
				
			||||||
add wave -noupdate -expand -group itlb /testbench/dut/hart/ifu/immu/TLBWrite
 | 
					add wave -noupdate -group itlb /testbench/dut/hart/ifu/immu/TLBWrite
 | 
				
			||||||
add wave -noupdate -expand -group itlb /testbench/dut/hart/ifu/ITLBMissF
 | 
					add wave -noupdate -group itlb /testbench/dut/hart/ifu/ITLBMissF
 | 
				
			||||||
add wave -noupdate -expand -group itlb /testbench/dut/hart/ifu/immu/PhysicalAddress
 | 
					add wave -noupdate -group itlb /testbench/dut/hart/ifu/immu/PhysicalAddress
 | 
				
			||||||
add wave -noupdate -expand -group itlb /testbench/dut/hart/ifu/immu/PMAInstrAccessFaultF
 | 
					add wave -noupdate -group itlb /testbench/dut/hart/ifu/immu/PMAInstrAccessFaultF
 | 
				
			||||||
add wave -noupdate -group plic /testbench/dut/uncore/plic/plic/HCLK
 | 
					add wave -noupdate -group plic /testbench/dut/uncore/plic/plic/HCLK
 | 
				
			||||||
add wave -noupdate -group plic /testbench/dut/uncore/plic/plic/HSELPLIC
 | 
					add wave -noupdate -group plic /testbench/dut/uncore/plic/plic/HSELPLIC
 | 
				
			||||||
add wave -noupdate -group plic /testbench/dut/uncore/plic/plic/HADDR
 | 
					add wave -noupdate -group plic /testbench/dut/uncore/plic/plic/HADDR
 | 
				
			||||||
@ -459,11 +452,11 @@ add wave -noupdate -group uart -expand -group outputs /testbench/dut/uncore/uart
 | 
				
			|||||||
add wave -noupdate -group uart -expand -group outputs /testbench/dut/uncore/uart/uart/INTR
 | 
					add wave -noupdate -group uart -expand -group outputs /testbench/dut/uncore/uart/uart/INTR
 | 
				
			||||||
add wave -noupdate -group uart -expand -group outputs /testbench/dut/uncore/uart/uart/TXRDYb
 | 
					add wave -noupdate -group uart -expand -group outputs /testbench/dut/uncore/uart/uart/TXRDYb
 | 
				
			||||||
add wave -noupdate -group uart -expand -group outputs /testbench/dut/uncore/uart/uart/RXRDYb
 | 
					add wave -noupdate -group uart -expand -group outputs /testbench/dut/uncore/uart/uart/RXRDYb
 | 
				
			||||||
add wave -noupdate -expand -group UART /testbench/dut/uncore/uart/uart/HCLK
 | 
					add wave -noupdate -group UART /testbench/dut/uncore/uart/uart/HCLK
 | 
				
			||||||
add wave -noupdate -expand -group UART /testbench/dut/uncore/uart/uart/HSELUART
 | 
					add wave -noupdate -group UART /testbench/dut/uncore/uart/uart/HSELUART
 | 
				
			||||||
add wave -noupdate -expand -group UART /testbench/dut/uncore/uart/uart/HADDR
 | 
					add wave -noupdate -group UART /testbench/dut/uncore/uart/uart/HADDR
 | 
				
			||||||
add wave -noupdate -expand -group UART /testbench/dut/uncore/uart/uart/HWRITE
 | 
					add wave -noupdate -group UART /testbench/dut/uncore/uart/uart/HWRITE
 | 
				
			||||||
add wave -noupdate -expand -group UART /testbench/dut/uncore/uart/uart/HWDATA
 | 
					add wave -noupdate -group UART /testbench/dut/uncore/uart/uart/HWDATA
 | 
				
			||||||
add wave -noupdate -group {debug trace} -expand -group mem -color Yellow /testbench/dut/hart/FlushW
 | 
					add wave -noupdate -group {debug trace} -expand -group mem -color Yellow /testbench/dut/hart/FlushW
 | 
				
			||||||
add wave -noupdate -group {debug trace} -expand -group mem /testbench/checkInstrM
 | 
					add wave -noupdate -group {debug trace} -expand -group mem /testbench/checkInstrM
 | 
				
			||||||
add wave -noupdate -group {debug trace} -expand -group mem /testbench/dut/hart/PCM
 | 
					add wave -noupdate -group {debug trace} -expand -group mem /testbench/dut/hart/PCM
 | 
				
			||||||
@ -491,9 +484,25 @@ add wave -noupdate /testbench/dut/uncore/uart/uart/u/DLAB
 | 
				
			|||||||
add wave -noupdate /testbench/dut/hart/ifu/temp
 | 
					add wave -noupdate /testbench/dut/hart/ifu/temp
 | 
				
			||||||
add wave -noupdate /testbench/dut/hart/ifu/BPPredWrongM
 | 
					add wave -noupdate /testbench/dut/hart/ifu/BPPredWrongM
 | 
				
			||||||
add wave -noupdate /testbench/dut/hart/ifu/InvalidateICacheM
 | 
					add wave -noupdate /testbench/dut/hart/ifu/InvalidateICacheM
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu /testbench/dut/hart/ifu/PCF
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu /testbench/dut/hart/ifu/PostSpillInstrRawF
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu /testbench/dut/hart/ifu/IfuStallF
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group {Bus FSM} -color Gold /testbench/dut/hart/ifu/busfsm/BusCurrState
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group {Bus FSM} /testbench/dut/hart/ifu/BusStall
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group {Bus FSM} -color Orange /testbench/dut/hart/ifu/IfuBusRead
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group {Bus FSM} /testbench/dut/hart/ifu/IfuBusAdr
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group {Bus FSM} -color Orange /testbench/dut/hart/ifu/IfuBusAck
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group {Bus FSM} /testbench/dut/hart/ifu/IfuBusHRDATA
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group Spills /testbench/dut/hart/ifu/SpillSupport/Spill
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group ifu -expand -group Spills -color Gold /testbench/dut/hart/ifu/SpillSupport/CurrState
 | 
				
			||||||
 | 
					add wave -noupdate /testbench/dut/hart/lsu/LsuBusAdr
 | 
				
			||||||
 | 
					add wave -noupdate /testbench/dut/hart/lsu/LsuBusWrite
 | 
				
			||||||
 | 
					add wave -noupdate /testbench/dut/hart/lsu/LsuBusHWDATA
 | 
				
			||||||
 | 
					add wave -noupdate /testbench/dut/hart/lsu/LsuBusAck
 | 
				
			||||||
 | 
					add wave -noupdate /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
				
			||||||
TreeUpdate [SetDefaultTree]
 | 
					TreeUpdate [SetDefaultTree]
 | 
				
			||||||
WaveRestoreCursors {{Cursor 11} {37040373 ns} 1} {{Cursor 4} {37089727 ns} 1} {{Cursor 5} {37034476 ns} 1} {{Cursor 6} {37024155 ns} 0}
 | 
					WaveRestoreCursors {{Cursor 6} {5187387 ns} 1} {{Cursor 5} {5144964 ns} 0}
 | 
				
			||||||
quietly wave cursor active 4
 | 
					quietly wave cursor active 2
 | 
				
			||||||
configure wave -namecolwidth 250
 | 
					configure wave -namecolwidth 250
 | 
				
			||||||
configure wave -valuecolwidth 314
 | 
					configure wave -valuecolwidth 314
 | 
				
			||||||
configure wave -justifyvalue left
 | 
					configure wave -justifyvalue left
 | 
				
			||||||
@ -508,4 +517,4 @@ configure wave -griddelta 40
 | 
				
			|||||||
configure wave -timeline 0
 | 
					configure wave -timeline 0
 | 
				
			||||||
configure wave -timelineunits ns
 | 
					configure wave -timelineunits ns
 | 
				
			||||||
update
 | 
					update
 | 
				
			||||||
WaveRestoreZoom {37024043 ns} {37024259 ns}
 | 
					WaveRestoreZoom {5144901 ns} {5145101 ns}
 | 
				
			||||||
 | 
				
			|||||||
@ -37,11 +37,11 @@ add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/
 | 
				
			|||||||
add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallE
 | 
					add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallE
 | 
				
			||||||
add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallM
 | 
					add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallM
 | 
				
			||||||
add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallW
 | 
					add wave -noupdate -group HDU -expand -group Stall -color Orange /testbench/dut/hart/StallW
 | 
				
			||||||
add wave -noupdate -group {instruction pipeline} /testbench/InstrFName
 | 
					add wave -noupdate -expand -group {instruction pipeline} /testbench/InstrFName
 | 
				
			||||||
add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/FinalInstrRawF
 | 
					add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/FinalInstrRawF
 | 
				
			||||||
add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/InstrD
 | 
					add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/InstrD
 | 
				
			||||||
add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/InstrE
 | 
					add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/InstrE
 | 
				
			||||||
add wave -noupdate -group {instruction pipeline} /testbench/dut/hart/ifu/InstrM
 | 
					add wave -noupdate -expand -group {instruction pipeline} /testbench/dut/hart/ifu/InstrM
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/PCD
 | 
					add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/PCD
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/InstrD
 | 
					add wave -noupdate -group {Decode Stage} /testbench/dut/hart/ifu/InstrD
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/InstrDName
 | 
					add wave -noupdate -group {Decode Stage} /testbench/InstrDName
 | 
				
			||||||
@ -190,40 +190,47 @@ add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu
 | 
				
			|||||||
add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusWrite
 | 
					add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusWrite
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusAck
 | 
					add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusAck
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusHRDATA
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusHWDATA
 | 
					add wave -noupdate -expand -group lsu -expand -group bus /testbench/dut/hart/lsu/LsuBusHWDATA
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -color Gold /testbench/dut/hart/lsu/dcache/dcache/dcachefsm/CurrState
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -color Gold /testbench/dut/hart/lsu/dcache/dcache/cachefsm/CurrState
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMBlockWriteEnableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMLineWriteEnableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordWriteEnableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordWriteEnableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWayWriteEnable
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWayWriteEnable
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordEnable
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMWordEnable
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMBlockWayWriteEnableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SRAMLineWayWriteEnableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SelAdrM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SelAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/MEM_VIRTMEM/SelReplayCPURequest
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/MEM_VIRTMEM/SelReplayCPURequest
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/IEUAdrE
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/IEUAdrE
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/IEUAdrM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/IEUAdrM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/RAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/RAdr
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/RAdrD}
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ClearDirty}
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ClearDirtyD}
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/Dirty}
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/SelLastFlushAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush -radix unsigned /testbench/dut/hart/lsu/dcache/dcache/FlushAdr
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush -radix unsigned /testbench/dut/hart/lsu/dcache/dcache/FlushAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush -radix unsigned /testbench/dut/hart/lsu/dcache/dcache/FlushAdrQ
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush -radix unsigned /testbench/dut/hart/lsu/dcache/dcache/FlushAdrQ
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/FlushWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/FlushWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group flush /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/DCacheMemWriteData
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/CacheMemWriteData
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} /testbench/dut/hart/lsu/dcache/dcache/ClearDirty
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetValid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetValid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/CacheTagMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/SetDirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/DirtyBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/CacheTagMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ValidBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/DirtyBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/ValidBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[0]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[1]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[2]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/WriteEnable}
 | 
				
			||||||
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way0 -expand -group Way0Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[0]/word[3]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/DirtyBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/DirtyBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/ValidBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/ValidBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/SetDirty}
 | 
				
			||||||
@ -238,20 +245,20 @@ add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cach
 | 
				
			|||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[2]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[2]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way1 -expand -group Way1Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[1]/word[3]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetValid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetValid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/SetDirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/CacheTagMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -label TAG {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/CacheTagMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/DirtyBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/DirtyBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/ValidBits}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/ValidBits}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word0 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[0]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word1 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[1]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word2 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[2]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -expand -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/StoredData}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way2 -expand -group Way2Word3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[2]/word[3]/CacheDataMem/StoredData}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/WriteEnable}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/WriteEnable}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetValid}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetValid}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetDirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Cache SRAM writes} -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/SetDirty}
 | 
				
			||||||
@ -290,26 +297,26 @@ add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM r
 | 
				
			|||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/Dirty}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/Dirty}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ReadTag}
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} -expand -group way3 {/testbench/dut/hart/lsu/dcache/dcache/MemWay[3]/ReadTag}
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/ReadDataWordM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group {Cache SRAM read} /testbench/dut/hart/lsu/dcache/dcache/ReadDataWord
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimTag
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirtyWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirty
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group Victim /testbench/dut/hart/lsu/dcache/dcache/VictimDirty
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuRWM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/RW
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuAdrE
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuAdrE
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuPAdrM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuPAdrM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/LsuAtomicM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/Atomic
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/CacheableM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/FlushDCacheM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/FlushCache
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/DCacheStall
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/dcache/dcache/CacheStall
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/ReadDataWordM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/ReadDataWordM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/FinalWriteDataM
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {CPU side} /testbench/dut/hart/lsu/FinalWriteDataM
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group status /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group status /testbench/dut/hart/lsu/dcache/dcache/WayHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -group status -color {Medium Orchid} /testbench/dut/hart/lsu/dcache/dcache/CacheHit
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -group status -color {Medium Orchid} /testbench/dut/hart/lsu/dcache/dcache/CacheHit
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheFetchLine
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheFetchLine
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheWriteLine
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheWriteLine
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheMemWriteData
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheMemWriteData
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/DCacheBusAck
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache -expand -group {Memory Side} /testbench/dut/hart/lsu/dcache/dcache/CacheBusAck
 | 
				
			||||||
add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/FlushWay
 | 
					add wave -noupdate -expand -group lsu -expand -group dcache /testbench/dut/hart/lsu/dcache/dcache/FlushWay
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/VAdr
 | 
					add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/VAdr
 | 
				
			||||||
add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/EffectivePrivilegeMode
 | 
					add wave -noupdate -expand -group lsu -group dtlb /testbench/dut/hart/lsu/dmmu/dmmu/tlb/tlb/tlbcontrol/EffectivePrivilegeMode
 | 
				
			||||||
@ -433,31 +440,30 @@ add wave -noupdate /testbench/dut/hart/lsu/LocalLsuBusAdr
 | 
				
			|||||||
add wave -noupdate /testbench/dut/hart/lsu/busfsm/BusNextState
 | 
					add wave -noupdate /testbench/dut/hart/lsu/busfsm/BusNextState
 | 
				
			||||||
add wave -noupdate /testbench/dut/hart/lsu/busfsm/DCacheFetchLine
 | 
					add wave -noupdate /testbench/dut/hart/lsu/busfsm/DCacheFetchLine
 | 
				
			||||||
add wave -noupdate /testbench/dut/hart/lsu/busfsm/DCacheWriteLine
 | 
					add wave -noupdate /testbench/dut/hart/lsu/busfsm/DCacheWriteLine
 | 
				
			||||||
add wave -noupdate -group ifu -color Gold /testbench/dut/hart/ifu/busfsm/BusCurrState
 | 
					add wave -noupdate -expand -group ifu -color Gold /testbench/dut/hart/ifu/busfsm/BusCurrState
 | 
				
			||||||
add wave -noupdate -group ifu /testbench/dut/hart/ifu/busfsm/LsuBusAck
 | 
					add wave -noupdate -expand -group ifu /testbench/dut/hart/ifu/IfuBusRead
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -color Gold /testbench/dut/hart/ifu/icache/icache/icachefsm/CurrState
 | 
					add wave -noupdate -expand -group ifu /testbench/dut/hart/ifu/IfuBusAdr
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache /testbench/dut/hart/ifu/icache/icache/icachefsm/NextState
 | 
					add wave -noupdate -expand -group ifu /testbench/dut/hart/ifu/busfsm/LsuBusAck
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache /testbench/dut/hart/ifu/ITLBMissF
 | 
					add wave -noupdate -expand -group ifu /testbench/dut/hart/ifu/IfuBusHRDATA
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache /testbench/dut/hart/ifu/icache/icache/ReadLineF
 | 
					add wave -noupdate -expand -group ifu -expand -group icache -color Gold /testbench/dut/hart/ifu/icache/icache/cachefsm/CurrState
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache /testbench/dut/hart/ifu/icache/icache/SelAdr
 | 
					add wave -noupdate -expand -group ifu -expand -group icache /testbench/dut/hart/ifu/ITLBMissF
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache /testbench/dut/hart/ifu/icache/icache/PCNextF
 | 
					add wave -noupdate -expand -group ifu -expand -group icache /testbench/dut/hart/ifu/icache/icache/SelAdr
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache /testbench/dut/hart/ifu/icache/icache/PCPF
 | 
					add wave -noupdate -expand -group ifu -expand -group icache /testbench/dut/hart/ifu/PCNextF
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/hit
 | 
					add wave -noupdate -expand -group ifu -expand -group icache /testbench/dut/hart/ifu/PCPF
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/ICacheStallF
 | 
					add wave -noupdate -expand -group ifu -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/WayHit
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/icachefsm/PreCntEn
 | 
					add wave -noupdate -expand -group ifu -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/ICacheStallF
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/icache/icache/FinalInstrRawF
 | 
					add wave -noupdate -expand -group ifu -expand -group icache -expand -group {fsm out and control} /testbench/dut/hart/ifu/FinalInstrRawF
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/ICacheBusAdr
 | 
					add wave -noupdate -expand -group ifu -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/CacheBusAdr
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/icachefsm/ICacheBusAck
 | 
					add wave -noupdate -expand -group ifu -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/cachefsm/CacheBusAck
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/icachefsm/ICacheMemWriteEnable
 | 
					add wave -noupdate -expand -group ifu -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/CacheMemWriteData
 | 
				
			||||||
add wave -noupdate -group ifu -expand -group icache -expand -group memory /testbench/dut/hart/ifu/icache/icache/ICacheMemWriteData
 | 
					add wave -noupdate -expand -group ifu -group itlb /testbench/dut/hart/ifu/immu/TLBWrite
 | 
				
			||||||
add wave -noupdate -group ifu -group itlb /testbench/dut/hart/ifu/immu/TLBWrite
 | 
					add wave -noupdate -expand -group ifu -group itlb /testbench/dut/hart/ifu/ITLBMissF
 | 
				
			||||||
add wave -noupdate -group ifu -group itlb /testbench/dut/hart/ifu/ITLBMissF
 | 
					add wave -noupdate -expand -group ifu -group itlb /testbench/dut/hart/ifu/immu/PhysicalAddress
 | 
				
			||||||
add wave -noupdate -group ifu -group itlb /testbench/dut/hart/ifu/immu/PhysicalAddress
 | 
					 | 
				
			||||||
add wave -noupdate /testbench/dut/hart/ifu/IfuBusRead
 | 
					add wave -noupdate /testbench/dut/hart/ifu/IfuBusRead
 | 
				
			||||||
add wave -noupdate /testbench/dut/hart/ifu/icache/icache/ICacheFetchLine
 | 
					add wave -noupdate /testbench/dut/hart/ifu/icache/icache/CacheFetchLine
 | 
				
			||||||
TreeUpdate [SetDefaultTree]
 | 
					TreeUpdate [SetDefaultTree]
 | 
				
			||||||
WaveRestoreCursors {{Cursor 7} {36865 ns} 1} {{Cursor 5} {49445 ns} 1} {{Cursor 3} {38453 ns} 0} {{Cursor 4} {49574 ns} 1}
 | 
					WaveRestoreCursors {{Cursor 7} {228876 ns} 0} {{Cursor 5} {49445 ns} 1} {{Cursor 3} {235459 ns} 1} {{Cursor 4} {217231 ns} 1}
 | 
				
			||||||
quietly wave cursor active 3
 | 
					quietly wave cursor active 1
 | 
				
			||||||
configure wave -namecolwidth 250
 | 
					configure wave -namecolwidth 250
 | 
				
			||||||
configure wave -valuecolwidth 314
 | 
					configure wave -valuecolwidth 314
 | 
				
			||||||
configure wave -justifyvalue left
 | 
					configure wave -justifyvalue left
 | 
				
			||||||
@ -472,4 +478,4 @@ configure wave -griddelta 40
 | 
				
			|||||||
configure wave -timeline 0
 | 
					configure wave -timeline 0
 | 
				
			||||||
configure wave -timelineunits ns
 | 
					configure wave -timelineunits ns
 | 
				
			||||||
update
 | 
					update
 | 
				
			||||||
WaveRestoreZoom {38413 ns} {39039 ns}
 | 
					WaveRestoreZoom {228748 ns} {229004 ns}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										16
									
								
								pipelined/src/cache/cache.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								pipelined/src/cache/cache.sv
									
									
									
									
										vendored
									
									
								
							@ -75,7 +75,7 @@ module cache #(parameter integer LINELEN,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  localparam integer 						FlushAdrThreshold   = NUMLINES;
 | 
					  localparam integer 						FlushAdrThreshold   = NUMLINES;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  logic [1:0] 								SelAdrM;
 | 
					  logic [1:0] 								SelAdr;
 | 
				
			||||||
  logic [INDEXLEN-1:0] 						RAdr;
 | 
					  logic [INDEXLEN-1:0] 						RAdr;
 | 
				
			||||||
  logic [LINELEN-1:0] 						SRAMWriteData;
 | 
					  logic [LINELEN-1:0] 						SRAMWriteData;
 | 
				
			||||||
  logic 									SetValid, ClearValid;
 | 
					  logic 									SetValid, ClearValid;
 | 
				
			||||||
@ -104,6 +104,8 @@ module cache #(parameter integer LINELEN,
 | 
				
			|||||||
  logic [INDEXLEN-1:0] 						FlushAdr;
 | 
					  logic [INDEXLEN-1:0] 						FlushAdr;
 | 
				
			||||||
  logic [INDEXLEN-1:0] 						FlushAdrP1;
 | 
					  logic [INDEXLEN-1:0] 						FlushAdrP1;
 | 
				
			||||||
  logic [INDEXLEN-1:0] 						FlushAdrQ;
 | 
					  logic [INDEXLEN-1:0] 						FlushAdrQ;
 | 
				
			||||||
 | 
					  logic [INDEXLEN-1:0] 						FlushAdrMux;
 | 
				
			||||||
 | 
					  logic 									SelLastFlushAdr;
 | 
				
			||||||
  logic 									FlushAdrCntEn;
 | 
					  logic 									FlushAdrCntEn;
 | 
				
			||||||
  logic 									FlushAdrCntRst;
 | 
					  logic 									FlushAdrCntRst;
 | 
				
			||||||
  logic 									FlushAdrFlag;
 | 
					  logic 									FlushAdrFlag;
 | 
				
			||||||
@ -124,10 +126,14 @@ module cache #(parameter integer LINELEN,
 | 
				
			|||||||
  mux3 #(INDEXLEN)
 | 
					  mux3 #(INDEXLEN)
 | 
				
			||||||
  AdrSelMux(.d0(LsuAdrE[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
 | 
					  AdrSelMux(.d0(LsuAdrE[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
 | 
				
			||||||
			.d1(PreLsuPAdrM[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
 | 
								.d1(PreLsuPAdrM[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
 | 
				
			||||||
			.d2(FlushAdr),
 | 
								.d2(FlushAdrMux),
 | 
				
			||||||
			.s(SelAdrM),
 | 
								.s(SelAdr),
 | 
				
			||||||
			.y(RAdr));
 | 
								.y(RAdr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mux2 #(INDEXLEN)
 | 
				
			||||||
 | 
					  FlushAdrSelMux(.d0(FlushAdr), .d1(FlushAdrQ), .s(SelLastFlushAdr), 
 | 
				
			||||||
 | 
									 .y(FlushAdrMux));
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  cacheway #(.NUMLINES(NUMLINES), .LINELEN(LINELEN), .TAGLEN(TAGLEN), 
 | 
					  cacheway #(.NUMLINES(NUMLINES), .LINELEN(LINELEN), .TAGLEN(TAGLEN), 
 | 
				
			||||||
			 .OFFSETLEN(OFFSETLEN), .INDEXLEN(INDEXLEN))
 | 
								 .OFFSETLEN(OFFSETLEN), .INDEXLEN(INDEXLEN))
 | 
				
			||||||
  MemWay[NUMWAYS-1:0](.clk, .reset, .RAdr,
 | 
					  MemWay[NUMWAYS-1:0](.clk, .reset, .RAdr,
 | 
				
			||||||
@ -258,11 +264,11 @@ module cache #(parameter integer LINELEN,
 | 
				
			|||||||
  cachefsm cachefsm(.clk, .reset, .CacheFetchLine, .CacheWriteLine, .CacheBusAck, 
 | 
					  cachefsm cachefsm(.clk, .reset, .CacheFetchLine, .CacheWriteLine, .CacheBusAck, 
 | 
				
			||||||
					.RW, .Atomic, .CPUBusy, .CacheableM, .IgnoreRequest,
 | 
										.RW, .Atomic, .CPUBusy, .CacheableM, .IgnoreRequest,
 | 
				
			||||||
 					.CacheHit, .VictimDirty, .CacheStall, .CacheCommitted, 
 | 
					 					.CacheHit, .VictimDirty, .CacheStall, .CacheCommitted, 
 | 
				
			||||||
					.CacheMiss, .CacheAccess, .SelAdrM, .SetValid, 
 | 
										.CacheMiss, .CacheAccess, .SelAdr, .SetValid, 
 | 
				
			||||||
					.ClearValid, .SetDirty, .ClearDirty, .SRAMWordWriteEnableM,
 | 
										.ClearValid, .SetDirty, .ClearDirty, .SRAMWordWriteEnableM,
 | 
				
			||||||
					.SRAMLineWriteEnableM, .SelEvict, .SelFlush,
 | 
										.SRAMLineWriteEnableM, .SelEvict, .SelFlush,
 | 
				
			||||||
					.FlushAdrCntEn, .FlushWayCntEn, .FlushAdrCntRst,
 | 
										.FlushAdrCntEn, .FlushWayCntEn, .FlushAdrCntRst,
 | 
				
			||||||
					.FlushWayCntRst, .FlushAdrFlag, .FlushCache, 
 | 
										.FlushWayCntRst, .FlushAdrFlag, .FlushCache, .SelLastFlushAdr,
 | 
				
			||||||
					.VDWriteEnable, .LRUWriteEn);
 | 
										.VDWriteEnable, .LRUWriteEn);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										60
									
								
								pipelined/src/cache/cachefsm.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										60
									
								
								pipelined/src/cache/cachefsm.sv
									
									
									
									
										vendored
									
									
								
							@ -55,7 +55,7 @@ module cachefsm
 | 
				
			|||||||
   output logic 	  CacheFetchLine,
 | 
					   output logic 	  CacheFetchLine,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   // dcache internals
 | 
					   // dcache internals
 | 
				
			||||||
   output logic [1:0] SelAdrM,
 | 
					   output logic [1:0] SelAdr,
 | 
				
			||||||
   output logic 	  SetValid,
 | 
					   output logic 	  SetValid,
 | 
				
			||||||
   output logic 	  ClearValid,
 | 
					   output logic 	  ClearValid,
 | 
				
			||||||
   output logic 	  SetDirty,
 | 
					   output logic 	  SetDirty,
 | 
				
			||||||
@ -65,6 +65,7 @@ module cachefsm
 | 
				
			|||||||
   output logic 	  SelEvict,
 | 
					   output logic 	  SelEvict,
 | 
				
			||||||
   output logic 	  LRUWriteEn,
 | 
					   output logic 	  LRUWriteEn,
 | 
				
			||||||
   output logic 	  SelFlush,
 | 
					   output logic 	  SelFlush,
 | 
				
			||||||
 | 
					   output logic 	  SelLastFlushAdr,
 | 
				
			||||||
   output logic 	  FlushAdrCntEn,
 | 
					   output logic 	  FlushAdrCntEn,
 | 
				
			||||||
   output logic 	  FlushWayCntEn, 
 | 
					   output logic 	  FlushWayCntEn, 
 | 
				
			||||||
   output logic 	  FlushAdrCntRst,
 | 
					   output logic 	  FlushAdrCntRst,
 | 
				
			||||||
@ -107,7 +108,7 @@ module cachefsm
 | 
				
			|||||||
  // next state logic and some state ouputs.
 | 
					  // next state logic and some state ouputs.
 | 
				
			||||||
  always_comb begin
 | 
					  always_comb begin
 | 
				
			||||||
    CacheStall = 1'b0;
 | 
					    CacheStall = 1'b0;
 | 
				
			||||||
    SelAdrM = 2'b00;
 | 
					    SelAdr = 2'b00;
 | 
				
			||||||
    SetValid = 1'b0;
 | 
					    SetValid = 1'b0;
 | 
				
			||||||
    ClearValid = 1'b0;
 | 
					    ClearValid = 1'b0;
 | 
				
			||||||
    SetDirty = 1'b0;    
 | 
					    SetDirty = 1'b0;    
 | 
				
			||||||
@ -125,12 +126,13 @@ module cachefsm
 | 
				
			|||||||
    NextState = STATE_READY;
 | 
					    NextState = STATE_READY;
 | 
				
			||||||
	CacheFetchLine = 1'b0;
 | 
						CacheFetchLine = 1'b0;
 | 
				
			||||||
	CacheWriteLine = 1'b0;
 | 
						CacheWriteLine = 1'b0;
 | 
				
			||||||
 | 
						SelLastFlushAdr = 1'b0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case (CurrState)
 | 
					    case (CurrState)
 | 
				
			||||||
      STATE_READY: begin
 | 
					      STATE_READY: begin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		CacheStall = 1'b0;
 | 
							CacheStall = 1'b0;
 | 
				
			||||||
		SelAdrM = 2'b00;
 | 
							SelAdr = 2'b00;
 | 
				
			||||||
		SRAMWordWriteEnableM = 1'b0;
 | 
							SRAMWordWriteEnableM = 1'b0;
 | 
				
			||||||
		SetDirty = 1'b0;
 | 
							SetDirty = 1'b0;
 | 
				
			||||||
		LRUWriteEn = 1'b0;
 | 
							LRUWriteEn = 1'b0;
 | 
				
			||||||
@ -143,7 +145,7 @@ module cachefsm
 | 
				
			|||||||
		  // PTW ready the CPU will stall.
 | 
							  // PTW ready the CPU will stall.
 | 
				
			||||||
		  // The page table walker asserts it's control 1 cycle
 | 
							  // The page table walker asserts it's control 1 cycle
 | 
				
			||||||
		  // after the TLBs miss.
 | 
							  // after the TLBs miss.
 | 
				
			||||||
		  SelAdrM = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		  NextState = STATE_READY;
 | 
							  NextState = STATE_READY;
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -151,19 +153,19 @@ module cachefsm
 | 
				
			|||||||
		else if(FlushCache) begin
 | 
							else if(FlushCache) begin
 | 
				
			||||||
		  NextState = STATE_FLUSH;
 | 
							  NextState = STATE_FLUSH;
 | 
				
			||||||
		  CacheStall = 1'b1;
 | 
							  CacheStall = 1'b1;
 | 
				
			||||||
		  SelAdrM = 2'b10;
 | 
							  SelAdr = 2'b10;
 | 
				
			||||||
		  FlushAdrCntRst = 1'b1;
 | 
							  FlushAdrCntRst = 1'b1;
 | 
				
			||||||
		  FlushWayCntRst = 1'b1;	
 | 
							  FlushWayCntRst = 1'b1;	
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// amo hit
 | 
							// amo hit
 | 
				
			||||||
		else if(Atomic[1] & (&RW) & CacheableM & CacheHit) begin
 | 
							else if(Atomic[1] & (&RW) & CacheableM & CacheHit) begin
 | 
				
			||||||
		  SelAdrM = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		  CacheStall = 1'b0;
 | 
							  CacheStall = 1'b0;
 | 
				
			||||||
		  
 | 
							  
 | 
				
			||||||
		  if(CPUBusy) begin 
 | 
							  if(CPUBusy) begin 
 | 
				
			||||||
			NextState = STATE_CPU_BUSY_FINISH_AMO;
 | 
								NextState = STATE_CPU_BUSY_FINISH_AMO;
 | 
				
			||||||
			SelAdrM = 2'b01;
 | 
								SelAdr = 2'b01;
 | 
				
			||||||
		  end
 | 
							  end
 | 
				
			||||||
		  else begin
 | 
							  else begin
 | 
				
			||||||
			SRAMWordWriteEnableM = 1'b1;
 | 
								SRAMWordWriteEnableM = 1'b1;
 | 
				
			||||||
@ -179,7 +181,7 @@ module cachefsm
 | 
				
			|||||||
		  
 | 
							  
 | 
				
			||||||
		  if(CPUBusy) begin
 | 
							  if(CPUBusy) begin
 | 
				
			||||||
			NextState = STATE_CPU_BUSY;
 | 
								NextState = STATE_CPU_BUSY;
 | 
				
			||||||
            SelAdrM = 2'b01;
 | 
					            SelAdr = 2'b01;
 | 
				
			||||||
		  end
 | 
							  end
 | 
				
			||||||
		  else begin
 | 
							  else begin
 | 
				
			||||||
			NextState = STATE_READY;
 | 
								NextState = STATE_READY;
 | 
				
			||||||
@ -187,7 +189,7 @@ module cachefsm
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
		// write hit valid cached
 | 
							// write hit valid cached
 | 
				
			||||||
		else if (RW[0] & CacheableM & CacheHit) begin
 | 
							else if (RW[0] & CacheableM & CacheHit) begin
 | 
				
			||||||
		  SelAdrM = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		  CacheStall = 1'b0;
 | 
							  CacheStall = 1'b0;
 | 
				
			||||||
		  SRAMWordWriteEnableM = 1'b1;
 | 
							  SRAMWordWriteEnableM = 1'b1;
 | 
				
			||||||
		  SetDirty = 1'b1;
 | 
							  SetDirty = 1'b1;
 | 
				
			||||||
@ -195,7 +197,7 @@ module cachefsm
 | 
				
			|||||||
		  
 | 
							  
 | 
				
			||||||
		  if(CPUBusy) begin 
 | 
							  if(CPUBusy) begin 
 | 
				
			||||||
			NextState = STATE_CPU_BUSY;
 | 
								NextState = STATE_CPU_BUSY;
 | 
				
			||||||
			SelAdrM = 2'b01;
 | 
								SelAdr = 2'b01;
 | 
				
			||||||
		  end
 | 
							  end
 | 
				
			||||||
		  else begin
 | 
							  else begin
 | 
				
			||||||
			NextState = STATE_READY;
 | 
								NextState = STATE_READY;
 | 
				
			||||||
@ -212,7 +214,7 @@ module cachefsm
 | 
				
			|||||||
      
 | 
					      
 | 
				
			||||||
      STATE_MISS_FETCH_WDV: begin
 | 
					      STATE_MISS_FETCH_WDV: begin
 | 
				
			||||||
		CacheStall = 1'b1;
 | 
							CacheStall = 1'b1;
 | 
				
			||||||
		SelAdrM = 2'b01;
 | 
							SelAdr = 2'b01;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if (CacheBusAck) begin
 | 
							if (CacheBusAck) begin
 | 
				
			||||||
          NextState = STATE_MISS_FETCH_DONE;
 | 
					          NextState = STATE_MISS_FETCH_DONE;
 | 
				
			||||||
@ -223,7 +225,7 @@ module cachefsm
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      STATE_MISS_FETCH_DONE: begin
 | 
					      STATE_MISS_FETCH_DONE: begin
 | 
				
			||||||
		CacheStall = 1'b1;
 | 
							CacheStall = 1'b1;
 | 
				
			||||||
		SelAdrM = 2'b01;
 | 
							SelAdr = 2'b01;
 | 
				
			||||||
		if(VictimDirty) begin
 | 
							if(VictimDirty) begin
 | 
				
			||||||
		  NextState = STATE_MISS_EVICT_DIRTY;
 | 
							  NextState = STATE_MISS_EVICT_DIRTY;
 | 
				
			||||||
		  CacheWriteLine = 1'b1;
 | 
							  CacheWriteLine = 1'b1;
 | 
				
			||||||
@ -236,14 +238,14 @@ module cachefsm
 | 
				
			|||||||
		SRAMLineWriteEnableM = 1'b1;
 | 
							SRAMLineWriteEnableM = 1'b1;
 | 
				
			||||||
		CacheStall = 1'b1;
 | 
							CacheStall = 1'b1;
 | 
				
			||||||
		NextState = STATE_MISS_READ_WORD;
 | 
							NextState = STATE_MISS_READ_WORD;
 | 
				
			||||||
		SelAdrM = 2'b01;
 | 
							SelAdr = 2'b01;
 | 
				
			||||||
		SetValid = 1'b1;
 | 
							SetValid = 1'b1;
 | 
				
			||||||
		ClearDirty = 1'b1;
 | 
							ClearDirty = 1'b1;
 | 
				
			||||||
		//LRUWriteEn = 1'b1;  // DO not update LRU on SRAM fetch update.  Wait for subsequent read/write
 | 
							//LRUWriteEn = 1'b1;  // DO not update LRU on SRAM fetch update.  Wait for subsequent read/write
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      STATE_MISS_READ_WORD: begin
 | 
					      STATE_MISS_READ_WORD: begin
 | 
				
			||||||
		SelAdrM = 2'b01;
 | 
							SelAdr = 2'b01;
 | 
				
			||||||
		CacheStall = 1'b1;
 | 
							CacheStall = 1'b1;
 | 
				
			||||||
		if (RW[0] & ~Atomic[1]) begin // handles stores and amo write.
 | 
							if (RW[0] & ~Atomic[1]) begin // handles stores and amo write.
 | 
				
			||||||
		  NextState = STATE_MISS_WRITE_WORD;
 | 
							  NextState = STATE_MISS_WRITE_WORD;
 | 
				
			||||||
@ -255,12 +257,12 @@ module cachefsm
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      STATE_MISS_READ_WORD_DELAY: begin
 | 
					      STATE_MISS_READ_WORD_DELAY: begin
 | 
				
			||||||
		//SelAdrM = 2'b01;
 | 
							//SelAdr = 2'b01;
 | 
				
			||||||
		SRAMWordWriteEnableM = 1'b0;
 | 
							SRAMWordWriteEnableM = 1'b0;
 | 
				
			||||||
		SetDirty = 1'b0;
 | 
							SetDirty = 1'b0;
 | 
				
			||||||
		LRUWriteEn = 1'b0;
 | 
							LRUWriteEn = 1'b0;
 | 
				
			||||||
		if(&RW & Atomic[1]) begin // amo write
 | 
							if(&RW & Atomic[1]) begin // amo write
 | 
				
			||||||
		  SelAdrM = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		  if(CPUBusy) begin 
 | 
							  if(CPUBusy) begin 
 | 
				
			||||||
			NextState = STATE_CPU_BUSY_FINISH_AMO;
 | 
								NextState = STATE_CPU_BUSY_FINISH_AMO;
 | 
				
			||||||
		  end
 | 
							  end
 | 
				
			||||||
@ -274,7 +276,7 @@ module cachefsm
 | 
				
			|||||||
		  LRUWriteEn = 1'b1;
 | 
							  LRUWriteEn = 1'b1;
 | 
				
			||||||
		  if(CPUBusy) begin 
 | 
							  if(CPUBusy) begin 
 | 
				
			||||||
			NextState = STATE_CPU_BUSY;
 | 
								NextState = STATE_CPU_BUSY;
 | 
				
			||||||
			SelAdrM = 2'b01;
 | 
								SelAdr = 2'b01;
 | 
				
			||||||
		  end
 | 
							  end
 | 
				
			||||||
		  else begin
 | 
							  else begin
 | 
				
			||||||
			NextState = STATE_READY;
 | 
								NextState = STATE_READY;
 | 
				
			||||||
@ -285,11 +287,11 @@ module cachefsm
 | 
				
			|||||||
      STATE_MISS_WRITE_WORD: begin
 | 
					      STATE_MISS_WRITE_WORD: begin
 | 
				
			||||||
		SRAMWordWriteEnableM = 1'b1;
 | 
							SRAMWordWriteEnableM = 1'b1;
 | 
				
			||||||
		SetDirty = 1'b1;
 | 
							SetDirty = 1'b1;
 | 
				
			||||||
		SelAdrM = 2'b01;
 | 
							SelAdr = 2'b01;
 | 
				
			||||||
		LRUWriteEn = 1'b1;
 | 
							LRUWriteEn = 1'b1;
 | 
				
			||||||
		if(CPUBusy) begin 
 | 
							if(CPUBusy) begin 
 | 
				
			||||||
		  NextState = STATE_CPU_BUSY;
 | 
							  NextState = STATE_CPU_BUSY;
 | 
				
			||||||
		  SelAdrM = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		else begin
 | 
							else begin
 | 
				
			||||||
		  NextState = STATE_READY;
 | 
							  NextState = STATE_READY;
 | 
				
			||||||
@ -298,7 +300,7 @@ module cachefsm
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      STATE_MISS_EVICT_DIRTY: begin
 | 
					      STATE_MISS_EVICT_DIRTY: begin
 | 
				
			||||||
		CacheStall = 1'b1;
 | 
							CacheStall = 1'b1;
 | 
				
			||||||
		SelAdrM = 2'b01;
 | 
							SelAdr = 2'b01;
 | 
				
			||||||
		SelEvict = 1'b1;
 | 
							SelEvict = 1'b1;
 | 
				
			||||||
		if(CacheBusAck) begin
 | 
							if(CacheBusAck) begin
 | 
				
			||||||
		  NextState = STATE_MISS_WRITE_CACHE_LINE;
 | 
							  NextState = STATE_MISS_WRITE_CACHE_LINE;
 | 
				
			||||||
@ -309,10 +311,10 @@ module cachefsm
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      STATE_CPU_BUSY: begin
 | 
					      STATE_CPU_BUSY: begin
 | 
				
			||||||
		SelAdrM = 2'b00;
 | 
							SelAdr = 2'b00;
 | 
				
			||||||
		if(CPUBusy) begin
 | 
							if(CPUBusy) begin
 | 
				
			||||||
		  NextState = STATE_CPU_BUSY;
 | 
							  NextState = STATE_CPU_BUSY;
 | 
				
			||||||
		  SelAdrM = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		else begin
 | 
							else begin
 | 
				
			||||||
		  NextState = STATE_READY;
 | 
							  NextState = STATE_READY;
 | 
				
			||||||
@ -320,7 +322,7 @@ module cachefsm
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      STATE_CPU_BUSY_FINISH_AMO: begin
 | 
					      STATE_CPU_BUSY_FINISH_AMO: begin
 | 
				
			||||||
		SelAdrM = 2'b01;
 | 
							SelAdr = 2'b01;
 | 
				
			||||||
		SRAMWordWriteEnableM = 1'b0;
 | 
							SRAMWordWriteEnableM = 1'b0;
 | 
				
			||||||
		SetDirty = 1'b0;
 | 
							SetDirty = 1'b0;
 | 
				
			||||||
		LRUWriteEn = 1'b0;
 | 
							LRUWriteEn = 1'b0;
 | 
				
			||||||
@ -337,15 +339,17 @@ module cachefsm
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      STATE_FLUSH: begin
 | 
					      STATE_FLUSH: begin
 | 
				
			||||||
		CacheStall = 1'b1;
 | 
							CacheStall = 1'b1;
 | 
				
			||||||
		SelAdrM = 2'b10;
 | 
							SelAdr = 2'b10;
 | 
				
			||||||
		SelFlush = 1'b1;
 | 
							SelFlush = 1'b1;
 | 
				
			||||||
		FlushAdrCntEn = 1'b1;
 | 
							FlushAdrCntEn = 1'b1;
 | 
				
			||||||
		FlushWayCntEn = 1'b1;
 | 
							FlushWayCntEn = 1'b1;
 | 
				
			||||||
 | 
							SelLastFlushAdr = 1'b0;
 | 
				
			||||||
		if(VictimDirty) begin
 | 
							if(VictimDirty) begin
 | 
				
			||||||
		  NextState = STATE_FLUSH_WRITE_BACK;
 | 
							  NextState = STATE_FLUSH_WRITE_BACK;
 | 
				
			||||||
		  FlushAdrCntEn = 1'b0;
 | 
							  FlushAdrCntEn = 1'b0;
 | 
				
			||||||
		  FlushWayCntEn = 1'b0;
 | 
							  FlushWayCntEn = 1'b0;
 | 
				
			||||||
		  CacheWriteLine = 1'b1;
 | 
							  CacheWriteLine = 1'b1;
 | 
				
			||||||
 | 
							  SelLastFlushAdr = 1'b1;
 | 
				
			||||||
		end else if (FlushAdrFlag) begin
 | 
							end else if (FlushAdrFlag) begin
 | 
				
			||||||
		  NextState = STATE_READY;
 | 
							  NextState = STATE_READY;
 | 
				
			||||||
		  CacheStall = 1'b0;
 | 
							  CacheStall = 1'b0;
 | 
				
			||||||
@ -358,8 +362,9 @@ module cachefsm
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      STATE_FLUSH_WRITE_BACK: begin
 | 
					      STATE_FLUSH_WRITE_BACK: begin
 | 
				
			||||||
		CacheStall = 1'b1;
 | 
							CacheStall = 1'b1;
 | 
				
			||||||
		SelAdrM = 2'b10;
 | 
							SelAdr = 2'b10;
 | 
				
			||||||
		SelFlush = 1'b1;
 | 
							SelFlush = 1'b1;
 | 
				
			||||||
 | 
							SelLastFlushAdr = 1'b1;
 | 
				
			||||||
		if(CacheBusAck) begin
 | 
							if(CacheBusAck) begin
 | 
				
			||||||
		  NextState = STATE_FLUSH_CLEAR_DIRTY;
 | 
							  NextState = STATE_FLUSH_CLEAR_DIRTY;
 | 
				
			||||||
		end else begin
 | 
							end else begin
 | 
				
			||||||
@ -372,13 +377,14 @@ module cachefsm
 | 
				
			|||||||
		ClearDirty = 1'b1;
 | 
							ClearDirty = 1'b1;
 | 
				
			||||||
		VDWriteEnable = 1'b1;
 | 
							VDWriteEnable = 1'b1;
 | 
				
			||||||
		SelFlush = 1'b1;
 | 
							SelFlush = 1'b1;
 | 
				
			||||||
		SelAdrM = 2'b10;
 | 
							SelAdr = 2'b10;
 | 
				
			||||||
		FlushAdrCntEn = 1'b0;
 | 
							FlushAdrCntEn = 1'b0;
 | 
				
			||||||
		FlushWayCntEn = 1'b0;
 | 
							FlushWayCntEn = 1'b0;
 | 
				
			||||||
 | 
							SelLastFlushAdr = 1'b0;
 | 
				
			||||||
		if(FlushAdrFlag) begin
 | 
							if(FlushAdrFlag) begin
 | 
				
			||||||
		  NextState = STATE_READY;
 | 
							  NextState = STATE_READY;
 | 
				
			||||||
		  CacheStall = 1'b0;
 | 
							  CacheStall = 1'b0;
 | 
				
			||||||
		  SelAdrM = 2'b00;
 | 
							  SelAdr = 2'b00;
 | 
				
			||||||
		end else begin
 | 
							end else begin
 | 
				
			||||||
		  NextState = STATE_FLUSH;
 | 
							  NextState = STATE_FLUSH;
 | 
				
			||||||
		  FlushAdrCntEn = 1'b1;
 | 
							  FlushAdrCntEn = 1'b1;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user