summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/ExtModule.scala
diff options
context:
space:
mode:
authormergify[bot]2022-10-23 19:01:43 +0000
committerGitHub2022-10-23 19:01:43 +0000
commitd997acb05e5a307afb7c9ad4c136b9b4e1506efc (patch)
tree57756efa278459f31cbadce539f6f1a0d7e679f7 /src/test/scala/chiselTests/ExtModule.scala
parent80b3b28f451efa85be50994f732599f043f83d86 (diff)
Don't invalidate ExtModule ports in an explicitInvalidate = true context (backport #2795) (#2799)
* Don't invalidate ExtModule ports in an explicitInvalidate = true context (#2795) * Don't invalidate ExtModule ports in an explicitInvalidate = true context ExtModule ports were previously invalidated in the emitted FIRRTL, which is correct in a NonStrict / `Chisel._` compatibility context but not in newer chisel3 code where `explicitInvalidate = true`. (cherry picked from commit 8e24a281545d25f6501dcc872eabdfb30bacd69d) # Conflicts: # core/src/main/scala/chisel3/BlackBox.scala * Resolve backport conflicts Co-authored-by: Jared Barocsi <82000041+jared-barocsi@users.noreply.github.com> Co-authored-by: Jack Koenig <koenig@sifive.com>
Diffstat (limited to 'src/test/scala/chiselTests/ExtModule.scala')
-rw-r--r--src/test/scala/chiselTests/ExtModule.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/ExtModule.scala b/src/test/scala/chiselTests/ExtModule.scala
index b5a8ff7c..3ab4cc32 100644
--- a/src/test/scala/chiselTests/ExtModule.scala
+++ b/src/test/scala/chiselTests/ExtModule.scala
@@ -88,6 +88,17 @@ class ExtModuleWithFlatIOTester extends Module {
io <> inst.badIO
}
+class ExtModuleInvalidatedTester extends Module {
+ val in = IO(Input(UInt(8.W)))
+ val out = IO(Output(UInt(8.W)))
+ val inst = Module(new ExtModule {
+ val in = IO(Input(UInt(8.W)))
+ val out = IO(Output(UInt(8.W)))
+ })
+ inst.in := in
+ out := inst.out
+}
+
class ExtModuleSpec extends ChiselFlatSpec {
"A ExtModule inverter" should "work" in {
assertTesterPasses({ new ExtModuleTester }, Seq("/chisel3/BlackBoxTest.v"), TesterDriver.verilatorOnly)
@@ -117,4 +128,10 @@ class ExtModuleSpec extends ChiselFlatSpec {
chirrtl should include("inst.in <= io.in")
chirrtl shouldNot include("badIO")
}
+
+ it should "not have invalidated ports in a chisel3._ context" in {
+ val chirrtl = ChiselStage.emitChirrtl(new ExtModuleInvalidatedTester)
+ chirrtl shouldNot include("inst.in is invalid")
+ chirrtl shouldNot include("inst.out is invalid")
+ }
}