summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/chisel3/util/experimental/BoringUtils.scala8
-rw-r--r--src/test/scala/chiselTests/BoringUtilsSpec.scala17
2 files changed, 24 insertions, 1 deletions
diff --git a/src/main/scala/chisel3/util/experimental/BoringUtils.scala b/src/main/scala/chisel3/util/experimental/BoringUtils.scala
index da5b3fd0..36b3fb88 100644
--- a/src/main/scala/chisel3/util/experimental/BoringUtils.scala
+++ b/src/main/scala/chisel3/util/experimental/BoringUtils.scala
@@ -181,8 +181,14 @@ object BoringUtils {
* component
*/
def bore(source: Data, sinks: Seq[Data]): String = {
- lazy val genName = addSource(source, source.instanceName, true, true)
+ val boringName = try {
+ source.instanceName
+ } catch {
+ case _: Exception => "bore"
+ }
+ val genName = addSource(source, boringName, true, true)
sinks.map(addSink(_, genName, true, true))
genName
}
+
}
diff --git a/src/test/scala/chiselTests/BoringUtilsSpec.scala b/src/test/scala/chiselTests/BoringUtilsSpec.scala
index 856f6b91..755ba60b 100644
--- a/src/test/scala/chiselTests/BoringUtilsSpec.scala
+++ b/src/test/scala/chiselTests/BoringUtilsSpec.scala
@@ -106,4 +106,21 @@ class BoringUtilsSpec extends ChiselFlatSpec with ChiselRunners {
.getMessage should startWith ("Unable to determine source mapping for sink")
}
+ class InternalBore extends RawModule {
+ val in = IO(Input(Bool()))
+ val out = IO(Output(Bool()))
+ out := false.B
+ BoringUtils.bore(in, Seq(out))
+ }
+
+ class InternalBoreTester extends ShouldntAssertTester {
+ val dut = Module(new InternalBore)
+ dut.in := true.B
+ chisel3.assert(dut.out === true.B)
+ }
+
+ it should "work for an internal (same module) BoringUtils.bore" in {
+ runTester(new InternalBoreTester) should be (true)
+ }
+
}