tilelink2: add an intermediate type for simple factories
This commit is contained in:
		| @@ -39,6 +39,12 @@ abstract class TLFactory | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Use this if you have only one node => makes factory adapters possible | ||||
| abstract class TLSimpleFactory extends TLFactory | ||||
| { | ||||
|   def node: TLBaseNode | ||||
| } | ||||
|  | ||||
| abstract class TLModule(factory: TLFactory) extends Module | ||||
| { | ||||
|   override def desiredName = factory.getClass.getName.split('.').last | ||||
|   | ||||
| @@ -59,7 +59,7 @@ object TLRegisterNode | ||||
| // register mapped device from a totally abstract register mapped device. | ||||
| // See GPIO.scala in this directory for an example | ||||
|  | ||||
| abstract class TLRegFactory(address: AddressSet, concurrency: Option[Int], beatBytes: Int) extends TLFactory | ||||
| abstract class TLRegFactory(address: AddressSet, concurrency: Option[Int], beatBytes: Int) extends TLSimpleFactory | ||||
| { | ||||
|   val node = TLRegisterNode(address, concurrency, beatBytes) | ||||
| } | ||||
|   | ||||
| @@ -4,7 +4,7 @@ package uncore.tilelink2 | ||||
|  | ||||
| import Chisel._ | ||||
|  | ||||
| class TLRAM(address: AddressSet, beatBytes: Int = 4) extends TLFactory | ||||
| class TLRAM(address: AddressSet, beatBytes: Int = 4) extends TLSimpleFactory | ||||
| { | ||||
|   val node = TLManagerNode(beatBytes, TLManagerParameters( | ||||
|     address            = List(address), | ||||
|   | ||||
| @@ -13,7 +13,7 @@ object TLXbar | ||||
|   } | ||||
| } | ||||
|  | ||||
| class TLXbar(policy: (Vec[Bool], Bool) => Seq[Bool] = TLXbar.lowestIndex) extends TLFactory | ||||
| class TLXbar(policy: (Vec[Bool], Bool) => Seq[Bool] = TLXbar.lowestIndex) extends TLSimpleFactory | ||||
| { | ||||
|   def mapInputIds (ports: Seq[TLClientPortParameters ]) = assignRanges(ports.map(_.endSourceId)) | ||||
|   def mapOutputIds(ports: Seq[TLManagerPortParameters]) = assignRanges(ports.map(_.endSinkId)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user