mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Fix error when reading an instruction that crosses a line boundary
This commit is contained in:
		
							parent
							
								
									7338ddf853
								
							
						
					
					
						commit
						c8a88757ab
					
				@ -31,8 +31,11 @@ add wave -hex /testbench/dut/hart/ifu/ic/InstrPAdrF
 | 
			
		||||
add wave -hex /testbench/dut/hart/ifu/ic/InstrAckF
 | 
			
		||||
add wave -hex /testbench/dut/hart/ifu/ic/controller/ICacheMemWriteData
 | 
			
		||||
add wave -hex /testbench/dut/hart/ifu/ic/controller/ICacheMemWritePAdr
 | 
			
		||||
add wave -hex /testbench/dut/hart/ifu/ic/controller/MisalignedState
 | 
			
		||||
add wave -hex /testbench/dut/hart/ifu/ic/controller/MisalignedHalfInstrF
 | 
			
		||||
add wave -divider
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
add wave -hex /testbench/dut/hart/ifu/PCE
 | 
			
		||||
add wave -hex /testbench/dut/hart/ifu/InstrE
 | 
			
		||||
add wave /testbench/InstrEName
 | 
			
		||||
 | 
			
		||||
@ -233,7 +233,7 @@ module icachecontroller #(parameter LINESIZE = 256) (
 | 
			
		||||
    // Machinery to request the correct addresses from main memory
 | 
			
		||||
    always_comb begin
 | 
			
		||||
        assign InstrReadF = FetchState & ~EndFetchState;
 | 
			
		||||
        assign LineAlignedPCPF = {UpperPCPF, LowerPCF[11:OFFSETWIDTH], {OFFSETWIDTH{1'b0}}};
 | 
			
		||||
        assign LineAlignedPCPF = {ICacheMemReadUpperPAdr, ICacheMemReadLowerAdr[11:OFFSETWIDTH], {OFFSETWIDTH{1'b0}}};
 | 
			
		||||
        assign InstrPAdrF = LineAlignedPCPF + FetchWordNum*(`XLEN/8);
 | 
			
		||||
        assign NextFetchWordNum = FetchState ? FetchWordNum+InstrAckF : {LOGWPL+1{1'b0}}; 
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user