tilelink: Monitor construction method is unconditional
Whether or not a Monitor should be placed is decided by diplomacy.
This commit is contained in:
parent
7a8364ef08
commit
a450357744
@ -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) } }
|
||||||
|
Loading…
Reference in New Issue
Block a user