aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/firrtlTests/LoweringCompilersSpec.scala
diff options
context:
space:
mode:
authorJack Koenig2020-05-01 12:58:43 -0700
committerJack Koenig2020-05-04 13:25:54 -0700
commit9624121164e0c65f7ce81048a8c0621882f1d55b (patch)
tree3283fe625276b0dc4e0baa092affc8b2c785b7e5 /src/test/scala/firrtlTests/LoweringCompilersSpec.scala
parentee0d4079c6076b0af1f9e557f69e7346cdd89d4f (diff)
Add LegalizeAndReductionsTransform
Workaround for https://github.com/verilator/verilator #2300 present in Verilator versions v4.026 - v4.032. This transform turns AND reductions for expressions > 64-bits into an equality check with all ones. It is included as a prerequisite for all Verilog emitters.
Diffstat (limited to 'src/test/scala/firrtlTests/LoweringCompilersSpec.scala')
-rw-r--r--src/test/scala/firrtlTests/LoweringCompilersSpec.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/test/scala/firrtlTests/LoweringCompilersSpec.scala b/src/test/scala/firrtlTests/LoweringCompilersSpec.scala
index 4a7a1700..b9143b26 100644
--- a/src/test/scala/firrtlTests/LoweringCompilersSpec.scala
+++ b/src/test/scala/firrtlTests/LoweringCompilersSpec.scala
@@ -348,7 +348,10 @@ class LoweringCompilersSpec extends FlatSpec with Matchers {
new TransformManager(Forms.LowFormMinimumOptimized).flattenedTransformOrder ++
Seq(new Transforms.LowToLow, new firrtl.MinimumVerilogEmitter)
val tm = (new TransformManager(Seq(Dependency[firrtl.MinimumVerilogEmitter], Dependency[Transforms.LowToLow])))
- compare(expected, tm)
+ val patches = Seq(
+ Add(60, Seq(Dependency[firrtl.transforms.LegalizeAndReductionsTransform]))
+ )
+ compare(expected, tm, patches)
}
it should "schedule inputForm=LowForm after LowFirrtlOptimizations for the VerilogEmitter" in {
@@ -356,7 +359,10 @@ class LoweringCompilersSpec extends FlatSpec with Matchers {
new TransformManager(Forms.LowFormOptimized).flattenedTransformOrder ++
Seq(new Transforms.LowToLow, new firrtl.VerilogEmitter)
val tm = (new TransformManager(Seq(Dependency[firrtl.VerilogEmitter], Dependency[Transforms.LowToLow])))
- compare(expected, tm)
+ val patches = Seq(
+ Add(67, Seq(Dependency[firrtl.transforms.LegalizeAndReductionsTransform]))
+ )
+ compare(expected, tm, patches)
}
}