rocketchip: fix all clock crossings
This commit is contained in:
		@@ -54,8 +54,6 @@ abstract class BaseTop[+C <: BaseCoreplex](buildCoreplex: Parameters => C)(impli
 | 
			
		||||
    TLWidthWidget(p(SOCBusKey).beatBytes)(
 | 
			
		||||
    socBus.node)))
 | 
			
		||||
 | 
			
		||||
  socBus.node := coreplex.mmio
 | 
			
		||||
 | 
			
		||||
  TopModule.contents = Some(this)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -66,7 +64,11 @@ abstract class BaseTopBundle[+L <: BaseTop[BaseCoreplex]](val outer: L) extends
 | 
			
		||||
 | 
			
		||||
abstract class BaseTopModule[+L <: BaseTop[BaseCoreplex], +B <: BaseTopBundle[L]](val outer: L, val io: B) extends LazyModuleImp(outer) {
 | 
			
		||||
  implicit val p = outer.p
 | 
			
		||||
  val coreplexIO = Wire(outer.coreplex.module.io)
 | 
			
		||||
 | 
			
		||||
  val coreplexMem        : Vec[ClientUncachedTileLinkIO] = Wire(outer.coreplex.module.io.mem)
 | 
			
		||||
  val coreplexSlave      : Vec[ClientUncachedTileLinkIO] = Wire(outer.coreplex.module.io.slave)
 | 
			
		||||
  val coreplexDebug      : DebugBusIO                    = Wire(outer.coreplex.module.io.debug)
 | 
			
		||||
  val coreplexInterrupts : Vec[Bool]                     = Wire(outer.coreplex.module.io.interrupts)
 | 
			
		||||
 | 
			
		||||
  println("Generated Address Map")
 | 
			
		||||
  for (entry <- p(GlobalAddrMap).flatten) {
 | 
			
		||||
@@ -88,12 +90,26 @@ abstract class BaseTopModule[+L <: BaseTop[BaseCoreplex], +B <: BaseTopBundle[L]
 | 
			
		||||
  println(p(ConfigString))
 | 
			
		||||
  ConfigStringOutput.contents = Some(p(ConfigString))
 | 
			
		||||
 | 
			
		||||
  io.success := coreplexIO.success
 | 
			
		||||
  io.success := outer.coreplex.module.io.success
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trait DirectConnection {
 | 
			
		||||
  val coreplexIO: BaseCoreplexBundle[BaseCoreplex]
 | 
			
		||||
  val coreplex: BaseCoreplex
 | 
			
		||||
  val socBus: TLXbar
 | 
			
		||||
 | 
			
		||||
  socBus.node := coreplex.mmio
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trait DirectConnectionModule {
 | 
			
		||||
  val outer: BaseTop[BaseCoreplex]
 | 
			
		||||
 | 
			
		||||
  coreplexIO <> outer.coreplex.module.io
 | 
			
		||||
  val coreplexMem        : Vec[ClientUncachedTileLinkIO]
 | 
			
		||||
  val coreplexSlave      : Vec[ClientUncachedTileLinkIO]
 | 
			
		||||
  val coreplexDebug      : DebugBusIO
 | 
			
		||||
  val coreplexInterrupts : Vec[Bool]
 | 
			
		||||
 | 
			
		||||
  coreplexMem        <> outer.coreplex.module.io.mem
 | 
			
		||||
  coreplexInterrupts <> outer.coreplex.module.io.interrupts
 | 
			
		||||
  outer.coreplex.module.io.slave <> coreplexSlave
 | 
			
		||||
  outer.coreplex.module.io.debug <> coreplexDebug
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user