Factor coreplex IO connection into separate trait (#350)
This would allow, for instance, putting the coreplex on a separate clock domain and crossing the IOs over through asynchronous queues. The ExampleMultiClockTop* classes are removed since they no longer fit into the class hierarchy.
This commit is contained in:
		@@ -67,7 +67,7 @@ abstract class BaseTopModule[+L <: BaseTop, +B <: BaseTopBundle](
 | 
			
		||||
  val io: B = b
 | 
			
		||||
 | 
			
		||||
  val coreplex = p(BuildCoreplex)(outer.c, p)
 | 
			
		||||
  val coreplexIO = coreplex.io
 | 
			
		||||
  val coreplexIO = Wire(coreplex.io)
 | 
			
		||||
 | 
			
		||||
  val pBus =
 | 
			
		||||
    Module(new TileLinkRecursiveInterconnect(1, p(GlobalAddrMap).subMap("io:pbus"))(
 | 
			
		||||
@@ -95,3 +95,10 @@ abstract class BaseTopModule[+L <: BaseTop, +B <: BaseTopBundle](
 | 
			
		||||
 | 
			
		||||
  io.success := coreplexIO.success
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trait DirectConnection {
 | 
			
		||||
  val coreplexIO: BaseCoreplexBundle
 | 
			
		||||
  val coreplex: BaseCoreplexModule[BaseCoreplex, BaseCoreplexBundle]
 | 
			
		||||
 | 
			
		||||
  coreplexIO <> coreplex.io
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user