diff options
| author | Kevin Laeufer | 2021-09-08 15:18:53 -0700 |
|---|---|---|
| committer | GitHub | 2021-09-08 22:18:53 +0000 |
| commit | 441930e2ad03f48adc052cd1d00af3d10d786dca (patch) | |
| tree | b3ff50569925e6ca2de96dab620a33831d14d23e /src/main/scala/firrtl/backends/experimental/smt/TransitionSystem.scala | |
| parent | f76640d9dc4620a3b61975d54e5783c36e7c6936 (diff) | |
smt: make SMT + TransitionSystem lib public (#2350)
Diffstat (limited to 'src/main/scala/firrtl/backends/experimental/smt/TransitionSystem.scala')
| -rw-r--r-- | src/main/scala/firrtl/backends/experimental/smt/TransitionSystem.scala | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/main/scala/firrtl/backends/experimental/smt/TransitionSystem.scala b/src/main/scala/firrtl/backends/experimental/smt/TransitionSystem.scala index 66a1b385..bd3ad740 100644 --- a/src/main/scala/firrtl/backends/experimental/smt/TransitionSystem.scala +++ b/src/main/scala/firrtl/backends/experimental/smt/TransitionSystem.scala @@ -6,14 +6,14 @@ package firrtl.backends.experimental.smt import firrtl.graph.MutableDiGraph import scala.collection.mutable -private case class State(sym: SMTSymbol, init: Option[SMTExpr], next: Option[SMTExpr]) { +case class State(sym: SMTSymbol, init: Option[SMTExpr], next: Option[SMTExpr]) { def name: String = sym.name } -private case class Signal(name: String, e: SMTExpr, lbl: SignalLabel = IsNode) { +case class Signal(name: String, e: SMTExpr, lbl: SignalLabel = IsNode) { def toSymbol: SMTSymbol = SMTSymbol.fromExpr(name, e) def sym: SMTSymbol = toSymbol } -private case class TransitionSystem( +case class TransitionSystem( name: String, inputs: List[BVSymbol], states: List[State], @@ -23,23 +23,23 @@ private case class TransitionSystem( def serialize: String = TransitionSystem.serialize(this) } -private sealed trait SignalLabel -private case object IsNode extends SignalLabel -private case object IsOutput extends SignalLabel -private case object IsConstraint extends SignalLabel -private case object IsBad extends SignalLabel -private case object IsFair extends SignalLabel -private case object IsNext extends SignalLabel -private case object IsInit extends SignalLabel +sealed trait SignalLabel +case object IsNode extends SignalLabel +case object IsOutput extends SignalLabel +case object IsConstraint extends SignalLabel +case object IsBad extends SignalLabel +case object IsFair extends SignalLabel +case object IsNext extends SignalLabel +case object IsInit extends SignalLabel -private object SignalLabel { +object SignalLabel { private val labels = Seq(IsNode, IsOutput, IsConstraint, IsBad, IsFair, IsNext, IsInit) val labelStrings = Seq("node", "output", "constraint", "bad", "fair", "next", "init") val labelToString: SignalLabel => String = labels.zip(labelStrings).toMap val stringToLabel: String => SignalLabel = labelStrings.zip(labels).toMap } -private object TransitionSystem { +object TransitionSystem { def serialize(sys: TransitionSystem): String = { (Iterator(sys.name) ++ sys.inputs.map(i => s"input ${i.name} : ${SMTExpr.serializeType(i)}") ++ |
