Abstract base nbcache class
This commit is contained in:
parent
124efe5281
commit
d46e59a16d
@ -684,7 +684,18 @@ class ioDCache(view: List[String] = null) extends Bundle(view) {
|
|||||||
val resp_val = Bool(OUTPUT);
|
val resp_val = Bool(OUTPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
class HellaCache extends Component with ThreeStateIncoherence {
|
abstract class HellaCache extends Component {
|
||||||
|
def isHit ( cmd: Bits, state: UFix): Bool
|
||||||
|
def isValid (state: UFix): Bool
|
||||||
|
def needsWriteback (state: UFix): Bool
|
||||||
|
def newStateOnWriteback(): UFix
|
||||||
|
def newStateOnFlush(): UFix
|
||||||
|
def newStateOnHit(cmd: Bits, state: UFix): UFix
|
||||||
|
def newStateOnPrimaryMiss(cmd: Bits): UFix
|
||||||
|
def newStateOnSecondaryMiss(cmd: Bits, state: UFix): UFix
|
||||||
|
}
|
||||||
|
|
||||||
|
class HellaCacheUniproc extends HellaCache with ThreeStateIncoherence {
|
||||||
val io = new Bundle {
|
val io = new Bundle {
|
||||||
val cpu = new ioDmem()
|
val cpu = new ioDmem()
|
||||||
val mem = new ioDCache().flip
|
val mem = new ioDCache().flip
|
||||||
|
@ -18,7 +18,7 @@ class Top() extends Component {
|
|||||||
val icache = new rocketICache(128, 2); // 128 sets x 2 ways
|
val icache = new rocketICache(128, 2); // 128 sets x 2 ways
|
||||||
val icache_pf = new rocketIPrefetcher();
|
val icache_pf = new rocketIPrefetcher();
|
||||||
val vicache = new rocketICache(128, 2); // 128 sets x 2 ways
|
val vicache = new rocketICache(128, 2); // 128 sets x 2 ways
|
||||||
val dcache = new HellaCache();
|
val dcache = new HellaCacheUniproc();
|
||||||
val arbiter = new rocketMemArbiter();
|
val arbiter = new rocketMemArbiter();
|
||||||
|
|
||||||
arbiter.io.mem <> io.mem;
|
arbiter.io.mem <> io.mem;
|
||||||
|
Loading…
Reference in New Issue
Block a user