aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/transforms/CheckCombLoops.scala
diff options
context:
space:
mode:
authorDavid Biancolin2020-03-17 19:03:17 -0700
committerGitHub2020-03-17 19:03:17 -0700
commit960ea3bf75b8099fc1158b78c8554effb48e2bf5 (patch)
tree6174515a747b7a17310c37f3af943b94765a3467 /src/main/scala/firrtl/transforms/CheckCombLoops.scala
parentba1f24345ac5ab20c669c73b871920001ac3a8ed (diff)
Add method to CheckCompLoops which returns its full netlist (#1458)
Diffstat (limited to 'src/main/scala/firrtl/transforms/CheckCombLoops.scala')
-rw-r--r--src/main/scala/firrtl/transforms/CheckCombLoops.scala13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/main/scala/firrtl/transforms/CheckCombLoops.scala b/src/main/scala/firrtl/transforms/CheckCombLoops.scala
index b7ba5c5e..53be9a98 100644
--- a/src/main/scala/firrtl/transforms/CheckCombLoops.scala
+++ b/src/main/scala/firrtl/transforms/CheckCombLoops.scala
@@ -279,26 +279,33 @@ class CheckCombLoops extends Transform with RegisteredTransform with PreservesAl
val sources = tos.map(to => mt.ref(to.name))
CombinationalPath(sink, sources.toSeq)
}
- (state.copy(annotations = state.annotations ++ annos), errors, simplifiedModuleGraphs)
+ (state.copy(annotations = state.annotations ++ annos), errors, simplifiedModuleGraphs, moduleGraphs)
}
/**
* Returns a Map from Module name to port connectivity
*/
def analyze(state: CircuitState): collection.Map[String,DiGraph[String]] = {
- val (result, errors, connectivity) = run(state)
+ val (result, errors, connectivity, _) = run(state)
connectivity.map {
case (k, v) => (k, v.transformNodes(ln => ln.name))
}
}
+ /**
+ * Returns a Map from Module name to complete netlist connectivity
+ */
+ def analyzeFull(state: CircuitState): collection.Map[String,DiGraph[LogicNode]] = {
+ run(state)._4
+ }
+
def execute(state: CircuitState): CircuitState = {
val dontRun = state.annotations.contains(DontCheckCombLoopsAnnotation)
if (dontRun) {
logger.warn("Skipping Combinational Loop Detection")
state
} else {
- val (result, errors, connectivity) = run(state)
+ val (result, errors, connectivity, _) = run(state)
errors.trigger()
result
}