tilelink: Monitor construction method is unconditional
Whether or not a Monitor should be placed is decided by diplomacy.
This commit is contained in:
		| @@ -36,9 +36,6 @@ class BaseCoreplexConfig extends Config ((site, here, up) => { | |||||||
|   case PLICParams => PLICParams() |   case PLICParams => PLICParams() | ||||||
|   case ClintParams => ClintParams() |   case ClintParams => ClintParams() | ||||||
|   case DTSTimebase => BigInt(1000000) // 1 MHz |   case DTSTimebase => BigInt(1000000) // 1 MHz | ||||||
|   // TileLink connection global parameters |  | ||||||
|   case TLMonitorBuilder => (args: TLMonitorArgs) => Some(LazyModule(new TLMonitor(args))) |  | ||||||
|   case TLCombinationalCheck => false |  | ||||||
|   case TLBusDelayProbability => 0.0 |   case TLBusDelayProbability => 0.0 | ||||||
| }) | }) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ import freechips.rocketchip.diplomacy._ | |||||||
| import freechips.rocketchip.util.RationalDirection | import freechips.rocketchip.util.RationalDirection | ||||||
| import scala.collection.mutable.ListBuffer | import scala.collection.mutable.ListBuffer | ||||||
|  |  | ||||||
| case object TLMonitorBuilder extends Field[TLMonitorArgs => Option[TLMonitorBase]] | case object TLMonitorBuilder extends Field[TLMonitorArgs => TLMonitorBase](args => LazyModule(new TLMonitor(args))) | ||||||
| case object TLCombinationalCheck extends Field[Boolean] | case object TLCombinationalCheck extends Field[Boolean](false) | ||||||
|  |  | ||||||
| object TLImp extends NodeImp[TLClientPortParameters, TLManagerPortParameters, TLEdgeOut, TLEdgeIn, TLBundle] | object TLImp extends NodeImp[TLClientPortParameters, TLManagerPortParameters, TLEdgeOut, TLEdgeIn, TLBundle] | ||||||
| { | { | ||||||
| @@ -26,7 +26,7 @@ object TLImp extends NodeImp[TLClientPortParameters, TLManagerPortParameters, TL | |||||||
|  |  | ||||||
|   override def connect(edges: () => Seq[TLEdgeIn], bundles: () => Seq[(TLBundle, TLBundle)], enableMonitoring: Boolean) |   override def connect(edges: () => Seq[TLEdgeIn], bundles: () => Seq[(TLBundle, TLBundle)], enableMonitoring: Boolean) | ||||||
|                       (implicit p: Parameters, sourceInfo: SourceInfo): (Option[TLMonitorBase], () => Unit) = { |                       (implicit p: Parameters, sourceInfo: SourceInfo): (Option[TLMonitorBase], () => Unit) = { | ||||||
|     val monitor = if (enableMonitoring) p(TLMonitorBuilder)(TLMonitorArgs(edges, sourceInfo, p)) else None |     val monitor = if (enableMonitoring) Some(p(TLMonitorBuilder)(TLMonitorArgs(edges, sourceInfo, p))) else None | ||||||
|     (monitor, () => { |     (monitor, () => { | ||||||
|       val eval = bundles () |       val eval = bundles () | ||||||
|       monitor.foreach { m => (eval zip m.module.io.in) foreach { case ((i,o), m) => m := TLBundleSnoop(o,i) } } |       monitor.foreach { m => (eval zip m.module.io.in) foreach { case ((i,o), m) => m := TLBundleSnoop(o,i) } } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user