Product Documentation
Virtuoso Electrically Aware Design Flow Guide
Product Version IC23.1, November 2023

C


Electrically Aware Design Functions

This section provides syntax, descriptions, and examples for the Cadence SKILL functions associated with the Virtuoso Electrically Aware Design (EAD) flow.

Only the functions documented in this chapter are supported for public use. Any other functions, and undocumented aspects of the functions described below, are private and subject to change or removal at any time.

List of EAD-related OCEAN Commands

elecCreateDataSetCSVTemplate

elecCreateDataSetCSVTemplate( 
t_libName
t_cellName
t_viewName
t_fileName
[ ?resultTypes l_resultTypes ]
[ ?maxHierLevel n_maxHierLevel ]
[ ?scaleFactors l_scaleFactors ]
)
=> t / nil

Description

Creates a CSV template file for a given schematic cellview in a format that can be later used to fill in the current or voltage values, and to create an EAD dataset from it.

Arguments

t_libName

Name of the library that contains the schematic view.

t_cellName

Name of the cell that contains the schematic view.

t_viewName

Name of the schematic view for which you need to save a template.

t_fileName

Name of the file in which you need to save the CSV template for the given cellview. A new file is created with the given name if it does not exist already.

[ ?resultTypes l_resultTypes ]

A list of the result types representing the current types and voltage types to be saved. Using this argument, you can specify whether a list of instance-terminals (terminals) or nets, or both are to be saved in the template.

Default value: ( "Idc" "Iavg")

[ ?maxHierLevel n_maxHierLevel ]

An integer value specifying the hierarchy level upto which you want to save the instance or terminal names in the template.

By default, the hierarchy level saved on the EAD Setup form is used.

[ ?scaleFactors l_scaleFactors ]

A list of values of scale factors for each result type.

The number of items specified in this list should be same as the number of items in the list of result types.

Value Returned

t

When a CSV template file is successfully created.

nil

The operation was unsuccessful.

Examples

The following examples show the different ways in which you can save CSV templates:

elecDeleteDataSets

elecDeleteDataSets( 
t_libName
t_cellName
t_viewName
[ ?dataSetList l_dataSetList ]
[ ?dataSetType l_dataSetType ]
)
=> t / nil

Description

Deletes electrical data from the specified design. This function can be used for both layout and schematic view of a design.

Arguments

t_libName

Name of the library.

t_cellName

Name of the cell.

t_viewName

Name of the view. You can specify the name of a constraint or layout view.

[ ?dataSetList l_dataSetList ]

List of the names of the datasets to be deleted.

If you do not specify any list, all the datasets for the given cellview are deleted.

[ ?dataSetType l_dataSetType ]

Type of the dataset to be deleted.

Valid values: currentData, voltageData

Value Returned

t

The specified datasets are deleted successfully.

nil

The operation was unsuccessful.

Example

The following example shows how to use this function to delete datasets:

;The following example deletes all the datasets saved in the layout view of the given cellview
elecDeleteDataSets("Two_Stage_Opamp" "OpAmp" "layout")
=> t
;The following example deletes all the datasets saved in the schematic view of the given cellview elecDeleteDataSets("Two_Stage_Opamp" "OpAmp" "schematic") => t ;The following example deletes the dataset named 'worstcase' form the layout view of the given cellview elecDeleteDataSets("Two_Stage_Opamp" "OpAmp" "layout" ?dataSetList list("worstcase")) => t

eadDeleteScratchLib

eadDeleteScratchLib(
)
=> t / nil

Description

Deletes all data from the scratch library that contains data related to the scratch layout.

By default, the scratch layout is created in the same library that contains the original layout. However, you can define a separate scratch library using the scratchLib environment variable.

See the Running EM Analysis on Power Grids section for more information

Arguments

None

Value Returned

t

All data from the scratch library is deleted successfully.

nil

The operation was unsuccessful.

Example

The following example deletes all data from the scratch library:

eadDeleteScratchLib()
=> t

elecGetEnableEADMode

elecGetEnableEADMode(
t_sessionName
[ ?historyName t_historyName ]
)
=> t / nil

Description

Returns the current status of the Enable Electrical Data Capture for EAD Flow check box in the EAD Setup form for the specified session and history name.

Arguments

t_sessionName

Name of the maestro session.

[ ?historyName t_historyName ]

Name of the history.

Value Returned

t

When the Enable Electrical Data Capture for EAD Flow check box is selected.

nil

When the Enable Electrical Data Capture for EAD Flow check box is not selected.

Example

The following example shows how to use this function to get the current status of the Enable Electrical Data Capture for EAD Flow check box in the EAD Setup form:
session = (axlGetWindowSession (hiGetCurrentWindow))
=> "fnxSession0"
elecGetEnableEADMode(session ?historyName "Interactive.0")
=> t

elecSetEnableEADMode

elecSetEnableEADMode(
t_sessionName
g_value
[ ?historyName t_historyName ]
)
=> t / nil

Description

Selects or deselects the Enable Electrical Data Capture for EAD Flow check box in the EAD Setup form for the specified session and history name.

Arguments

t_sessionName

Name of the maestro session.

g_value

Values that you want to set:

  • t: Selects the Enable Electrical Data Capture for EAD Flow check box in the EAD Setup form.
  • nil: Deselects the Enable Electrical Data Capture for EAD Flow check box in the EAD Setup form.

[ ?historyName t_historyName ]

Name of the history.

Value Returned

t

If value of the check box is set according to the value specified by the argument g_value.

nil

If there is an error.

Example

The following example shows how to select the Enable Electrical Data Capture for EAD Flow check box in the EAD Setup form:
session = (axlGetWindowSession (hiGetCurrentWindow))
=> "fnxSession0"
elecSetEnableEADMode(session t ?historyName "Interactive.0")
=> t
The following example shows how to deselect the Enable Electrical Data Capture for EAD Flow check box in the EAD Setup form:
session = (axlGetWindowSession (hiGetCurrentWindow))
=> "fnxSession0"
elecSetEnableEADMode(session nil ?historyName "Interactive.0")
=> t

elecGetCurrentData

elecGetCurrentData( 
t_libName
t_cellName
t_viewName
t_dataSetName 
t_terminalName
[ t_measurementType ]
)
=> t / nil

Description

Gets the electrical data for the specified terminal in the given cellview. The data is retrieved from the specified dataset.

Arguments

t_libName

Name of the library.

t_cellName

Name of the cell.

t_viewName

Name of the schematic or layout view

t_dataSetName

Name of the dataset

t_terminalName

Name of the terminal or instance terminal

[ t_measurementType ]

The measurement type for which you need to get the current or voltage data. If not specified, the data for all the measurement types saved in the dataset is returned.

Value Returned

t_electricalData

List of measurement types and their corresponding values

nil

The operation was unsuccessful.

Example

