summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel3/util/BitPat.scala
diff options
context:
space:
mode:
authorJiuyang Liu2021-12-15 15:53:52 +0800
committerGitHub2021-12-15 07:53:52 +0000
commit36506c527ff0f51636beee4160f0ce1f6ad2f90a (patch)
treeef6f708959d6f115154d76ddd6216a7ba288a01f /src/main/scala/chisel3/util/BitPat.scala
parent7e8ec50376f852d5ab35d7609d986c7e4128abb1 (diff)
Refactor TruthTable to use Seq (#2217)
This makes the resulting Verilog from decoding a TruthTable deterministic.
Diffstat (limited to 'src/main/scala/chisel3/util/BitPat.scala')
-rw-r--r--src/main/scala/chisel3/util/BitPat.scala6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/scala/chisel3/util/BitPat.scala b/src/main/scala/chisel3/util/BitPat.scala
index 4b94879f..4f8ae504 100644
--- a/src/main/scala/chisel3/util/BitPat.scala
+++ b/src/main/scala/chisel3/util/BitPat.scala
@@ -8,6 +8,12 @@ import chisel3.internal.sourceinfo.{SourceInfo, SourceInfoTransform}
object BitPat {
+
+ private[chisel3] implicit val bitPatOrder = new Ordering[BitPat] {
+ import scala.math.Ordered.orderingToOrdered
+ def compare(x: BitPat, y: BitPat): Int = (x.getWidth, x.value, x.mask) compare (y.getWidth, y.value, y.mask)
+ }
+
/** Parses a bit pattern string into (bits, mask, width).
*
* @return bits the literal value, with don't cares being 0