mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Renamed CacheHit to Hit.
This commit is contained in:
parent
60f96112db
commit
4c3d927474
6
src/cache/cache.sv
vendored
6
src/cache/cache.sv
vendored
@ -82,7 +82,7 @@ module cache import cvw::*; #(parameter cvw_t P,
|
|||||||
logic ClearDirty, SetDirty, SetValid, ClearValid;
|
logic ClearDirty, SetDirty, SetValid, ClearValid;
|
||||||
logic [LINELEN-1:0] ReadDataLineWay [NUMWAYS-1:0];
|
logic [LINELEN-1:0] ReadDataLineWay [NUMWAYS-1:0];
|
||||||
logic [NUMWAYS-1:0] HitWay, ValidWay;
|
logic [NUMWAYS-1:0] HitWay, ValidWay;
|
||||||
logic CacheHit;
|
logic Hit;
|
||||||
logic [NUMWAYS-1:0] VictimWay, DirtyWay, HitDirtyWay;
|
logic [NUMWAYS-1:0] VictimWay, DirtyWay, HitDirtyWay;
|
||||||
logic LineDirty, HitLineDirty;
|
logic LineDirty, HitLineDirty;
|
||||||
logic [TAGLEN-1:0] TagWay [NUMWAYS-1:0];
|
logic [TAGLEN-1:0] TagWay [NUMWAYS-1:0];
|
||||||
@ -132,7 +132,7 @@ module cache import cvw::*; #(parameter cvw_t P,
|
|||||||
end else
|
end else
|
||||||
assign VictimWay = 1'b1; // one hot.
|
assign VictimWay = 1'b1; // one hot.
|
||||||
|
|
||||||
assign CacheHit = |HitWay;
|
assign Hit = |HitWay;
|
||||||
assign LineDirty = |DirtyWay;
|
assign LineDirty = |DirtyWay;
|
||||||
assign HitLineDirty = |HitDirtyWay;
|
assign HitLineDirty = |HitDirtyWay;
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ module cache import cvw::*; #(parameter cvw_t P,
|
|||||||
|
|
||||||
cachefsm #(P, READ_ONLY_CACHE) cachefsm(.clk, .reset, .CacheBusRW, .CacheBusAck,
|
cachefsm #(P, READ_ONLY_CACHE) cachefsm(.clk, .reset, .CacheBusRW, .CacheBusAck,
|
||||||
.FlushStage, .CacheRW, .Stall,
|
.FlushStage, .CacheRW, .Stall,
|
||||||
.CacheHit, .LineDirty, .HitLineDirty, .CacheStall, .CacheCommitted,
|
.Hit, .LineDirty, .HitLineDirty, .CacheStall, .CacheCommitted,
|
||||||
.CacheMiss, .CacheAccess, .SelAdrData, .SelAdrTag, .SelVictim,
|
.CacheMiss, .CacheAccess, .SelAdrData, .SelAdrTag, .SelVictim,
|
||||||
.ClearDirty, .SetDirty, .SetValid, .ClearValid, .SelWriteback,
|
.ClearDirty, .SetDirty, .SetValid, .ClearValid, .SelWriteback,
|
||||||
.FlushAdrCntEn, .FlushWayCntEn, .FlushCntRst,
|
.FlushAdrCntEn, .FlushWayCntEn, .FlushCntRst,
|
||||||
|
16
src/cache/cachefsm.sv
vendored
16
src/cache/cachefsm.sv
vendored
@ -50,7 +50,7 @@ module cachefsm import cvw::*; #(parameter cvw_t P,
|
|||||||
output logic CacheAccess, // Cache access
|
output logic CacheAccess, // Cache access
|
||||||
|
|
||||||
// cache internals
|
// cache internals
|
||||||
input logic CacheHit, // Exactly 1 way hits
|
input logic Hit, // Exactly 1 way hits
|
||||||
input logic LineDirty, // The selected line and way is dirty
|
input logic LineDirty, // The selected line and way is dirty
|
||||||
input logic HitLineDirty, // The cache hit way is dirty
|
input logic HitLineDirty, // The cache hit way is dirty
|
||||||
input logic FlushAdrFlag, // On last set of a cache flush
|
input logic FlushAdrFlag, // On last set of a cache flush
|
||||||
@ -92,17 +92,17 @@ module cachefsm import cvw::*; #(parameter cvw_t P,
|
|||||||
|
|
||||||
statetype CurrState, NextState;
|
statetype CurrState, NextState;
|
||||||
|
|
||||||
assign AnyMiss = (CacheRW[0] | CacheRW[1]) & ~CacheHit & ~InvalidateCache; // exclusion-tag: cache AnyMiss
|
assign AnyMiss = (CacheRW[0] | CacheRW[1]) & ~Hit & ~InvalidateCache; // exclusion-tag: cache AnyMiss
|
||||||
assign AnyUpdateHit = (CacheRW[0]) & CacheHit; // exclusion-tag: icache storeAMO1
|
assign AnyUpdateHit = (CacheRW[0]) & Hit; // exclusion-tag: icache storeAMO1
|
||||||
assign AnyHit = AnyUpdateHit | (CacheRW[1] & CacheHit); // exclusion-tag: icache AnyUpdateHit
|
assign AnyHit = AnyUpdateHit | (CacheRW[1] & Hit); // exclusion-tag: icache AnyUpdateHit
|
||||||
assign CMOZeroNoEviction = CMOpM[3] & ~LineDirty; // (hit or miss) with no writeback store zeros now
|
assign CMOZeroNoEviction = CMOpM[3] & ~LineDirty; // (hit or miss) with no writeback store zeros now
|
||||||
assign CMOWriteback = ((CMOpM[1] | CMOpM[2]) & CacheHit & HitLineDirty) | CMOpM[3] & LineDirty;
|
assign CMOWriteback = ((CMOpM[1] | CMOpM[2]) & Hit & HitLineDirty) | CMOpM[3] & LineDirty;
|
||||||
|
|
||||||
assign FlushFlag = FlushAdrFlag & FlushWayFlag;
|
assign FlushFlag = FlushAdrFlag & FlushWayFlag;
|
||||||
|
|
||||||
// outputs for the performance counters.
|
// outputs for the performance counters.
|
||||||
assign CacheAccess = (|CacheRW) & ((CurrState == STATE_ACCESS & ~Stall & ~FlushStage) | (CurrState == STATE_ADDRESS_SETUP & ~Stall & ~FlushStage)); // exclusion-tag: icache CacheW
|
assign CacheAccess = (|CacheRW) & ((CurrState == STATE_ACCESS & ~Stall & ~FlushStage) | (CurrState == STATE_ADDRESS_SETUP & ~Stall & ~FlushStage)); // exclusion-tag: icache CacheW
|
||||||
assign CacheMiss = CacheAccess & ~CacheHit;
|
assign CacheMiss = CacheAccess & ~Hit;
|
||||||
|
|
||||||
// special case on reset. When the fsm first exists reset twayhe
|
// special case on reset. When the fsm first exists reset twayhe
|
||||||
// PCNextF will no longer be pointing to the correct address.
|
// PCNextF will no longer be pointing to the correct address.
|
||||||
@ -169,7 +169,7 @@ module cachefsm import cvw::*; #(parameter cvw_t P,
|
|||||||
// Flush and eviction controls
|
// Flush and eviction controls
|
||||||
CurrState == STATE_WRITEBACK & (CMOpM[1] | CMOpM[2]) & CacheBusAck;
|
CurrState == STATE_WRITEBACK & (CMOpM[1] | CMOpM[2]) & CacheBusAck;
|
||||||
assign SelVictim = (CurrState == STATE_WRITEBACK & ((~CacheBusAck & ~(CMOpM[1] | CMOpM[2])) | (CacheBusAck & CMOpM[3]))) |
|
assign SelVictim = (CurrState == STATE_WRITEBACK & ((~CacheBusAck & ~(CMOpM[1] | CMOpM[2])) | (CacheBusAck & CMOpM[3]))) |
|
||||||
(CurrState == STATE_ACCESS & ((AnyMiss & LineDirty) | (CMOZeroNoEviction & ~CacheHit))) |
|
(CurrState == STATE_ACCESS & ((AnyMiss & LineDirty) | (CMOZeroNoEviction & ~Hit))) |
|
||||||
(CurrState == STATE_WRITE_LINE);
|
(CurrState == STATE_WRITE_LINE);
|
||||||
assign SelWriteback = (CurrState == STATE_WRITEBACK & (CMOpM[1] | CMOpM[2] | ~CacheBusAck)) |
|
assign SelWriteback = (CurrState == STATE_WRITEBACK & (CMOpM[1] | CMOpM[2] | ~CacheBusAck)) |
|
||||||
(CurrState == STATE_ACCESS & AnyMiss & LineDirty);
|
(CurrState == STATE_ACCESS & AnyMiss & LineDirty);
|
||||||
@ -188,7 +188,7 @@ module cachefsm import cvw::*; #(parameter cvw_t P,
|
|||||||
(CurrState == STATE_WRITEBACK & CacheBusAck & ~(|CMOpM));
|
(CurrState == STATE_WRITEBACK & CacheBusAck & ~(|CMOpM));
|
||||||
|
|
||||||
logic LoadMiss;
|
logic LoadMiss;
|
||||||
assign LoadMiss = (CacheRW[1]) & ~CacheHit & ~InvalidateCache; // exclusion-tag: cache AnyMiss
|
assign LoadMiss = (CacheRW[1]) & ~Hit & ~InvalidateCache; // exclusion-tag: cache AnyMiss
|
||||||
|
|
||||||
assign CacheBusRW[0] = (CurrState == STATE_ACCESS & LoadMiss & LineDirty) | // exclusion-tag: icache CacheBusW
|
assign CacheBusRW[0] = (CurrState == STATE_ACCESS & LoadMiss & LineDirty) | // exclusion-tag: icache CacheBusW
|
||||||
(CurrState == STATE_WRITEBACK & ~CacheBusAck) |
|
(CurrState == STATE_WRITEBACK & ~CacheBusAck) |
|
||||||
|
Loading…
Reference in New Issue
Block a user