summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/util
diff options
context:
space:
mode:
authorLeway Colin2021-07-15 07:22:20 +0800
committerGitHub2021-07-14 16:22:20 -0700
commite6c902eaf6f63413ff8f3b12ad8993cf34447413 (patch)
tree051779057f56faf67185b2c360f4e1368f591606 /src/test/scala/chiselTests/util
parent695864f5716626a15a7798dae048d8301940a2db (diff)
Fix Cat rename signal (#2011)
Co-authored-by: Jack Koenig <koenig@sifive.com>
Diffstat (limited to 'src/test/scala/chiselTests/util')
-rw-r--r--src/test/scala/chiselTests/util/CatSpec.scala30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/util/CatSpec.scala b/src/test/scala/chiselTests/util/CatSpec.scala
index 5565ca51..79d2c027 100644
--- a/src/test/scala/chiselTests/util/CatSpec.scala
+++ b/src/test/scala/chiselTests/util/CatSpec.scala
@@ -5,6 +5,7 @@ package chiselTests.util
import chisel3._
import chisel3.stage.ChiselStage
import chisel3.util.Cat
+import chisel3.experimental.noPrefix
import chiselTests.ChiselFlatSpec
@@ -31,4 +32,33 @@ class CatSpec extends ChiselFlatSpec {
}
+ it should "not override the names of its arguments" in {
+ class MyModule extends RawModule {
+ val a, b, c, d = IO(Input(UInt(8.W)))
+ val out = IO(Output(UInt()))
+
+ out := Cat(a, b, c, d)
+ }
+ val chirrtl = ChiselStage.emitChirrtl(new MyModule)
+ for (name <- Seq("a", "b", "c", "d")) {
+ chirrtl should include (s"input $name : UInt<8>")
+ }
+ }
+
+ it should "have prefixed naming" in {
+ class MyModule extends RawModule {
+ val in = IO(Input(Vec(8, UInt(8.W))))
+ val out = IO(Output(UInt()))
+
+ // noPrefix to avoid `out` as prefix
+ out := noPrefix(Cat(in))
+ }
+ val chirrtl = ChiselStage.emitChirrtl(new MyModule)
+ chirrtl should include ("node lo_lo = cat(in[6], in[7])")
+ chirrtl should include ("node lo_hi = cat(in[4], in[5])")
+ chirrtl should include ("node hi_lo = cat(in[2], in[3])")
+ chirrtl should include ("node hi_hi = cat(in[0], in[1])")
+ }
+
+
}