The following example shows how to use this function to get the electrical data:
; The following example code shows how to get the Idc data for terminal "/I2/I0/
; PM0:B" in the schematic view of cell 'hier_buffer'. The dataset use is
; 'check_0_I':
elecGetCurrentData("testLib" "hier_buffer" "schematic" "check_0_I" "/I2/I0/PM0:B" "Idc")
=>("Idc" 1.710235e-14)
; In the following example code measurement data for all the available types is ; returned for terminal "/I2/I0/PM0:B" in the schematic view of cell 'hier_buffer'.
elecGetCurrentData("testLib" "hier_buffer" "schematic" "check_0_I" "/I2/I0/PM0:B")
=> ("Iavg" 7.77565e-07 "Idc" 1.710235e-14 "Isignal" "I2.I0.PM0:4" )
; The following example code shows how to get the Idc data for terminal '/PM0:B' ; in the layout view of cell 'buffer': elecGetCurrentData("testLib" "buffer" "layout" "check_0_I" "/PM0:B" "Idc") => ("Idc" 1.710407e-14)

In the following example code measurement data for all the available types is returned for terminal '/PM0:B' in the layout view of cell 'buffer':

elecGetCurrentData("testLib" "buffer" "layout" "check_0_I" "/PM0:B")
=> ("Iavg" -1.213794e-06 "Idc" 1.710407e-14 "Isignal" "I3.I0.PM0:4" )

The following example code shows how to get the voltage data for terminal '/I3/I5/I0/I0/IN' in the schematic view of cell 'INV_TOP':

elecGetCurrentData("testLib" "INV_TOP" "schematic" "pp_1_V" "/I3/I5/I0/I0/IN")
=>("Vmin" 0.00401131 "Vmax" 2.9869 "Vsignal" "I3.OUT1_P\\<0\\>")

elecGetDataSetNames

elecGetDataSetNames( 
t_libName
t_cellName
t_viewName
[ t_dataSetType ]
)
=> l_dataSetNames / nil

Description

Gets the list of available result datasets for a given design. Also see EM Dataset.

Arguments

t_libName

Name of the library.

t_cellName

Name of the cell.

t_viewName

Name of the view. You can specify the name of a schematic or layout view.

t_dataSetType

Dataset type.

Valid values:

  • currentData: Gets the list of only the current datasets.
  • voltageData: Gets the list of only the voltage datasets.

Value Returned

l_dataSetNames

List of dataset names.

nil

The operation was unsuccessful.

Example

The following example shows how to use this function to get the list of dataset names:

elecGetDataSetNames("TestLib" "buffer" "schematic" "currentData") 
=> ("buffer3_0_I" "buffer3_1_I" "buffer3_2_I" "buffer3_3_I" "buffer6_I" "new_I" )

elecGetDataSetParamsPropValue

elecGetDataSetParamsPropValue( 
t_libName
t_cellName
t_viewName
t_dataSetName
t_paramName
)
=> t_paramValue / nil

Description

Gets the value for the given parameter from the property list of the given dataset saved for the given cellview.

If you had updated the paths to the results database and the psf directory by using the elecUpdateDataSetParamsPropValue function, you can use this function to verify the paths. Also see EM Dataset.

Arguments

t_libName

Name of the library.

t_cellName

Name of the cell.

t_viewName

Name of the view. You can specify the name of a schematic or layout view.

t_dataSetName

Name of the dataset saved for the cellview.

t_paramName

Name of the parameter for which you need to retrieve the value.

It is recommended to use this function to get the values only for simResDB or simResDir.

Value Returned

t_paramValue

Value corresponding to the given parameter name.

nil

The operation was unsuccessful.

Example

The following example code shows how to retrieve value of parameters simResDB and simResDir for schematic view of a given cellview.

elecGetDataSetParamsPropValue("em_test" "route_em_test" "schematic" "myDataset" "simResDB")
=> "/home/test/libs/em_test/route_em_test/adexl/results/data/Interactive.1.rdb"
elecGetDataSetParamsPropValue("Two_Stage_Opamp" "DiffOpAmp" "schematic" "myDataset" "simResDir") => "/home/test/libs/em_test/route_em_test/adexl/results/data/psf"

elecMakeDefaultDatasetName

elecMakeDefaultDatasetName(
t_sessionName
t_historyName
t_dutLibName
t_dutCellName
t_dutViewName
t_dutInstance
t_cornerName
t_temperature
t_designPoint
t_testName
)
=> t_defaultDatasetName

Description

Returns the user-defined default name of the dataset to be displayed in the DUT Dataset field of the EAD results view.

Arguments

t_sessionName

Name of the session.

t_historyName

Name of the history.

t_dutLibName

Name of the DUT library.

t_dutCellName

Name of the DUT cell.

t_dutViewName

Name of the DUT view.

t_dutInstance

Name of DUT instance.

t_cornerName

Name of the corner.

t_temperature

Value of temperature.

t_designPoint

Name of the design point.

t_testName

Name of the test.

Value Returned

t_defaultDatasetName

Default name of the dataset.

Examples

The following example sets the default name of DUT Dataset field to dutCellName "_" dutInstance "_" historyName "_" cornerName "_" designPoint "_" temperature.

procedure( elecMakeDefaultDatasetName( session @key  historyName dutLibName dutCellName dutViewName dutInstance cornerName temperature designPoint testName)
        let( (retVal)
            retVal = strcat( dutCellName "_" dutInstance "_" historyName "_" cornerName "_" designPoint  "_" temperature )
            retVal
        )
    )
=> buffer_I2_I1_Interactive.0_Nominal_1_27

The following example sets the default name of DUT Dataset field to testName "_" topCellName "_" dutCellName "_" dutInstance "_" historyName "_" cornerName "_" designPoint "_" temperature

procedure( elecMakeDefaultDatasetName( session @key  historyName dutLibName dutCellName dutViewName dutInstance cornerName temperature designPoint testName)
    let( (retVal checkPoint testSdb  toolArgs topCellName)
              checkPoint = axlGetHistoryCheckpoint( axlGetCurrentHistory( session ))
   testSdb  = axlGetTest( checkPoint testName )
   toolArgs = axlGetTestToolArgs( testSdb )
   topCellName = cadr(assoc( "cell" toolArgs ))
   retVal = strcat( testName "_" topCellName "_" dutCellName "_" dutInstance "_" historyName "_" cornerName "_" designPoint "_" temperature )
   retVal
              )
)
=> Creating Dataset TRAN_buffer_test_buffer__I0_Interactive.5_Nominal_1_27 on DUT Master: "sample_test", "buffer", "schematic"

Where testName is TRAN, topCellName is buffer_test, and dutCellName is buffer.

Note the following points:

elecUpdateDataSetParamsPropValue

elecUpdateDataSetParamsPropValue( 
t_libName
t_cellName
t_viewName
t_dataSetName
t_paramName
t_paramValue
)
=> t / nil

