You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FIRRTL version 4.0.0circuitTop: %[[ {"class": "circt.test", "target": "~Top|Top/foo:Foo>w"} ]]
layerA, bind:
public moduleTop:
inst foo of Foo
inst bar of Foo
moduleFoo:
layerblock A:
wirew : UInt<8>invalidate w
compiling with firtool -parse-only test.fir gives the following IR:
This issue is that the non-local annotation on wire w is not updated when the wire is moved in to a module Foo_A, and corresponding hierpath operation still points to @Foo. I.e. hw.hierpath private @nla [@Top::@sym, @Foo]
should be hw.hierpath private @nla [@Top::@sym, @Foo::@a_sym, @Foo_A]
and the instance of Foo_A needs a new symbol a_sym.
Note that we can't just modify the original HierpathOp, since it may have other users which were not moved, so we must create a new Hierpath op.
This currently does not trigger a verifier error, which has a tracking issue here: #4896
A similar issue was tackled here: #6717
The text was updated successfully, but these errors were encountered:
youngar
changed the title
[FIRRTL][LowerLayers] Lower layers does not update NLAs of non-local annotations
[FIRRTL][LowerLayers] Lower layers does not update HPs of non-local annotations
Jun 7, 2024
Given this firrtl IR:
compiling with
firtool -parse-only test.fir
gives the following IR:After LowerLayers runs we get this IR:
This issue is that the non-local annotation on
wire w
is not updated when the wire is moved in to a moduleFoo_A
, and corresponding hierpath operation still points to@Foo
. I.e.hw.hierpath private @nla [@Top::@sym, @Foo]
should be
hw.hierpath private @nla [@Top::@sym, @Foo::@a_sym, @Foo_A]
and the instance of
Foo_A
needs a new symbola_sym
.Note that we can't just modify the original HierpathOp, since it may have other users which were not moved, so we must create a new Hierpath op.
This currently does not trigger a verifier error, which has a tracking issue here: #4896
A similar issue was tackled here: #6717
The text was updated successfully, but these errors were encountered: