Product Documentation
Virtuoso Layout Suite SKILL Reference
Product Version IC23.1, November 2023

lxCreateSynchronousClonesFromFigGroups

lxCreateSynchronousClonesFromFigGroups(
( figGroupList )
[ dumpConsistencyCheckMsg ]
[ dumpNonClonableFigGroups ]
)
=> t / nil

Description

Creates a new clone family from a list of basic figGroups. When the clone family is created, the function runs the Clone Consistency Checker to verify that the figGroups are effectively synchronous. The checks that are run include verifying that the figGroups are identical, which means their shapes exist on the same layer, instances belong to the same master, and have the same relative position, and so on.

See Additional Information.

Arguments

figGroupList

List of figGroups to be transformed to synchronous clones.

dumpConsistencyCheckMsg

Displays the messages issued during the Clone Consistency Check.

The default is nil.

dumpNonClonableFigGroups

Displays the list of figGroups, such as the placement area figGroup, that cannot be cloned or that contain figures that cannot be cloned.

Value Returned

t

The specified figGroups in the figGroup list are grouped in the syncClone figGroup to create a new clone family.

nil

Error with syncClone figGroup creation, synchronous clone family not created.

Additional Information

During the Clone Consistency Check, the checker may do one of the following:

1) Keep all the figGroups in the clone family when they are all found to be identical. In this case, all the figGroups have their type changed to "syncClone".

2) Keep part of the figGroups in the clone family. Identical figGroups get their type changed to "syncClone", other figGroups are removed form the clone family and kept as basic figGroups of type "none".

3) None of the figGroups are retained because all the figGroups are found to be different. In this case, the clone family is destroyed and all the figGroups are kept as basic figGroups of type "none".

4) Identify subgroup of the identical figGroups. In this case, the original clone family is split into several clone families. Each family gathers a set of identical figGroups. Each figGroup belonging to a clone family gets their type changed to "syncClone". Other figGroups that are not identical to any other figGroup are kept as basic figGroups of type "none".

Example

figGroupList = deGetCellView()~>figGroups
(db:0x29687b9a db:0x29687b9b db:0x29687b9c db:0x29687b9d db:0x29687b9e
db:0x29687b9f db:0x29687ba0
)
> 
figGroupList~>type
("none" "none" "none" "none" "none"
"none" "none"
)
> 
lxCreateSynchronousClonesFromFigGroups(figGroupList)
t
> 
figGroupList~>type
("syncClone" "syncClone" "syncClone" "syncClone" "syncClone"
"syncClone" "syncClone"
)
> 
=> Gathers all the identical figGroups of the opened cellView into clone family.
Select few figGroups in the layout cellView, then
figGroupList = geGetSelSet()
(db:0x29687b9b db:0x29687b9c db:0x29687b9a)
> 
figGroupList~>objType
("figGroup" "figGroup" "figGroup")
> 
figGroupList~>type
("none" "none" "none")
> 
lxCreateSynchronousClonesFromFigGroups(figGroupList t)
INFO (LX-1350): The synchronous clone consistency check is running.
INFO (LX-1368): The inst (db:0x2968de1c) in clone "cloneFamily0_0" and the inst (db:0x2968de1e) in clone "cloneFamily0_1" are different.
INFO (LX-1362): Clone 'cloneFamily0_1' has been removed from family 'cloneFamily0' by cloning consistency check.
> 
hiDBoxOK(lxCCCWarnPanel)
t
t
> 
figGroupList~>type
("none" "syncClone" "syncClone")
> 

Return to top
 ⠀
X