Description

Updates the value for a parameter/property of the given dataset saved for the given cellview. You can use this function to modify the value of a dataset property for a schematic or layout view.

This function is helpful when you need to change the paths speified in the simResDB and simResDir properties from where the datasets are read. For more details, see EM Dataset.

Arguments

t_libName

Name of the library

t_cellName

Name of the cell

t_viewName

Name of the view. You can specify the name of a schematic or layout view.

t_dataSetName

Name of the dataset saved for the cellview

t_paramName

Name of the parameter for which you need to update the value

It is recommended to use this function to update the values only for simResDB or simResDir.

t_paramValue

New value to be set for the parameter

Value Returned

t

If the parameter value was successfully set

nil

The operation was unsuccessful

Example

The following example code shows how to update the simResDir parameter (the simulation results directory path) for schematic view of a given cellview.

elecUpdateDataSetParamsPropValue("em_test" "route_em_test" "schematic" "myDataset" "simResDir" "em_test/route_em_test/adexl/results/data/Interactive.1/1/tran/psf")
=>t

elecGetVoltageData

elecGetVoltageData(
t_libName
t_cellName
t_viewName
t_dataSetName
t_terminalName
[ t_measurementName ]
)
=> 

Description

Returns the Vmin and Vmax values for the specified terminal in a dataset.

To calculate the Vmin and Vmax values for a worst-case dataset, you must set the following environment variables before running this function:

