3
Design Intent Functions
This chapter covers details about the SKILL functions available to create and edit Design Intent.
- ciAPRDIDeviceGroupIterator
- ciAPRDINetIterator
- ciCheckDINetHierConsistency
- ciDevGroupBoxIterator
- ciDIGetRegisteredIgnoredTerminals
- ciDIHierConsistencyCheck
- ciDIHierPushDown
- ciDIHierPushDownDIWithPaths
- ciDIHierPushUp
- ciDIHierPushUpDIWithPaths
- ciDiMinMaxVPropertyCallback
- ciDiPostTransferHighCurrent
- ciDiPostTransferMinMaxVoltage
- ciDIRegisterIgnoredTerminals
- ciDiReplaceOrAddPropertyGroupDef
- ciDiReportGenReport
- ciDIUpdateArrowDirections
- ciResetDIImplementation
- ciSetDIPropertyGroupDefs
- ciTemplateChangeDIProfile
- ciTemplateCreateDI
- ciTemplateDIProfileName
- ciTemplateDIPropDef
- ciTemplateDIPropGroupDef
- ciTemplateDIPropValue
- ciTemplateIsKindOfDI
- ciTemplateListDIProps
- ciTemplateUpdateDIProps
- ciUpdateObjPropsFromDI
Related Topics
Virtuoso Design Intent User Guide
ciAPRDIDeviceGroupIterator
ciAPRDIDeviceGroupIterator(d_cellViewId t_matchExpression) =>l_schematicInstances/ nil
Description
Runs an iterator to identify advanced place and route Design Intent structures in the specified design.
Arguments
|
Expression to be applied by the iterator to find the required structures in the given cellview. |
|
Value Returned
|
A list of schematic instances that match the specified expression. |
|
Examples
Runs the iterator to identify schematic instances that have Design Intent structures.
cvId = geGetEditCellView()
instances = ciAPRDIDeviceGroupIterator(cvId "t")
("/M1" "/M2")
ciAPRDINetIterator
ciAPRDINetIterator(d_cellViewId t_APRDIProfile) =>l_dbIDs/ nil
Description
Iterates through all nets that are associated with an APR Net Design Intent in the cellview. The iterator expression is the APR Net DI profile name, for example, APR Net Shielding.
Arguments
Value Returned
|
A list of database IDs and hierarchical paths of all net groups and the Design Intent templates they are contained within. |
|
Examples
Groups all nets that are part of an APR Net DI with profile "APR Net Symmetry".
aprProfileExpr = "APR Net Symmetry"
symmetricNetGroups = ciAPRDINetIterator(cv aprProfileExpr) firstSymmGrp = car(symmetricNetGroups) netInfo = setof(res firstSymmGrp res->dbId->objType == "net")
foreach(mapcar netRes netInfo netRes->dbId->name)
("net48" "net40")
ciCheckDINetHierConsistency
ciCheckDINetHierConsistency(t_profileName[ ?profilePropsl_profilePropsAndValues] [ ?cvg_cellview]) => t / nil
Description
Checks that the propagated design intent is consistent with the reference design intent for the selected nets. If no nets are selected, consistency is checked for all nets in the current cellview. Warns about mismatches in profile property values for Design Intent on the same net through the hierarchy or if the Design Intent is missing on a net at a particular level in the hierarchy. The basis for the comparison can be one of the following:
- Profile name of a reference Design Intent
- Profile name and one or more of properties of the reference Design Intent
- Profile name, one or more of properties of the reference Design Intent, and their values
Arguments
Value Returned
Examples
ciCheckDINetHierConsistency("Net Voltage")
This example uses the Net Voltage profile as the basis of the propagation check.
ciCheckDINetHierConsistency("Net Voltage" '(("Min Voltage")("Max Voltage")))
This example uses the Min Voltage and Max Voltage properties of the Net Voltage profile as the basis of the propagation check.
ciCheckDINetHierConsistency("Net Voltage" '(("Min Voltage" 0.0)("Max Voltage" 3.3)))
This example additionally uses the supplied property values as the reference values for consistency checking across the hierarchy.
ciDevGroupBoxIterator
ciDevGroupBoxIterator(d_cellview t_finderExpr) =>l_dbId/ nil
Description
Iterates all device groups within a cellview that are enclosed by a text box.
Arguments
|
The cellview containing the design instances to be iterated. |
|
Value Returned
|
A list of lists, where each sublist contains the devices within each group. |
|
Example
ciDevGroupBoxIterator(geGetEditCellView() "ciIsDevice(inst \“fet\”) && !ciIgnoreDevice(inst)")~>name
(("M12" "M5" "M4")
("PM7")
("M2" "M3")
)
Three text boxes were identified, each containing a list of instances as shown.
ciDIGetRegisteredIgnoredTerminals
ciDIGetRegisteredIgnoredTerminals(
)
=> nil / l_ignoredTerms
Description
Returns the list of terminals that have been registered to be ignored when creating a design intent.
Arguments
Value Returned
|
Returns a list of the registered terminals as a list of the form (("t_termA" ... "t_termX") ("t_libName" "t_cellName" "t_viewName") ...) where: |
Example
Lists the terminals that are registered to be ignored:
(ciDIGetRegisteredIgnoredTerminals)
((("G") ("gpdk045" "nmos2v" "symbol"))(("G") ("gpdk045" "pmos2v" "symbol")))
Related topics
ciDIRegisterIgnoredTerminals
ciDIHierConsistencyCheck
ciDIHierConsistencyCheck(
d_cv
)
=> t / nil
Description
Runs the design intent consistency checks in the selected cellview.
Arguments
|
The cellview in which the consistency checks need to be run. |
Value Returned
Example
Run consistency checks in the cellview currently being edited:
ciDIHierConsistencyCheck
(geGetEditCellView())
ciDIHierPushDown
ciDIHierPushDown(
d_cv
{ 'replace | 'update }
)
=> t / nil
Description
Pushes the selected net or HighCurrent design intent down the hierarchy. You can choose whether to replace or update any existing design intent at the lower level.
Arguments
Value Returned
Example
Replaces the specified design intent at the lower level:
cv = geGetEditCellView()
hsmSelect(?cellview cv ?type 'template ?name "NetDI")
ciDIHierPushDown(cv 'replace)
Related topics
ciDIHierPushDownDIWithPaths
ciDIHierPushDownDIWithPaths(d_cv{ 'replace | 'update }l_diPathList) => t / nil
Description
Pushes the selected nets or HighCurrent design intents down the hierarchy. You can use the hierarchy path to specify multiple nets or design intents. You can choose whether to replace or update any existing design intents at the lower level.
Arguments
Value Returned
Example
Replaces the specified design intents at the lower level:
diPathList=list(list(list("P1" "HighCurrent1") "HCDI_HIER.top:schematic)/I6(HCDI_HIER.subDI_1:schematic)") list(list("P2" "HighCurrent1") "(HCDI_HIER.top:schematic)/I7(HCDI_HIER.subDI_2:schematic)"))
ciDIHierPushDownDIWithPaths(geGetEditCellView() 'update diPathList)
Related topics
ciDIHierPushUp
ciDIHierPushUp(
d_cv
{ 'replace | 'update }
)
=> t / nil
Description
Pushes the selected net or HighCurrent design intent to the top of the hierarchy. You need to descend edit into the design and select a design intent to push from that level to the top of the hierarchy.
Arguments
Value Returned
Example
Replaces the specified design intent at the upper level:
cv = geGetEditCellView()
hsmSelect(?cellview cv ?type 'template ?name "NetDI")
ciDIHierPushUp(cv 'replace)
Related topics
ciDIHierPushUpDIWithPaths
ciDIHierPushUpDIWithPaths(d_cv{ 'replace | 'update }l_diPathList) => t / nil
Description
Pushes the selected nets or HighCurrent design intents to the top of the hierarchy. You need to descend edit into the design and select a design intent to push from that level to the top of the hierarchy. You can also use the hierarchy path to specify multiple nets or design intents.
Arguments
Value Returned
Example
Replaces the specified design intents at the upper level:
diPathList=list(list(list("P1" "HighCurrent1") "HCDI_HIER.top:schematic)/I6(HCDI_HIER.subDI_1:schematic)") list(list("P2" "HighCurrent1") "(HCDI_HIER.top:schematic)/I7(HCDI_HIER.subDI_2:schematic)"))
ciDIHierPushUpDIWithPaths(geGetEditCellView() 'update diPathList)
ciDIHierPushDownDIWithPaths(geGetEditCellView() 'update diPathList)
Related topics
ciDIHierPushUp
ciDiMinMaxVPropertyCallback
ciDiMinMaxVPropertyCallback(
g_field
f_form
)
=> t / nil
Description
Runs a callback to check that customized property definitions using minimum and maximum voltage property values are set correctly so that Min Voltage is less than or equal to Max Voltage. When these properties are set incorrectly in the Create Design Intent form or Edit Design Intent form, the properties are highlighted and the form is prevented from closing until the values are corrected.
Arguments
Value Returned
|
The minimum and maximum values are incorrectly set. The properties are highlighted in the Create Design Intent form or Edit Design Intent form for the values to be adjusted. |
Example
The callback checks whether the values are set correctly for the Min Voltage and Max Voltage properties and highlights any errors:
list(nil 'name "Net Voltage" 'category "Nets" 'toolTip "Net Min/Max Voltage"
'properties list
list(nil 'name "Min Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback)
list(nil 'name "Max Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback)
)
)
Related topics
ciDiPostTransferHighCurrent
ciDiPostTransferHighCurrent(
g_template
)
=> t / nil
Description
Runs a callback to enslure that when a customized HighCurrent design intent is transferred from Schematics XL to Layout XL, the current is split evenly between the mfactored members in Layout XL. This function is specified using the postTransferCallback for the HighCurrent design intent properties.
Arguments
Value Returned
|
The design intent properties were set using the specified design intent template. |
|
Example
Runs ciDiPostTransferHighCurrent for the I property on the Current profile:
list(nil 'name "Current" 'category "HighCurrent" 'toolTip "High Current Pins/ Terminals"
'properties list(list(nil 'name "I" 'type 'current) )
'postTransferCallback 'ciDiPostTransferHighCurrent
)
Related topics
ciDiPostTransferMinMaxVoltage
ciDiPostTransferMinMaxVoltage(
g_template
)
=> t / nil
Description
Runs a callback to propagate the design intent properties Min Voltage, Max Voltage, Signal Type, Power Sensitivity, and Ground Sensitivity on the associated design intent objects after transfer from schematic to layout.
For more details, see
Arguments
Value Returned
|
The design intent properties were set on the associated design intent objects. |
|
Example
Propagates the design intent properties Min Voltage and Max Voltage on to the associated pins design intent after transfer from schematic to layout.
ciDiReplaceOrAddPropertyGroupDef(
list(nil 'name "Pin Voltages" 'category "Pins" 'toolTip "Pin voltage rules" 'properties list(
list(nil 'name "Min Voltage" 'type 'float 'defValue 0.0 'range '(0.09999999.9) 'callback 'ciDiMinMaxVPropertyCallback)
list(nil 'name "Max Voltage" 'type 'float 'defValue 0.0 'range '(0.09999999.9) 'callback 'ciDiMinMaxVPropertyCallback
)
'postTransferCallback 'ciDiPostTransferMinMaxVoltage
'okApplyCallback 'ciUpdateObjPropsFromDI
)
)
Related topics
ciDIRegisterIgnoredTerminals
ciDIRegisterIgnoredTerminals(
l_ignoredTerms
)
=> t
Description
Registers a list of terminals per master cellview that should be ignored when creating a design intent. Bulk terminals are always ignored regardless of the registration status of the terminals. Ignoring terminals when creating design intent is useful when some terminals exist in the schematic but not in the layout.
Arguments
|
A list of the terminals that should be ignored for the master as a list of the form (("t_termA" ... "t_termX") ("t_libName" "t_cellName" "t_viewName") ...) where: |
Value Returned
Example
The terminal named G is registered to be ignored for the instance with the master library name gpdk045, cell name nmos2v or pmos2v, and view name symbol:
(ciDIRegisterIgnoredTerminals '((("G") ("gpdk045" "nmos2v" "symbol"))
(("G") ("gpdk045" "pmos2v" "symbol"))))
Any terminals of an instance with the master library name gpk045, cell name nmos2v, and view name symbol are no longer ignored when creating a design intent:
(ciDIRegisterIgnoredTerminals '((nil ("gpdk045" "pmos2v" "symbol"))))
Related topics
ciDIGetRegisteredIgnoredTerminals
ciDiReplaceOrAddPropertyGroupDef
ciDiReplaceOrAddPropertyGroupDef(
l_propGroupDefs
)
=> t / nil
Description
Adds or replaces customized design intent property group definitions.
For more details, see
Arguments
|
The design intent property group definition to be added or replaced. |
Value Returned
|
The new or amended property group definition was successfully added or replaced. |
|
Example
Adds a new property group definition, Pin Voltages, to the design intent category, Pins:
ciDiReplaceOrAddPropertyGroupDef( list(nil 'name "Pin Voltages" 'category "Pins" 'toolTip "Pin voltage rules" 'properties list(
list(nil 'name "Min Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback)
list(nil 'name "Max Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback)
)
)
)
ciDiReportGenReport
ciDiReportGenReport( [ ?cvd_cellviewID] [ ?depthx_depth] [ ?titlet_reportName] [ ?patht_path] [?launch { t | nil }] [ ?datet_reportDate] ) => t / nil
Description
Generates a report summarizing the design intent in the current design based on the specified criteria and optionally opens the report in the browser.
Arguments
Value Returned
Example
Generates a report for the top-level cellview currently being edited. The title of the report is Design Intent Report, it is to be saved to a reports directory inside the current working directory, and it will be opened automatically in the browser after it is generated.
(ciDiReportGenReport ?cv (geGetEditCellView) ?depth 0 ?title "Design Intent Report" ?path "./reports" ?launch t)
ciDIUpdateArrowDirections
ciDIUpdateArrowDirections( [ ?cvd_cellviewID] ) =>l_highCurrentIds
Description
Updates the direction of high current design intent arrows that do not follow the conventional current flow direction.
Arguments
|
Database ID of the cellview to update the arrow directions in. |
Value Returned
Examples
highCs = ciDIUpdateArrowDirections()
=>(ci:0x3d8052c0)
ciResetDIImplementation
ciResetDIImplementation(g_cache) =>g_constraintTemplateId/ nil
Description
Resets the implementation status, implementation notes, and signed off status of all design intents in the constraints cache so that the cellview can be reused.
Arguments
Value Returned
|
List of design intent constraint template IDs that have been reset. |
|
Example
Resets the implementation status, implementation notes, and signed off status of all design intents in the constraints:
ciResetDIImplementation(ciGetCellView())
ciSetDIPropertyGroupDefs
ciSetDIPropertyGroupDefs(
l_propGroupDefs
)
=> t / nil
Description
Sets the design intent property group definitions to the specified definitions. All existing property group definitions are deleted.
For more details, see
Arguments
Value Returned
Example
All existing property group definitions are replaced with the design intent property group definitions Net Voltages and Pin Voltages. The callback is run to check the values for the minimum and maximum voltage properties for minVProp and maxVProp:
let(((minVProp list(nil 'name "Min Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback))
(maxVProp list(nil 'name "Max Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback)))
ciSetDIPropertyGroupDefs(
list(
list(nil 'name "Net Voltages" 'category "Nets" 'toolTip "Net voltage rules" 'properties list(minVProp maxVProp))
list(nil 'name "Pin Voltages" 'category "Pins" 'toolTip "Pin voltage rules" 'properties list(minVProp maxVProp))
)
)
)
ciTemplateChangeDIProfile
ciTemplateChangeDIProfile(
u_templateId
t_profileName
)
=> t / nil
Description
Replaces the property profile currently selected for a design intent template.
Arguments
Value Returned
Example
firstDeviceDI = car(setof(plate ciGetCellView()->templates plate->type == "diDevices"))
ciTemplateDIProfileName(firstDeviceDI)
"Match - default"
ciTemplateListDIProps(firstDeviceDI)
(("FoldDevice" string "Even")
("ShareDiffusion" boolean nil)
("Surround" string "Dummy")
("PlacementStyle" string "Symmetry")
)
ciTemplateChangeDIProfile(
firstDeviceDI "Match - DiffPair"
)
ciTemplateDIProfileName(firstDeviceDI)
"Match - DiffPair"
ciTemplateListDIProps(firstDeviceDI)
(("MatchNetPair" string "")
("WPERange" float 0.1)
("FoldDevice" string "Even")
("Surround" string "Dummy")
("ShareDiffusion" boolean nil)
("PlacementStyle" string "Symmetry")
)
For a design intent template of type diDevices, this example uses the function ciTemplateDIProfileName to return the profile currently selected for the design intent template, Match - default. The function ciTemplateListDIProps is then used to return the property names, types, and values associated with it.
Using the ciTemplateChangeDIProfile function, the profile currently selected for the template is then changed to Match - DiffPair. The ciTemplateListDIProps function is used again to return the property names, types, and values associated with the new profile.
ciTemplateCreateDI
ciTemplateCreateDI(g_cache t_templateType{ diDevices | diNets | diPins | diMaxVoltageDrop | diHighCurrent | diCell }t_name l_memberNamesTypes[ ?profilet_profileName] [ ?paramsl_paramNameAndValue] [ ?propNameValuel_propNameValue] ) =>u_templateId/ nil
Description
Creates a design intent template for the specified template type.
Arguments
Value Returned
Example
cache = ciGetCellView()
diDevices = ciTemplateCreateDI(cache "diDevices" "DiffPair" '(("M2" inst)("M3" inst)) ?profile "Match - DiffPair" ?params '(("Design Notes" "AABB/BBAA")))
ciTemplateUpdateParams(
diDevices '(("Design Notes"
"ABBA/BAAB")
("AnnotationStyle" "BoundingBoxes")
("Color" "halo4"))) ;; halo packets used for color
diNets = ciTemplateCreateDI(cache "diNets" "Match Nets" '(("INN" net)("INP" net)) ?profile "Match Net")
diPins = ciTemplateCreateDI(cache "diPins" "Diff Pair Pins" '(("INN:3" pin)("INP:4" pin)) ?profile "Placement")
diMVD = ciTemplateCreateDI(
cache
"diMaxVoltageDrop"
"Max Voltage Drop (Power)"
'(
("VDD:2" pin (("ref" 1)("enableV" 1)))
("PM0:S" instTerm (("ref" 0)("enableV" 1)("Voltage" 0.11)))
("PM7:S" instTerm (("ref" 0)("enableV" 1)("Voltage" 0.22)))
)
?profile "Voltage") ;;; Must be this profile name
mvdCon= car(diMVD~>constraints)
ciConUpdateParams(mvdCon '(("maxVoltageDrop" 2.0)))
diHighC = ciTemplateCreateDI(
cache
"diHighCurrent"
"High Current Paths"
'(
("VSS:1" pin (("enableI" 1)("Current" 0.75)("sourceSink" 1)))
("NM7:S" instTerm (("enableI" 1)("Current" 0.11)))
("NM8:S" instTerm (("enableI" 1)("Current" 0.22)))
("NM9:S" instTerm (("enableI" 1)("Current" 0.33)))
)
?profile "Current") ;;; Must be this profile name
diCell = ciTemplateCreateDI(cache "diCell" "Cell Level DI" '(("ether_adc45n/adc_sample_hold/schematic" master)))
This example creates the following design intents for a cellview:
-
DiffPairbased on the template typediDevicesis created with the property profileMatch - DiffPairfor the instancesM2andM3. The annotation style and notes parameters are also specified for the design intent. -
Match Netsis created based on the template typediNetswith the property profileMatch Netfor the netsINNandINP. -
Diff Pair Pinsbased on the template typediPinsis created with the property profilePlacementfor the pinsINN:3andINP:4. -
Max Voltage Drop (Power), based on the template typediMaxVoltageDrop, it is created with the property profileVoltagefor the pinVDD:2and instance terminalsPMO:SandPM7:S. The profile property parameters are specified for this design intent. -
High Current Paths, based on the template typediHighCurrent, it is created with the property profileCurrentfor the pinVDD:1and instance terminalsNM7:S,NM8:S, andNM9:S. The profile property parameters are specified for this design intent. -
Cell Level DI, based on the template typediCellwhich is a design intent that applies to the entire cellview.
ciTemplateDIProfileName
ciTemplateDIProfileName(u_templateId) =>t_profileName/ nil
Description
Returns the name of the profile associated with the specified design intent template.
Arguments
Value Returned
Example
foreach(mapcar plate ciGetCellView()->templates list(plate->type ciTemplateDIProfileName(plate)))
(("diDevices" "Match - CurrentMirror")
("match" nil)
("diNets" "Match Net")
("commonCentroid" nil)
)
Lists all the templates in the cellview and for those that are design intent templates, returns the profile name.
ciTemplateDIPropDef
ciTemplateDIPropDef(u_templateId t_propertyName) =>l_propNameTypeDefVal/ nil
Description
For the specified design intent template, returns the definition of the named property in the form of a DPL.
Arguments
|
Specifies the name of the property for which the definition is to be returned. |
Value Returned
Example
foreach(mapcar plate ciGetCellView()->templates list(plate->type ciTemplateDIPropDef(plate "PlacementStyle")))
(("diDevices"
(nil name "PlacementStyle" type enum
defValue "Symmetry" items
("Symmetry" "CommonCentroid" "Interdigitate")
)
)
("match" nil)
("diNets" nil)
("commonCentroid" nil)
)
Lists all the templates in the cellview and for those that are design intent templates, returns the definition of the property PlacementStyle.
ciTemplateDIPropGroupDef
ciTemplateDIPropGroupDef(u_templateId) =>l_propNameTypeDefVal/ nil
Description
For the specified design intent template, returns the definition of all the properties in the form of a DPL.
Arguments
Value Returned:
Example
foreach(mapcar plate ciGetCellView()->templates list(plate->type ciTemplateDIPropGroupDef(plate)))
(("diDevices"
(nil name "Match - CurrentMirror" category "Devices"
toolTip "How CurrentMirror devices are to match" properties
((nil name "PlacementStyle" type enum
defValue "Symmetry" items
("Symmetry" "CommonCentroid" "Interdigitate")
)
(nil name "MatchProperty" type enum
defValue "Parameter" items
("Parameter" "Orientation")
)
(nil name "Surround" type enum
defValue "Dummy" items
("Dummy" "FGR" "Both" "asNeeded")
)
(nil name "ShareDiffusion" type bool
defValue nil
)
)
)
("match" nil)
("diNets" nil)
("commonCentroid" nil)
)
Lists all the templates in the cellview and for those that are design intent templates, returns the definition of each property.
ciTemplateDIPropValue
ciTemplateDIPropValue(u_templateId t_propertyName) =>g_propValue/ nil
Description
For the specified design intent template, returns the value of a named property.
Arguments
|
The name of the property from which the value is to be returned. |
Value Returned
Example
firstDeviceDI = car(setof(plate ciGetCellView()->templates plate->type == "diDevices"))
ciTemplateDIPropValue(firstDeviceDI "PlacementStyle") "CommonCentroid"
Finds the first design intent template on the cellview and returns the value for the named property PlacementStyle.
ciTemplateIsKindOfDI
ciTemplateIsKindOfDI(
d_templateId
)
=> t / nil
Description
Confirms if the specified constraint template is a design intent template. The available design intent templates are: diDevices, diNets, diPins, diMaxVoltageDrop, diHighCurrent, and diCell.
Arguments
Value Returned
Example
cache = ciGetCellView()
foreach(mapcar plate cache->templates list(plate->type ciTemplateIsKindOfDI(plate)))
(("diDevices" t)
("match" nil)
("diNets" t)
("commonCentroid" nil)
)
Lists all the template IDs in the cellview and for the templates that are design intent templates, returns t.
ciTemplateListDIProps
ciTemplateListDIProps(u_templateId) =>l_propNameTypeValueList/ nil
Description
For the specified design intent template, returns a list of the property names, types, and values.
'name "DI_CURRENT_SCOPE". This lists the currently selected scope for the design intent as the 'defValue. For more details, see Defining Scopes for Profile Properties.Arguments
|
The template ID where the property names, types, and values are located. |
Value Returned
Example
foreach(mapcar plate ciGetCellView()->templates list(plate->type ciTemplateListDIProps(plate)))
(("diDevices"
(("ShareDiffusion" boolean nil)
("Surround" string "FGR")
("MatchProperty" string "Parameter")
("PlacementStyle" string "CommonCentroid")
)
)
("match" nil)
("diNets"
(("Keep Away" string "")
("Shield" string "Parallel")
("Signal Type" string "Symmetry")
("Match Pair" string "")
)
)
("commonCentroid" nil)
)
Lists all the templates in the cellview and for those that are design intent templates, returns the name, type, and value of each property.
ciTemplateUpdateDIProps
ciTemplateUpdateDIProps(
u_templateId
l_propNameValue
)
=> t / nil
Description
For the specified design intent template, updates the value of the named property.
Arguments
Value Returned
Example
firstDeviceDI = car(setof(plate ciGetCellView()->templates plate->type == "diDevices"))
ciTemplateDIPropValue(firstDeviceDI "PlacementStyle")
"CommonCentroid"
ciTemplateDIPropValue(firstDeviceDI "Surround")
"FGR"
ciTemplateUpdateDIProps(firstDeviceDI '(("PlacementStyle" "Interdigitate")("Surround" "Dummy")))
ciTemplateDIPropValue(firstDeviceDI "PlacementStyle")
"Interdigitate"
ciTemplateDIPropValue(firstDeviceDI "Surround")
"Dummy"
Finds the first design intent template on the cellview and returns the values for the properties PlacementStyle and Surround. For PlacementStyle, the value CommonCentroid is replaced with Interdigitate, and for Surround, FGR is replaced with Dummy.
ciUpdateObjPropsFromDI
ciUpdateObjPropsFromDI(
g_form
g_template
)
=> t / nil
Description
Runs a callback to propagate design intent properties to the associated design intent objects. The function can be called when the Create Design Intent form or Edit Design Intent form are submitted.
For more details, see
Arguments
Value Returned
|
The design intent properties were updated for all objects associated with the design intent. |
|
Example
Propagates the design intent properties Min Voltage and Max Voltage to the associated design net and Signal Type to pins.
list(nil 'name "Net Voltage" 'category "Nets" 'toolTip "Net Min/Max Voltage" 'properties list(
list(nil 'name "Min Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback)
list(nil 'name "Max Voltage" 'type 'float 'defValue 0.0 'range '(0.0 9999999.9) 'callback 'ciDiMinMaxVPropertyCallback)
)
'okApplyCallback 'ciUpdateObjPropsFromDI
)
list(nil 'name "Signal Type" 'category "Pins" 'toolTip "Signal Type" 'properties list(
list(nil 'name "Signal Type" 'type 'enum 'defValue "signal" 'items '("signal" "ground" "power" "clock" "analog" "tieOff" "tieHi" "tieL" "scan" "reset"))
)
'okApplyCallback 'ciUpdateObjPropsFromDI
)
Return to top