Don't instantiate PTW when UseVM=false
This commit is contained in:
		@@ -125,10 +125,12 @@ class RocketTile(resetSignal: Bool = null)(implicit p: Parameters) extends Tile(
 | 
			
		||||
  require(uncachedPorts.size == nUncachedTileLinkPorts)
 | 
			
		||||
  require(cachedPorts.size == nCachedTileLinkPorts)
 | 
			
		||||
 | 
			
		||||
  if (p(UseVM)) {
 | 
			
		||||
    val ptw = Module(new PTW(ptwPorts.size)(dcacheParams))
 | 
			
		||||
    ptw.io.requestor <> ptwPorts
 | 
			
		||||
    ptw.io.mem +=: dcPorts
 | 
			
		||||
    core.io.ptw <> ptw.io.dpath
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  val dcArb = Module(new HellaCacheArbiter(dcPorts.size)(dcacheParams))
 | 
			
		||||
  dcArb.io.requestor <> dcPorts
 | 
			
		||||
 
 | 
			
		||||
@@ -137,7 +137,7 @@ class TLB(implicit p: Parameters) extends TLBModule()(p) {
 | 
			
		||||
  val w_array = Mux(priv_s, sw_array.toBits & pum_ok, uw_array.toBits)
 | 
			
		||||
  val x_array = Mux(priv_s, sx_array.toBits, ux_array.toBits)
 | 
			
		||||
 | 
			
		||||
  val vm_enabled = io.ptw.status.vm(3) && priv_uses_vm && !io.req.bits.passthrough
 | 
			
		||||
  val vm_enabled = Bool(usingVM) && io.ptw.status.vm(3) && priv_uses_vm && !io.req.bits.passthrough
 | 
			
		||||
  val bad_va =
 | 
			
		||||
    if (vpnBits == vpnBitsExtended) Bool(false)
 | 
			
		||||
    else io.req.bits.vpn(vpnBits) =/= io.req.bits.vpn(vpnBits-1)
 | 
			
		||||
@@ -174,6 +174,7 @@ class TLB(implicit p: Parameters) extends TLBModule()(p) {
 | 
			
		||||
  io.ptw.req.bits.store := r_req.store
 | 
			
		||||
  io.ptw.req.bits.fetch := r_req.instruction
 | 
			
		||||
 | 
			
		||||
  if (usingVM) {
 | 
			
		||||
    when (io.req.fire() && tlb_miss) {
 | 
			
		||||
      state := s_request
 | 
			
		||||
      r_refill_tag := lookup_tag
 | 
			
		||||
@@ -196,6 +197,7 @@ class TLB(implicit p: Parameters) extends TLBModule()(p) {
 | 
			
		||||
      state := s_ready
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class DecoupledTLB(implicit p: Parameters) extends Module {
 | 
			
		||||
  val io = new Bundle {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user