envSetVal("ei.dataSet" "excludeCurrentsInCI" 'boolean nil)
envSetVal("ei.setup" "enableWorstCaseDatasetForVoltages" 'boolean t)

Arguments

t_libName

Name of the library.

t_cellName

Name of the cell.

t_viewName

Name of the schematic view.

t_dataSetName

Name of the dataset.

t_terminalName

Name of the terminal or instance terminal.

t_measurementName

The measurement type for which you need to get voltage data. If not specified, data for all the measurement types saved in the specified dataset is returned.

Value Returned

l_values

Vmin and Vmax values of the specified terminal.

nil

Vmin and Vmax values cannot be calculated because of an error.

Examples

The following examples returns the Vmin and Vmax values of the instance terminal "/I0/R0/PLUS" in the dataset "dataset_V".

elecGetVoltageData("em_test" "route_em_test" "schematic" "dataset_V" "/I0/R0/PLUS")
=> ("Vmin" 6.034015 "Vmax" 28.74936)

The following examples returns the Vmin and Vmax values of the instance terminal "/I0/R0/PLUS" in the worst-case dataset "data_worstcase_V".

elecGetVoltageData("em_test" "route_em_test" "schematic" "data_worstcase_V" "/I0/R0/PLUS")
=> ("Vmin" 6.034015 "Vmax" 28.74936)

elecGetVsyncEnabled

elecGetVsyncEnabled( 
t_adeSession
)
=> t / nil

Description

Returns whether the creation of post-simulation voltage constraints is enabled or disabled.

Arguments

t_adeSession

The ID of the session.

Value Returned

t

The constraint creation is enabled.

nil

The constraint creation is disabled.

Example

The following example shows how to use this function to get the status of voltage constraints:

elecGetVsyncEnabled (session)
=> t

elecSetVsyncEnabled

elecSetVsyncEnabled( 
t_adeSession
g_value
)
=> t / nil

Description

Enables or disables the creation of post-simulation voltage constraints.

Arguments

t_adeSession

The ID of the session.

g_value

Values that you want to set:

  • t: Enables the creation of post-simulation voltage constraints.
  • nil: Disables the creation of post-simulation voltage constraints.

Value Returned

t

The operation is successful.

nil

When there is an error.

Example

The following example enables the creation of post-simulation voltage constraints:

elecSetVsyncEnabled (session t)
=> t

The following example disables the creation of post-simulation voltage constraints:

elecSetVsyncEnabled (session nil)
=> t

elecVdrCreateConstraints

elecVdrCreateConstraints( 
inputToUserFunction
outputFromUserFunction
)
=> l_constraintID / nil

Description

Creates a post-simulation voltageSyncedNet constraint at the DUT level when called from a user-defined function, which has been specified using the customVoltageConstraintFunc environment variable.

By default, a user-defined function can create constraints automatically using the Constraints Manager SKILL functions because these functions provide control on where to create constraints in the hierarchy. The elecVdrCreateDeltaV function helps in providing the same functionality.

Arguments

inputToUserFunction

A list that is passed by ADE to the user-defined function as input.

The list is a DPL with the following fields:

  • session — An ADE session ID
  • netData — table of nets and their waveform data
  • dutLCV — DUT lib, cell, view
  • dutInstPath — Path to DUT inst from top level
  • clipFrom — The start time of the clip interval specified in the EAD Setup form.
  • clipTo — The end time of the clip interval specified in the EAD Setup form.

Example:

((nil session sevSession1 netData table:vsyncTable dutLCV ("INV_HIER_SOU" "INV_TOP" "schematic") dutInstPath "I3" clipFrom 2e-09 clipTo 4e-09))

outputFromUserFunction

The DPL that is expected from ADE as the output of the user-defined function.

'(nil constraintsLCV "test/top/schematic"
          deltaVNets     (("netE" "netF" 2.3) ("netG" "netH" 3.4))
          syncedNets     (("netA" "netB" ) ("netC" "netD" ))
     )

Value Returned

l_constraintID

Constraint IDs of the constraints.

Example

The following example shows how to call the elecVdrCreateConstraints and elecVdrCreateDeltaV functions from a user-defined function userDefinedElecFunc, which has been specified by using the environment variable customVoltageConstraintFunc.

(envSetVal "elec.gui" "customVoltageConstraintFunc"  'string "userDefinedElecFunc")
(define (userDefinedElecFunc @rest args)
(printf "userDefinedElecFunc called with args :%L" args)
    (elecVdrCreateConstraints args 
  (list nil 'constraintsLCV (car args)->dutLCV
            'syncedNets '(("AVDD" "AVSS"))))
  (elecVdrCreateDeltaV args 
  (list nil 'constraintsLCV (car args)->dutLCV
            'deltaVNets '(("IN1" "IN2" 3.4))))
  )

When you run a simulation after adding this code in your .cdsinit file, the Voltage Synced Nets and Delta Voltage constraints are created at the DUT level in the Constraint Manager.

elecVdrCreateDeltaV

elecVdrCreateDeltaV( 
inputToUserFunction
outputFromUserFunction
)
=> l_constraintID / nil

Description

Creates a post-simulation deltaVoltage constraint at the DUT level when called from a user-defined function, which has been specified using the customVoltageConstraintFunc environment variable.

By default, a user-defined function can create constraints automatically using the Constraints Manager SKILL functions because these functions provide control on where to create constraints in the hierarchy.

Ensure that the Create voltage constraints check box is selected in the Voltage Dependent Rules section of the EAD Setup form before using this function.

Arguments

inputToUserFunction

A list that is passed by ADE to the user-defined function as input.

The list is a DPL with the following fields:

  • session — An ADE session ID
  • netData — table of nets and their waveform data
  • dutLCV — DUT lib, cell, view
  • dutInstPath — Path to DUT inst from top level
  • clipFrom — The start time of the clip interval specified in the EAD Setup form.
  • clipTo — The end time of the clip interval specified in the EAD Setup form.

Example:

((nil session sevSession1 netData table:vsyncTable dutLCV ("INV_HIER_SOU" "INV_TOP" "schematic") dutInstPath "I3" clipFrom 2e-09 clipTo 4e-09))

outputFromUserFunction

The DPL that is expected from ADE as the output of the user-defined function. For example,

'(nil constraintsLCV "test/top/schematic"
          deltaVNets     (("netE" "netF" 2.3) ("netG" "netH" 3.4))
          syncedNets     (("netA" "netB" ) ("netC" "netD" ))
     )

Value Returned

l_constraintID

Constraint IDs of the constraints.

Example

The following example shows how to call the elecVdrCreateConstraints and elecVdrCreateDeltaV functions from a user-defined function userDefinedElecFunc, which has been specified by using the environment variable customVoltageConstraintFunc.

(envSetVal "elec.gui" "customVoltageConstraintFunc"  'string "userDefinedElecFunc")
(define (userDefinedElecFunc @rest args)
(printf "userDefinedElecFunc called with args :%L" args)
    (elecVdrCreateConstraints args 
  (list nil 'constraintsLCV (car args)->dutLCV
            'syncedNets '(("AVDD" "AVSS"))))
  (elecVdrCreateDeltaV args 
  (list nil 'constraintsLCV (car args)->dutLCV
            'deltaVNets '(("IN1" "IN2" 3.4))))
  )

When you run a simulation after adding this code in your .cdsinit file, the Voltage Synced Nets and Delta Voltage constraints are created in the Constraint Manager.

eadAddNetsToNetGroup

eadAddNetsToNetGroup(
x_cellViewID
t_groupName
?netNames l_netNames
?regExp t_regExp
?file t_fileName
)
=> t / nil

Description

Adds the specified nets to an existing net group for the given cellview.

Arguments

x_cellViewID

ID of the cellview

t_groupName

Name of the net group to which nets are to be added

?netNames l_netNames

List of names of the nets to be added to the given net group

?regExp t_regExp

Regular or wildcard expression to identify names of nets to be added

?fileName t_fileName

Name of the file from where net names are to be read. All the nets whose names are given in the file are included in the net group.

Value Returned

t

When the specified nets are added to the net group

nil

The operation was unsuccessful

Example

The following example code shows how to add nets contained in file test.il to a group groupX in the current cellview. It also verifies the list of net names using eadGetNetsInNetGroup.

cvId = geGetEditCellView()
list netNames = nil
if(eadAddNetsToNetGroup(cvId "groupX" ?file "./test.il") then
netNames = eadGetNetsInNetGroup(cvId "groupX")
printf("netNames: %L\n" netNames)
else
warn("Failed to create netGroup correctly\n")
)

eadCreateDataSetFromLayCSV

eadCreateDataSetFromLayCSV(
d_cvId
t_datasetName
t_fileName
)
=> t / nil

Description

Creates a user-defined dataset, with the specified name, in the given layout cellview using the electrical current values from the specified layout CSV file.

This SKILL function does not refresh the EAD GUI with the newly created user-defined dataset. To view the EAD GUI refreshed with the new dataset, first save the layout cellview and then open the GUI. Ensure that EAD is initialized before opening the GUI.

Arguments

d_cvId

ID of the layout cellview.

t_datasetName

Name of the dataset you want to create.

t_fileName

The name of the layout CSV file containing the values of the electrical currents.

Value Returned

t

A user-defined dataset is successfully created.

nil

The operation was unsuccessful.

Examples

The following example creates a user-defined dataset, exampleDataset, using the electrical current values from the specified layout CSV file, currents.csv, for the specified layout cellview:

eadCreateDataSetFromLayCSV(cvId "exampleDataset" "./currents.csv")
==> t

Where cvId = geGetEditCellView(window)and window = hiGetCurrentWindow().

See Also: eadCreateDataSetLayCSVTemplate

eadCreateDataSetFromSchCSV

eadCreateDataSetFromSchCSV(
d_cvId
t_datasetName
t_fileName
)
=> t / nil

Description

Creates a user-defined dataset, with the specified name, in the given layout cellview using the electrical current values from the specified schematic CSV file.

This SKILL function does not refresh the EAD GUI with the newly created user-defined dataset. To view the EAD GUI refreshed with the new dataset, first save the layout cellview and then open the GUI. Ensure that EAD is initialized before opening the GUI.

Arguments

d_cvId

ID of the layout cellview.

t_datasetName

Name of the dataset you want to create.

t_fileName

The name of the schematic CSV file containing the values of the electrical currents.

Value Returned

t

A user-defined dataset is successfully created.

nil

The operation was unsuccessful.

Examples

The following example creates a user-defined dataset, exampleDataset, using the electrical current values from the specified schematic CSV file, currents.csv, for the specified layout cellview:

eadCreateDataSetFromSchCSV(cvId "exampleDataset" "./currents.csv")
==> t

Where cvId = geGetEditCellView(window)and window = hiGetCurrentWindow().

eadCreateDataSetLayCSVTemplate

eadCreateDataSetLayCSVTemplate(
d_cvId
t_fileName
)
=> t / nil

Description

Creates a CSV template file for a given layout cellview in a format that can be used later to fill in current values and to create a user-defined EAD dataset from it.

Arguments

d_cvId

ID of the layout cellview.

t_fileName

The name of the CSV template filefor the given layout cellview. A new file is created with the given name if it does not exist already.

Value Returned

t

When a CSV template file is successfully created.

nil

The operation was unsuccessful.

Examples

The following examples creates the exampleTemplate CSV file for the specified cellview:

eadCreateDataSetLayCSVTemplate(cvId "./exampleTemplate.csv")
==> t

Where cvId = geGetEditCellView(window)and window = hiGetCurrentWindow().

See Also: eadCreateDataSetFromLayCSV

eadCreateNetGroup

eadCreateNetGroup(
x_cellViewID
t_groupName
?netNames l_netNames
?regExp t_regExp
?file t_fileName
)
=> t / nil

Description

Creates a new net group by the given name in the given cellview. If given, it can also contain the nets.

Arguments

x_cellViewID

ID of the cellview

t_groupName

Name of the net group to be created

?netNames l_netNames

List of names of nets to be added to the new net group

?regExp t_regExp

Regular or wildcard expression to identify names of nets to be added

?fileName t_fileName

Name of the file from where net names are to be read. All the nets whose names are given in the file are included in the new net group.

Value Returned

t_eventDescription

If a net group is created successfully

nil

If a net group is not created

Example

The following example code creates a new net group named groupX and adds two nets, AVDD and AVSS, to it:

cvId = geGetEditCellView()
list netNames = nil if(eadCreateNetGroup(cvId "groupX" ?netNames list("AVDD" "AVSS")) then    netNames = eadGetNetsInNetGroup(cvId "groupX")
printf("netNames: %L\n" netNames)
else
warn("Failed to create netGroup correctly\n")
)

eadDeleteNetGroup

eadDeleteNetGroup(
x_cellViewID
t_groupName
)
=> t / nil

Description

Deletes a net group from the given cellview.

Arguments

x_cellViewID

ID of the cellview

t_groupName

Name of the net group to be deleted

Value Returned

t

If the given net group is deleted successfully

nil

If the net group does not exist or deletion fails

Example

The following example code deletes the net group gropuX from the current cellview. Then, it verifies the deletion by using the eadGetNetsInNetGroup function:

cvId = geGetEditCellView()
list netNames = nil
if(eadDeleteNetGroup(cvId "groupX") then    netNames = eadGetNetsInNetGroup(cvId "groupX")
;should warn about non-existing netGroup
else
warn("Failed to delete the net group.\n")
)

eadExtractParasiticsForDesign

eadExtractParasiticsForDesign(
w_winId
)
=> t / nil

Description

Extracts parasitics for the specified layout window if the EAD Browser is initialized. You can configure extraction options on the EAD Options form.

Arguments

w_winId

Window Id of the layout.

Value Returned

t

Returns t if parasitics are extracted successfully.

nil

Returns nil if there is an error or if the EAD Browser is not initialized for the specified layout window.

Example

The following example extracts the parasitics for the layout in the current window.

eadExtractParasiticsForDesign(hiGetCurrentWindow())
=> t

eadGetAllEMDatasets

eadGetAllEMDatasets(
)
=> l_emDatasets / nil

Description

Returns a list of all EM datasets present in the current design

Arguments

None

Value Returned

l_emDatasets

A list of all EM datasets in the current design.

nil

Indicates an error.

Examples

The following examples returns a list of all EM datasets present in the current design.

eadGetAllEMDatasets()
=>
("myDataset_I" "dataSet_8_I" "dataSet_7_I" "dataSet_6_I" "dataSet_4_I"
    "dataSet_1_I" "dataSet_0_I" "EMData"
)

eadGetNetsInNetGroup

eadGetNetsInNetGroup(
t_eventName
)
=> t_eventDescription / nil

Description

Lists all the nets contained in the specified net group of the given cellview.

Arguments

x_cellViewID

ID of the cellview

t_groupName

Name of the net group for which the net names are to be displayed

Value Returned

l_netNames

List of names of nets contained in the given net group

nil

Net group is not found

Example

The following example code deletes the net group gropuX from the current cellview. Then, it verifies the deletion by using the eadGetNetsInNetGroup function:

cvId = geGetEditCellView()
list netNames = nil
if(eadDeleteNetGroup(cvId "groupX") then    netNames = eadGetNetsInNetGroup(cvId "groupX")
;should warn about non-existing netGroup
else
warn("Failed to delete the net group.\n")
)

eadGetTriggerDesc

eadGetTriggerDesc(
t_eventName
)
=> t_eventDescription / nil

Description

Provides a description about the given event and the arguments required by the SKILL triggers registered for that event.

Arguments

t_eventName

Name of the event for which details are required.

Currently, PreLoadSetup is the only valid event for which triggers can be registered. Trigger registration is not supported for any other event.

Value Returned

t_eventDescription

Help string describing the event and the required arguments

nil

If the description for the specified event was not found

Example

The following example code shows how the eadGetTriggerDesc function can be used to get the details of the PreLoadSetup event.

eadGetTriggerDesc("PreLoadSetup") 
=> "This event takes place after the design is initialized and before any EAD related setup is loaded.  Mandatory arguements for the functions registered against PreLoadSetup event are WindowId and cellViewId."

eadGetLocCurrentLimit

eadGetLocCurrentLimit(
w_winId
l_point
t_layerName
[ ?direction t_direction ]
[ ?pulseWidth n_pulseWidth ]
[ ?dutyCycleRatio n_dutyCycleRatio ]
[ ?rmsMetalLineNum n_rmsMetalLineNum ]
[ ?hiEM n_hiEM ]
)
=> l_limit / nil

Description

Returns the current carrying EM limit of a resistor on the specified location. Additional arguments, such as ?pulseWidth and ?hiEM can be specified to match specific EM rules in the EAD technology file or the ICT-EM file.

Arguments

w_winId

Window Id of the layout.

l_point

List of points specifying the location.

t_layerName

Name of the layer.

?direction t_direction

Default direction of current.

?pulseWidth n_pulseWidth

Pulse width.

?dutyCycleRatio n_dutyCycleRatio

Ratio of the time for which the signal remains ‘high’ to the time period of the signal.

?rmsMetalLineNum n_rmsMetalLineNum

RMS metal line number for nets. This number is used to search the metal line rating tables in the EM models.

?hiEM n_hiEM

High EM value.

Value Returned

l_limit

Current extraction or EM limit.

nil

Returns nil if there is an error or if the EAD Browser is not initialized for the specified layout window.

Example

The following example returns the extraction or EM limit for the specified location in the layer Via1 of the layout in the current window.

eadGetLocCurrentLimit(hiGetCurrentWindow() list(29.49 9.155) "Via1")

eadJobClose

eadJobClose(
x_windowID
t_jobConfigurationFile
)
=> t / nil

Description

Collects results from the batch jobs submitted to computer farms or dedicated servers for distributed computation. When all the distributed jobs are completed successfully, you can use this command to collect extraction results from each job. The parasitic results from individual batch run are combined into one OA database and automatically displayed in the EAD browser summary table.

Arguments

x_windowID

Window ID of the layout view window on which the extraction is being performed.

t_jobConfigurationFIle

Name of the job configuration file.

Value Returned

t

When all the jobs are closed successfully

nil

In case of an error

Example

The following example shows how to run and close jobs for distributed extraction:
;Start extraction using the eadJobSubmit function
eadJobSubmit( hiGetCurrentWindow() "NULL" ) => t ; check status using the eadJobStatus function eadJobStatus( hiGetCurrentWindow() "NULL" ) ; After the eadJobStatus command returns t, run the following command: eadJobClose( hiGetCurrentWindow() "NULL" ) ; The tool will collect results from all finished jobs, combine ; the results into one OA database and display results in the EAD browser.

Also see: Distributed Computation of Extraction Process

eadJobStatus

eadJobStatus(
x_windowID
t_jobConfigurationFile
)
=> t / t_jobStatus

Description

Returns the status of batch jobs submitted to computer farms or dedicated servers for distributed computation.

Arguments

x_windowID

ID of the current cellview window

t_jobConfigurationFIle

Name of the job configuration file

Value Returned

t

When all the submitted jobs are complete

t_jobStatus

Status of all the jobs (running, waiting, or finished)

Example:

Total 5 jobs, 5 running, 0 status unknown, 0 finished

Example

The following example shows how to check the status of jobs submitted using the eadJobSubmit command:

The following example shows how to check the status of jobs submitted using the eadJobStatus command:
;Start extraction using the eadJobSubmit function eadJobSubmit( hiGetCurrentWindow() "NULL" ) => t ; check status using the eadJobStatus function eadJobStatus( hiGetCurrentWindow() "NULL" )
=> t

Also see: Distributed Computation of Extraction Process

eadJobSubmit

eadJobSubmit(
x_windowID
t_jobConfigurationFile
)
=> t / nil

Description

Submits batch jobs to computer farms or dedicated servers for distributed computation.

Arguments

x_windowID

ID of the current cellview window

t_jobConfigurationFile

Name of the job configuration file

Value Returned

t

When the jobs are submitted successfully

nil

In case of an error

Example

The following example shows how to submit jobs for distributed extraction:
The following example shows how to submit jobs for distributed extraction:
ead_dp_net_group_number = 5
ead_dp_batch_command = "/grid/sfi/farm/bin/bsub"
ead_dp_batch_command_option = "-W 3:00 -q lnx64 -R \"OSREL==EE50 || OSREL==EE60
span[hosts=1] rusage[mem=8000]\" -P IC:6.1.6:RD:QUAL"
; Run the following command to submit batch jobs: eadJobSubmit( hiGetCurrentWindow() "NULL")
=> t
; The tool will automatically divide all nets into 5 groups, using command
;"/grid/sfi/farm/bin/bsub" to send each job to LSF farm,
;with command option ""-W 3:00 -q lnx64 -R \"OSREL==EE50 … …"

Also see: Distributed Computation of Extraction Process

eadLoadSetup

eadLoadSetup(
w_winId
t_setupFile
)
=> t / nil

Description

Initializes the EAD Browser in the specified layout window with the given setup file.

Arguments

w_winId

Window Id of the layout.

t_setupFile

Path to the setup file to be loaded.

Value Returned

t

Returns t if setup is loaded successfully.

nil

Returns nil if there is an error or if the path to the setup file is not correct.

Example

The following example loads the EAD setup environment using the setup_test.ini file.

eadLoadSetup(hiGetCurrentWindow() "./.cadence/dfII/EAD/1/setup/setup_test.ini")
=> t

eadPreEMSetUserStopCVList

eadPreEMSetUserStopCVList(
l_libraryCells
)
=> t / nil

Description

Sets all or the specified cells of user-specified libraries as stop views. The instances of the specified cells are not descended further during the pre-EM checks.

Arguments

l_libraryCells

A list of library cells that are to be set as stop views during pre-EM checks.

Value Returned

t

Sets the specified cellviews as stop views.

nil

If there is an error.

Examples

Example 1

The following example sets all the cellviews of the libraries lib1 and lib2 as stop views during pre-EM check:

eadPreEMSetUserStopCVList(list("lib1" "lib2"))

Example 2

The following example sets the following cellviews as stop views:

eadPreEMSetUserStopCVList(list(list("lib1" "cell1" "cell2") "lib2" list("lib3" "cell1" "cell2") "lib4"))

eadRegTrigger

eadRegTrigger(
t_eventName
t_callbackProcName
n_priority
)
=> t / nil

Description

Registers a user-defined callback SKILL function for the specified event or trigger with the given priority. You can create custom callback functions to perform necessary updates when these events are triggered.

You can register multiple triggers for an event. When the specified event occurs, the SKILL triggers registered for that event are executed in the order of their priority. Triggers registered without any priority are executed in the order of their registration.

Arguments

t_eventName

Name of the event.

For details about the events for which you can register callbacks, refer to the Events table.

t_callbackProcName

Name of the callback SKILL procedure to be registered for the given event or trigger.

n_priority

(Optional) Priority level at which the registered trigger is to be executed when the given event occurs. You can use an integer value to specify the priority level. A lower value indicates a higher priority.

Table C-1 Events

Event Description

PreLoadSetup

Occurs before any EAD-related setup is loaded.

PostDatasetTransfer

Occurs after the dataset transfers to the layout view are complete. The callback function for this event takes two inputs, the cellview id of the layout design and the list of transferred datasets.

Value Returned

t

The trigger function is successfully registered for the given event

nil

Registration of trigger was unsuccessful

Examples

Example 1:

The following example registers four triggers for the PreLoadSetup event. trigger2 gets the highest priority followed by trigger1, trigger3, and trigger4 in the given order.

eadRegTrigger("PreLoadSetup" "trigger1" 10) 
=> t
eadRegTrigger("PreLoadSetup" "trigger2" 5)
=> t
eadRegTrigger("PreLoadSetup" "trigger3")
=> t
eadRegTrigger("PreLoadSetup" "trigger4")
=> t
;; registration of a trigger for an unsupported event shows a warning message
eadRegTrigger("LoadSetup" "trigger6")
=> *WARNING* Specified event "LoadSetup" is not supported.

Example 2:

The following example code registers a callback for the PostDatasetTransfer event:

eadRegTrigger("PostDatasetTransfer" "CDNS_PostDatasetTransfer_Update")
procedure( CDNS_PostDatasetTransfer_Update(cvId datasets)    printf("Target Layout : '%s/%s/%s'.\n" cvId->libName cvId->cellName cvId- >viewName)
foreach( ds datasets
printf("Dataset Transferred : '%s'.\n" ds)
)
)

eadRegisterCustomEMVariable

eadRegisterCustomEMVariable(
t_varName
)
=> t / nil

Description

Registers a variable as a custom variable for the purpose of EM calculation. By using the eadSetEMVariable function, you can vary the value of the registered variable before running EM checks. If a variable is not registered, modifying its values does affect EM calculations.

Related Topic: Using Custom Variables in ICT-EM Files

Arguments

t_varName

Name of the variable to be registered.

Value Returned

t

The variable is successfully registered.

nil

Registration of variable was unsuccessful.

Example

The following example code register a custom variable named myCustomVariable:

eadRegisterCustomEMVariable("myCustomVariable")

eadRemoveNetsFromNetGroup

eadRemoveNetsFromNetGroup(
x_cellViewID
t_groupName
?netNames l_netNames
?regExp t_regExp
?file t_fileName
)
=> t / nil

Description

Removes the given nets from the specified net group of the given cellview.

Arguments

x_cellViewID

ID of the cellview

t_groupName

Name of the net group from which nets are to be deleted

?netNames l_netNames

List of names of nets to be removed from the given net group

?regExp t_regExp

Regular or wildcard expression to identify names of nets to be removed

?fileName t_fileName

Name of the file from where net names are to be read. All the nets whose names are given in the file are removed from the net group.

Value Returned

t

If the nets were removed from net group successfully.

nil

If the net group does not exist or deletion of nets from the net group fails.

Example

The following example code uses a regular expression to identify and remove nets from net group groupX in the current cellview. After removal, it verifies the list of net names using the eadGetNetsInNetGroup function:

cvId = geGetEditCellView()
list netNames = nil
if(eadRemoveNetsFromNetGroup(cvId "groupX" ?regExp "AV*") then
netNames = eadGetNetsInNetGroup(cvId "groupX")
printf("netNames: %L\n" netNames)
else
warn("Failed to create netGroup correctly\n")
)

eadRemoveParasitics

eadRemoveParasitics(
t_libName
t_cellName
t_viewName
)
=> t / nil

Description

Deletes the parasitic information associated with the specified layout design and saves the design (provided there were no other unsaved changes prior to calling the function).

If you run this function interactively from the CIW, the EAD Browser tables are not refreshed.

Arguments

t_libName

Name of the library containing the layout design.

t_cellName

Name of the cell for which parasitics are to be deleted.

t_viewName

Name of the view for which parasitics are to be deleted.

Value Returned

t

Parasitic information was removed from the specified cellview.

nil

The operation was unsuccessful.

Example

The following example removes parasitic information from a layout design called via_em_test in library em_test.

eadRemoveParasitics("em_test" "via_em_test" "layout")
=> t

eadSetEMVariable

eadSetEMVariable(
g_varName
[ g_varValue ]
[ g_layerName ]
[ g_analysisPointName ]
)
=> t / nil

Description

Sets the value of a custom variable registered by eadRegisterCustomEMVariable. The value is used by the EM limit calculation expressions in the ICT-EM file.

Arguments

g_varName

Name of the custom variable

g_varValue

Value to be set for the variable

g_layerName

Name of the layer for which this variable is to be used.

g_analysisPointName

Name of the analysis point or corner

Value Returned

t

The value is successfully set for the variable.

nil

The value is not set successfully.

Example

The following example sets the value for a custom variable myCustomVar for layer mt3:

eadRegisterCustomEMVariable("myCustomVar" "10.3" "mt3" "nom")
=> t

elecTransferDataSets

elecTransferDataSets(
t_libName
t_cellName
t_viewName
[ ?dataSetList l_dataSetList ]
[ ?dataSetType t_dataSetType ]
[ ?schLCV g_schLCV ]
[ ?needToSave g_needToSave ]
)
=> t / nil

Description

Transfers datasets from schematic to layout. By default, the function transfers all the datasets from schematic to layout. You can use the key arguments to transfer specific datasets.

If you run this function interactively from the CIW, the EAD Browser tables are not refreshed.

Arguments

t_libName

Name of the library of the source view.

t_cellName

Name of the cell of the source view.

t_viewName

Name of the layout view to which the datasets are to be transfered from the schematic view of the same cell.

[ ?dataSetList l_dataSetList ]

List of the names of the datasets to be transfered.

If you do not specify any list, all the datasets for the given cellview are deleted.

[ ?dataSetType t_dataSetType ]

Type of the datasets to be transfered.

Valid values:

  • "currentData": Only the datasets that contain the current data are transferred.
  • "voltageData": Only the datasets that contain the voltage data are transferred.

[ ?schLCV g_schLCV ]

List containing the library, cell, and view name to be considered as the schematic source or the dbObject ID of a schematic view that is already opened in Virtuoso.

Datasets are transfered from this schematic to the layout view of the library and cell specified by the t_libName and t_cellName arguments.

[ ?needToSave g_needToSave ]

Boolean value to specify if the layout view is to be saved after transferring the datasets from schematic to layout.

Set this value to t if you need to save the datasets in the layout view and use them in future sessions. Set this value to nil if you need to use the transferred datasets only in the current session, without saving them in the layout view.

Value Returned

t

The dataset is successfully transfered.

nil

The operation was unsuccessful.

Example

The following examples show different ways in which datasets can be transfered.

elecTransferDataSets("test1" "buffer" "layout")
=> t
elecTransferDataSets("test1" "buffer" "layout" ?dataSetList list("buffer_0_I" "buffer_1_V")) => t elecTransferDataSets("test1" "buffer" "layout" ?dataSetType "currentData") => t elecTransferDataSets("test1" "buffer" "layout" ?schLCV list("test1" "buffer" "schematic")) => t elecTransferDataSets("test1" "buffer" "layout" ?dataSetList list("buffer_0_I" "buffer_1_V") ?schLCV list("test1" "buffer" "schematic")) => t ; The following example transfers the datasets that store current data from the schematic view of test2:buffer to the layout view of test1:buffer: elecTransferDataSets("test1" "buffer" "layout" ?dataSetType "currentData" ?schLCV list("test1" "buffer" "schematic")) => t elecTransferDataSets("test1" "buffer" "layout" ?dataSetList list("buffer_0_I" "buffer_1_V") ?dataSetType "currentData" ?schLCV list("test1" "buffer" "schematic")) => t ; The following example transfers the datasets that store current data using the object ID of a schematic view: elecTransferDataSets("test1" "buffer" "layout" ?dataSetList list("buffer_0_I" "buffer_1_V") ?dataSetType "currentData" ?schLCV dbOpenCellViewByType("test2" "buffer" "schematic")) => t

eadUnregTrigger

eadUnregTrigger(
t_eventName
t_triggerName
)
=> t / nil

Description

Removes the entry for the specified SKILL trigger from the registered list of triggers for the given event. When the specified event occurs, the remaining registered triggers, if any, for that event get executed in their order of priority.

Arguments

t_eventName

Name of the event

t_triggerName

Name of the SKILL trigger to be unregistered

Value Returned

t

The trigger is successfully unregistered for the given event.

nil

The operation was unsuccessful.

Example

The following example removes trigger1 from the list of registered triggers for the PreLoadSetup event.

eadUnregTrigger("PreLoadSetup" "trigger1") 
=> t

eadInitializeDesign

eadInitializeDesign(
t_layoutDesignCellViewId
t_eadSetupFile
t_cornerName
)
=> t / nil

Description

Initializes the specified layout design with the specified EAD setup and corner name.

Arguments

t_layoutDesignCellViewId

Cellview ID of the layout design.

t_eadSetupFile

Path to the EAD setup file.

t_cornerName

Name of the corner.

Value Returned

t

EAD setup is initialized for the specified layout design.

nil

EAD setup cannot be initialized because of an error.

Example

Opens the cellview in append mode.

cv = (dbOpenCellViewByType "Two_Stage_Opamp" "OpAmp" "layout_user" "maskLayout" "a")
=> db:0xb697de9a

Initializes the design specified in the cellview with the specified EAD setup file for the nominal corner:

eadInitializeDesign(cv  ".cadence/dfII/EAD/1/setup/gpdk090.ini" "nominal")
=> t

eadExtractParasitics

eadExtractParasitics(
t_layoutDesignCellViewId
[ l_netNames ]
)
=> t / nil

Description

Extracts parasitics from the specified layout design.

Before extracting parasitics using the eadExtractParasitics function, ensure that:

Arguments

t_layoutDesignCellViewId

Cellview ID of the layout design.

l_netNames

List of nets for which parasitics are to be extracted.

This is an optional argument. If you do not specify this argument, parasitics are extracted for all nets in the specified design.

Value Returned

t

Parasitics are extracted.

nil

Parasitics cannot be extracted because of an error.

Example

Opens the cellview in append mode.

cv = (dbOpenCellViewByType "Two_Stage_Opamp" "OpAmp" "layout_user" "maskLayout" "a")
=> db:0xb697de9a

Extracts parasitics for nets net14 and Ibias in the specified layout design:

eadExtractParasitics(cv '("net14" "Ibias"))
=> t

Extracts parasitics for all nets in the specified layout design.

eadExtractParasitics(cv)
=> t

eadRemoveDesignParasitics

eadRemoveDesignParasitics(
t_layoutDesignCellViewId
)
=> t / nil

Description

Removes the parasitics extracted from the specified layout design.

Before removing parasitics using the eadRemoveDesignParasitics function, ensure that:

Arguments

t_layoutDesignCellViewId

Cellview ID of the layout design.

Value Returned

t

Parasitics are removed.

nil

Parasitics cannot be removed because of an error.

Example

Opens the cellview in append mode.

cv = (dbOpenCellViewByType "Two_Stage_Opamp" "OpAmp" "layout_user" "maskLayout" "a")
=> db:0xb697de9a

Removes parasitics from the specified layout design.

eadRemoveDesignParasitics(cv)
=> t

eadRunEM

eadRunEM(
d_cellViewID
[ l_netNames ]
)
=> t / nil

Description

Runs EM analysis on all nets or on a list of specified nets in the specified layout design.

Arguments

t_cellViewID

Cellview ID of the layout design.

l_netNames

A list of net names for which you want to run EM Analysis.

Value Returned

t

EM analysis is run successfully.

nil

EM analysis cannot be run because of an error.

Examples

The following example runs EM analysis on the nets, net14, net17, and net019 in the specified design.

cvID=dbOpenCellViewByType("Two_Stage_Opamp" "DiffOpAmp" "mostly_routed_backup_00001")
; Opens the specified cellview
eadRunEM(cvID list("net14" "net17" "net019"))
;Runs the EM analysis on the nets, net14, net17, and net019
=> db:0x3fa3169a
=> t

The following example runs EM analysis on all the nets in the specified design.

cvID=dbOpenCellViewByType("Two_Stage_Opamp" "DiffOpAmp" "mostly_routed_backup_00001")
; Opens the specified cellview
eadRunEM(cvID)
;Runs EM analysis on all nets
=> db:0x3fa3169a
=> t

eadSaveSummaryTableToCSV

eadSaveSummaryTableToCSV(
t_csvFileName
)
=> t / nil

Description

Exports data from the Net Summary table of the EAD Browser to the specified CSV file.

Arguments

t_csvFileName

Path to the CSV file to which data from the Net Summary table is to be exported.

For example:

"/home/user/export/myNetSummaryTable.csv"

If you specify only the name of the CSV file, the CSV file is saved in the current working directory.

Value Returned

t

Data is successfully exported to the specified CSV file.

nil

Data cannot be exported because of an error.

Examples

The following example exports data from the Net Summary table of the EAD Browser to the CSV file at the specified location.

eadSaveSummaryTableToCSV("/home/user/export/myNetSummaryTabletoCSV.csv")
=> t

The contents of the CSV file are:

Net,R Count,EM Viol,J/Jmax,Max Drop
AVDD,338,0,0,0
AVSS,141,,,
Ibias,402,0,0,0
inm,32,0,0,0
inp,36,,,
net14,276,9,2.615,4.055e-3
net17,36,0,0,0
net019,39,21,5.702,2.746e-3
net021,76,0,0,0
net22,240,23,6.084,19.94e-3
net035,0,,,
net036,189,0,0,0
net044,243,24,6.084,19.96e-3
outm,123,43,15.41,36.76e-3
outp,122,41,12.24,37.23e-3

The following example exports data from the Net Summary table ofthe EAD Browser to the specified CSV file in the current working directory:

eadSaveSummaryTableToCSV("myNetSummaryTabletoCSV.csv")
=> t

eadSetCurrentDataset

eadSetCurrentDataset(
d_cellViewID
t_datasetName
)
=> t / nil

Description

Sets the specified dataset as the active electrical dataset in the EAD Browser of the specified layout cellview.

Arguments

d_cellViewID

ID of the layout cellview.

t_datasetName

Name of the dataset to be set as the active electrical dataset.

Value Returned

t

The specified dataset is set as the active electrical dataset.

nil

The dataset cannot be set as the active electrical dataset because of an error.

Examples

The following example sets the dataset "dataSet_7_I" as the active electrical dataset in the EAD Browser of the specified cellview.

cvID=dbOpenCellViewByType("Two_Stage_Opamp" "DiffOpAmp" "mostly_routed_backup_00001")
; Opens the specified cellview
eadGetAllEMDatasets()
;Returns a list of all available EM datasets in the current cellview
eadSetCurrentDataset(cvID "dataSet_7_I")
; Sets the dataset "dataSet_7_I" as the active electrical dataset in the EAD Browser of the current cellview
=> db:0x3fa3169a
=> 
("myDataset_I" "dataSet_8_I" "dataSet_7_I" "dataSet_6_I" "dataSet_4_I"
    "dataSet_1_I" "dataSet_0_I" "EMData"
)
=> t

The following example sets the dataset "All" as the active electrical dataset in the EAD Browser of the specified cellview.

cvID=dbOpenCellViewByType("Two_Stage_Opamp" "DiffOpAmp" "mostly_routed_backup_00001")
; Opens the specified cellview
eadGetAllEMDatasets()
;Returns a list of all available EM datasets in the current cellview
eadSetCurrentDataset(cvID "All")
; Sets the dataset "All" as the active electrical dataset in the EAD Browser of the current cellview
=> db:0x3fa3169a
=> 
("myDataset_I" "dataSet_8_I" "dataSet_7_I" "dataSet_6_I" "dataSet_4_I"
    "dataSet_1_I" "dataSet_0_I" "EMData"
)
=> t


Return to top
 ⠀
X