mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Modified dcache to ensure nontranslated index is used.
This commit is contained in:
parent
1ea267cab5
commit
7ac412eb8e
5
wally-pipelined/src/cache/dcache.sv
vendored
5
wally-pipelined/src/cache/dcache.sv
vendored
@ -38,9 +38,10 @@ module dcache
|
|||||||
input logic FlushDCacheM,
|
input logic FlushDCacheM,
|
||||||
input logic [11:0] LsuAdrE, // virtual address, but we only use the lower 12 bits.
|
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 [`PA_BITS-1:0] LsuPAdrM, // physical address
|
||||||
|
input logic [11:0] PreLsuPAdrM, // physical or virtual address
|
||||||
input logic [`XLEN-1:0] FinalWriteDataM,
|
input logic [`XLEN-1:0] FinalWriteDataM,
|
||||||
output logic [`XLEN-1:0] ReadDataWordM,
|
output logic [`XLEN-1:0] ReadDataWordM,
|
||||||
output logic DCacheCommittedM,
|
output logic DCacheCommittedM,
|
||||||
|
|
||||||
// Bus fsm interface
|
// Bus fsm interface
|
||||||
input logic IgnoreRequest,
|
input logic IgnoreRequest,
|
||||||
@ -122,7 +123,7 @@ module dcache
|
|||||||
|
|
||||||
mux3 #(INDEXLEN)
|
mux3 #(INDEXLEN)
|
||||||
AdrSelMux(.d0(LsuAdrE[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
|
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),
|
.d2(FlushAdr),
|
||||||
.s(SelAdrM),
|
.s(SelAdrM),
|
||||||
.y(RAdr));
|
.y(RAdr));
|
||||||
|
2
wally-pipelined/src/cache/dcachefsm.sv
vendored
2
wally-pipelined/src/cache/dcachefsm.sv
vendored
@ -35,7 +35,7 @@ module dcachefsm
|
|||||||
// hazard inputs
|
// hazard inputs
|
||||||
input logic CPUBusy,
|
input logic CPUBusy,
|
||||||
input logic CacheableM,
|
input logic CacheableM,
|
||||||
// hptw inputs
|
// interlock fsm
|
||||||
input logic IgnoreRequest,
|
input logic IgnoreRequest,
|
||||||
// Bus inputs
|
// Bus inputs
|
||||||
input logic DCacheBusAck,
|
input logic DCacheBusAck,
|
||||||
|
@ -307,7 +307,7 @@ module lsu
|
|||||||
generate
|
generate
|
||||||
if(`MEM_DCACHE) begin : dcache
|
if(`MEM_DCACHE) begin : dcache
|
||||||
dcache dcache(.clk, .reset, .CPUBusy,
|
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,
|
.FinalWriteDataM, .ReadDataWordM, .DCacheStall,
|
||||||
.DCacheMiss, .DCacheAccess,
|
.DCacheMiss, .DCacheAccess,
|
||||||
.IgnoreRequest, .CacheableM, .DCacheCommittedM,
|
.IgnoreRequest, .CacheableM, .DCacheCommittedM,
|
||||||
|
Loading…
Reference in New Issue
Block a user