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