File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed
core/src/main/scala/dfhdl/compiler/patching Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -180,8 +180,17 @@ extension (db: DB)
180
180
// }
181
181
ret
182
182
case (rc, (origMember, Patch .Add (db, config))) =>
183
+ // if the original member is a global value, the all references pointing to the top design in the patch
184
+ // db should point to an empty member for global placement
185
+ val fixedGlobalRefTable = origMember match
186
+ case dfVal : DFVal .CanBeGlobal if dfVal.isGlobal =>
187
+ db.refTable.map { case (ref, member) =>
188
+ if (member == db.top) (ref, DFMember .Empty )
189
+ else (ref, member)
190
+ }
191
+ case _ => db.refTable
183
192
// updating the patched DB reference table members with the newest members kept by the replacement context
184
- val updatedPatchRefTable = rc.getUpdatedRefTable(db.refTable )
193
+ val updatedPatchRefTable = rc.getUpdatedRefTable(fixedGlobalRefTable )
185
194
val keepRefList = db.members.flatMap(_.getRefs)
186
195
val repRT = config match
187
196
case Patch .Add .Config .ReplaceWithMemberN (n, repConfig, refFilter) =>
You can’t perform that action at this time.
0 commit comments