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
The FIRRTL spec allows for an amount of wiggle room on what can be done with deduplication and public modules. Currently, we don't do something as aggressive as we could. Consider the following:
FIRRTL version 4.0.0circuitFoo:
moduleA:
moduleB:
moduleC:
public moduleD:
public moduleFoo:
inst a of A
inst b of B
inst c of C
inst d of D
Currently, only modules A, B, and C dedup. However, it is legal to have these dedup with D.
Modify the dedup pass to dedup A, B, and C into D. In the final Verilog, there should only be two modules.
You can make a call and do anything legal if there are multiple possible dedup targets. E.g., if there is public module D and public module E. This should incorporate the must dedup annotations to do what they say.
The text was updated successfully, but these errors were encountered:
The FIRRTL spec allows for an amount of wiggle room on what can be done with deduplication and public modules. Currently, we don't do something as aggressive as we could. Consider the following:
Currently, only modules
A
,B
, andC
dedup. However, it is legal to have these dedup withD
.Modify the dedup pass to dedup
A
,B
, andC
intoD
. In the final Verilog, there should only be two modules.You can make a call and do anything legal if there are multiple possible dedup targets. E.g., if there is
public module D
andpublic module E
. This should incorporate the must dedup annotations to do what they say.The text was updated successfully, but these errors were encountered: