From 7971947d6c19f79c01c84164ca6ae788ac8ddf8c Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Sun, 19 Mar 2017 16:34:23 -0700 Subject: [PATCH] tilelink2 Monitor: don't inspect bits if valid is forbidden --- src/main/scala/uncore/tilelink2/Monitor.scala | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/scala/uncore/tilelink2/Monitor.scala b/src/main/scala/uncore/tilelink2/Monitor.scala index e540f00a..87ea1931 100644 --- a/src/main/scala/uncore/tilelink2/Monitor.scala +++ b/src/main/scala/uncore/tilelink2/Monitor.scala @@ -295,10 +295,16 @@ class TLMonitor(args: TLMonitorArgs) extends TLMonitorBase(args) def legalizeFormat(bundle: TLBundleSnoop, edge: TLEdge)(implicit sourceInfo: SourceInfo) = { when (bundle.a.valid) { legalizeFormatA(bundle.a.bits, edge) } - when (bundle.b.valid) { legalizeFormatB(bundle.b.bits, edge) } - when (bundle.c.valid) { legalizeFormatC(bundle.c.bits, edge) } when (bundle.d.valid) { legalizeFormatD(bundle.d.bits, edge) } - when (bundle.e.valid) { legalizeFormatE(bundle.e.bits, edge) } + if (edge.client.anySupportProbe && edge.manager.anySupportAcquireB) { + when (bundle.b.valid) { legalizeFormatB(bundle.b.bits, edge) } + when (bundle.c.valid) { legalizeFormatC(bundle.c.bits, edge) } + when (bundle.e.valid) { legalizeFormatE(bundle.e.bits, edge) } + } else { + assert (!bundle.b.valid, "'B' channel valid and not TL-C" + extra) + assert (!bundle.c.valid, "'C' channel valid and not TL-C" + extra) + assert (!bundle.e.valid, "'E' channel valid and not TL-C" + extra) + } } def legalizeMultibeatA(a: DecoupledSnoop[TLBundleA], edge: TLEdge)(implicit sourceInfo: SourceInfo) { @@ -398,9 +404,11 @@ class TLMonitor(args: TLMonitorArgs) extends TLMonitorBase(args) def legalizeMultibeat(bundle: TLBundleSnoop, edge: TLEdge)(implicit sourceInfo: SourceInfo) { legalizeMultibeatA(bundle.a, edge) - legalizeMultibeatB(bundle.b, edge) - legalizeMultibeatC(bundle.c, edge) legalizeMultibeatD(bundle.d, edge) + if (edge.client.anySupportProbe && edge.manager.anySupportAcquireB) { + legalizeMultibeatB(bundle.b, edge) + legalizeMultibeatC(bundle.c, edge) + } } def legalizeSourceUnique(bundle: TLBundleSnoop, edge: TLEdge)(implicit sourceInfo: SourceInfo) {