Modified dcache to ensure nontranslated index is used.

This commit is contained in:
Ross Thompson 2022-01-04 10:53:53 -06:00
parent 1ea267cab5
commit 7ac412eb8e
3 changed files with 5 additions and 4 deletions

View File

@ -38,9 +38,10 @@ module dcache
input logic FlushDCacheM,
input logic [11:0] LsuAdrE, // virtual address, but we only use the lower 12 bits.
input logic [`PA_BITS-1:0] LsuPAdrM, // physical address
input logic [11:0] PreLsuPAdrM, // physical or virtual address
input logic [`XLEN-1:0] FinalWriteDataM,
output logic [`XLEN-1:0] ReadDataWordM,
output logic DCacheCommittedM,
output logic DCacheCommittedM,
// Bus fsm interface
input logic IgnoreRequest,
@ -122,7 +123,7 @@ module dcache
mux3 #(INDEXLEN)
AdrSelMux(.d0(LsuAdrE[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
.d1(LsuPAdrM[INDEXLEN+OFFSETLEN-1:OFFSETLEN]), // *** optimize change to virtual address.
.d1(PreLsuPAdrM[INDEXLEN+OFFSETLEN-1:OFFSETLEN]), // *** optimize change to virtual address.
.d2(FlushAdr),
.s(SelAdrM),
.y(RAdr));

View File

@ -35,7 +35,7 @@ module dcachefsm
// hazard inputs
input logic CPUBusy,
input logic CacheableM,
// hptw inputs
// interlock fsm
input logic IgnoreRequest,
// Bus inputs
input logic DCacheBusAck,

View File

@ -307,7 +307,7 @@ module lsu
generate
if(`MEM_DCACHE) begin : dcache
dcache dcache(.clk, .reset, .CPUBusy,
.LsuRWM, .FlushDCacheM, .LsuAtomicM, .LsuAdrE, .LsuPAdrM,
.LsuRWM, .FlushDCacheM, .LsuAtomicM, .LsuAdrE, .LsuPAdrM, .PreLsuPAdrM(PreLsuPAdrM[11:0]), // still don't like this name PreLsuPAdrM, not always physical
.FinalWriteDataM, .ReadDataWordM, .DCacheStall,
.DCacheMiss, .DCacheAccess,
.IgnoreRequest, .CacheableM, .DCacheCommittedM,