From 679dd54a8e0d65524b782459b64a10e0d91e3a9d Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Tue, 3 Nov 2020 14:51:58 -0800 Subject: Remove Data.setRef assertion (#1654) It causes issues for some legal (if awkward) patterns. A larger refactor of when refs are set could reinstate this check.--- core/src/main/scala/chisel3/BlackBox.scala | 4 ++-- core/src/main/scala/chisel3/internal/Builder.scala | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'core/src') diff --git a/core/src/main/scala/chisel3/BlackBox.scala b/core/src/main/scala/chisel3/BlackBox.scala index 1b093ee1..8f831044 100644 --- a/core/src/main/scala/chisel3/BlackBox.scala +++ b/core/src/main/scala/chisel3/BlackBox.scala @@ -165,8 +165,8 @@ abstract class BlackBox(val params: Map[String, Param] = Map.empty[String, Param // Long term solution will be to define BlackBox IO differently as part of // it not descending from the (current) Module for ((name, port) <- namedPorts) { - // We have to force override the _ref because it was set during IO binding - port.setRef(ModuleIO(this, _namespace.name(name)), force = true) + // Override the _ref because it was set during IO binding + port.setRef(ModuleIO(this, _namespace.name(name))) } // We need to call forceName and onModuleClose on all of the sub-elements diff --git a/core/src/main/scala/chisel3/internal/Builder.scala b/core/src/main/scala/chisel3/internal/Builder.scala index 30fa2db2..57a0f968 100644 --- a/core/src/main/scala/chisel3/internal/Builder.scala +++ b/core/src/main/scala/chisel3/internal/Builder.scala @@ -198,8 +198,7 @@ private[chisel3] trait HasId extends InstanceId { } private var _ref: Option[Arg] = None - private[chisel3] def setRef(imm: Arg, force: Boolean = false): Unit = { - assert(force || _ref.isEmpty, s"Internal Error, setRef for $this called twice! first ${_ref.get}, second $imm") + private[chisel3] def setRef(imm: Arg): Unit = { _ref = Some(imm) } private[chisel3] def setRef(parent: HasId, name: String): Unit = setRef(Slot(Node(parent), name)) -- cgit v1.2.3