From f998a07cc51d62db7f66be059d2a69d54a43e0b1 Mon Sep 17 00:00:00 2001 From: Aditya Naik Date: Wed, 24 Jul 2024 01:07:36 -0700 Subject: Update Builder.scala --- core/src/main/scala/chisel3/Aggregate.scala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'core/src/main/scala/chisel3/Aggregate.scala') diff --git a/core/src/main/scala/chisel3/Aggregate.scala b/core/src/main/scala/chisel3/Aggregate.scala index ab7fe53f..2c4f67db 100644 --- a/core/src/main/scala/chisel3/Aggregate.scala +++ b/core/src/main/scala/chisel3/Aggregate.scala @@ -148,8 +148,9 @@ class Vec[T <: Data] private[chisel3] (gen: => T, val vec_length: Int) extends A // simpler. private lazy val self: Seq[T] = { val _self = Vector.fill(vec_length)(gen) + val thisNode = Node(this) // Share the same Node for all elements. for ((elt, i) <- _self.zipWithIndex) - elt.setRef(this, i) + elt.setRef(thisNode, i) _self } @@ -225,7 +226,7 @@ class Vec[T <: Data] private[chisel3] (gen: => T, val vec_length: Int) extends A port.bind(ChildBinding(this), reconstructedResolvedDirection) val i = Vec.truncateIndex(p, length) - port.setRef(this, i) + port.setRef(Node(this), i) port } @@ -728,8 +729,9 @@ abstract class Record extends Aggregate { !opaqueType || (elements.size == 1 && elements.head._1 == ""), s"Opaque types must have exactly one element with an empty name, not ${elements.size}: ${elements.keys.mkString(", ")}" ) + val thisNode = Node(this) // Share the same Node for all elements. for ((name, elt) <- elements) { - elt.setRef(this, _namespace.name(name, leadingDigitOk = true), opaque = opaqueType) + elt.setRef(thisNode, _namespace.name(name, leadingDigitOk = true), opaque = opaqueType) } } -- cgit v1.2.3