diff --git a/src/main/scala/chisel3/aop/Select.scala b/src/main/scala/chisel3/aop/Select.scala index c076935e014..43a1ac03328 100644 --- a/src/main/scala/chisel3/aop/Select.scala +++ b/src/main/scala/chisel3/aop/Select.scala @@ -392,7 +392,7 @@ object Select { .block .getCommands() ) { - case Attach(_, seq) if seq.contains(signal) => seq + case Attach(_, seq) if seq.contains(Node(signal)) => seq }.flatMap { seq => seq.map(_.id.asInstanceOf[Data]) }.toSet } diff --git a/src/test/scala/chiselTests/aop/SelectSpec.scala b/src/test/scala/chiselTests/aop/SelectSpec.scala index 4d65b2cfe6f..e0ecbe1a3d0 100644 --- a/src/test/scala/chiselTests/aop/SelectSpec.scala +++ b/src/test/scala/chiselTests/aop/SelectSpec.scala @@ -88,6 +88,20 @@ class SelectSpec extends ChiselFlatSpec { } + "Test" should "pass if selecting attach" in { + import chisel3.experimental.{attach, Analog} + class AttachTest extends RawModule { + val a, b, c = IO(Analog(8.W)) + attach(a, b, c) + } + val dut = ChiselGeneratorAnnotation(() => new AttachTest) + .elaborate(1) + .asInstanceOf[DesignAnnotation[AttachTest]] + .design + Select.attachedTo(dut)(dut.a) should be(Set(dut.a, dut.b, dut.c)) + + } + "Test" should "pass if selecting ops by kind" in { val dut = ChiselGeneratorAnnotation(() => { new SelectTester(Seq(0, 1, 2))