Bartels :: Bartels AutoEngineer :: BAE Documentation :: User Language Programmer's Guide :: System Functions :: IC Design System Functions |
Bartels User Language - Programmer's GuideC.5 IC Design System Functions |
![]() |
This section describes (in alphabetical order) the IC design system functions of the Bartels User Language. See Appendix C.1 for function description notations.
The following User Language system functions are assigned to caller type ICD; i.e., they can be called from the Chip Editor interpreter environment of the Bartels AutoEngineer:
int icd_altpinlay( // Returns layer number (ICD1) );
The icd_altpinlay function returns the alternate pin layer number defined in the BAE IC setup file for GDS input.
int icd_cellconlay( // Returns layer number (ICD1) );
The icd_cellconlay function returns the layer number defined in the BAE IC setup for internal cell connections.
int icd_cellscan( // Returns cell DRC mode );
The icd_cellscan function returns the cell DRC mode defined in the BAE IC setup (0 = no DRC for cell structures, 1 = DRC for cell structures).
double icd_cellshr( // Cell keepout area shrink value (STD2) );
The icd_cellshr function returns the shrink value defined in the BAE IC setup for the automatic autorouter keepout area generation.
string icd_ciflayname( // Returns layer name int [0,99]; // Layer number (ICD1) );
The icd_ciflayname function returns the CIF output layer name defined for the given layer number (ICD1) in the BAE IC setup file.
double icd_cstdsiz( // Returns standard cell height (STD2) );
The icd_cellshr function returns the standard cell height value defined in the BAE IC setup for the automatic cell placer.
string icd_defelemname( // Returns default element name );
The icd_defelemname function returns the default IC Design element name defined in the BAE IC setup file.
string icd_deflibname( // Returns default library name );
The icd_deflibname function returns the default IC Design library name defined in the BAE IC setup file.
int icd_drcarc( // Returns DRC arc mode );
The icd_drcarc function returns the DRC arc mode defined in the BAE IC setup (0 = arcs allowed, 1 = no arcs allowed).
double icd_drcgrid( // Returns DRC grid value (STD2) );
The icd_drcgrid function returns the DRC grid value defined in the BAE IC setup.
int icd_drclaymode( // Returns layer DRC mode int [0,99]; // Layer number (ICD1) );
The icd_drclaymode function returns the DRC mode for the given layer defined in the BAE IC setup (0 = no DRC on the given layer, 1 = DRC on the given layer).
double icd_drcmaxpar( // Returns parallel check length (STD2) );
The icd_drcmaxpar function returns the DRC maximal parallel structures length value value defined in the BAE IC setup.
double icd_drcminwidth( // Returns DRC minimal value (STD2) int [0,99]; // Layer number (ICD1) );
The icd_drcminwidth function returns the DRC minimal structure size value for the given layer defined in the BAE IC setup.
int icd_drcrect( // Returns DRC orthogonal mode );
The icd_drcarc function returns the DRC arc mode defined in the BAE IC setup (0 = arbitrary angles allowed, 1 = only right angles allowed).
int icd_ecnlaymode( // Returns layer connectivity mode int [0,99]; // Layer number (ICD1) );
The icd_ecnlaymode function returns the connectivity mode for the given layer defined in the BAE IC setup (0 = no connectivity on the given layer, 1 = connectivity on the given layer).
int icd_findconpart( // Returns status string; // Part name & index I_CPART; // Returns part index );
The icd_findconpart function searches the IC Design connection list part index with the specified part name. The function returns zero if the part has been found or nonzero otherwise.
Functions icd_findconpartpin, icd_findcontree.
int icd_findconpartpin( // Returns status string; // Pin name index I_CPART; // Net list part index & index I_CPIN; // Returns net list part pin index );
The icd_findconpartpin function searches an IC Design connection list part for the part pin index with the specified pin name. The function returns zero if the part pin has been found or nonzero otherwise.
Functions icd_findconpart, icd_findcontree.
int icd_findcontree( // Returns status string; // Net name & index I_CNET; // Returns net index );
The icd_findcontree function searches the IC Design connection list net index with the specified net name. The function returns zero if the net has been found or nonzero otherwise.
Functions icd_findconpart, icd_findconpartpin.
int icd_getrulecnt( // Returns rule count or (-1) on error int; // Object class code int; // Object ident code (int or index type) );
The
icd_getrulecnt function is used for determining the number of rules attached to a specific object. The object can be the currently loaded element (object class code 0 with
int
value 0 passed for the object ident code), a figure list element of the currently loaded element (object class code 1 with valid
I_FIGURE index type value passed for the object ident code), or a pool list element (object class code 2 with valid
I_POOL index type value passed for the object ident code). The function returns a (non-negative) rule count or (-1) on error. The rule count determines the valid range for rule list indices to be passed to the
icd_getrulename function for getting object-specific rule names. The
icd_ruleerr function can be used to determine the error reason after an unsuccessful call of the
icd_getrulecnt function.
Functions icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neural Rule System and Rule System Compiler..
int icd_getrulename( // Returns nonzero on error int; // Object class code int; // Object ident code (int or index type) int [0,[; // Rule name list index & string; // Rule name result );
The
icd_getrulename function is used to get the name of an index-specified rule assigned to the specified object. The object can be the currently loaded element (object class code 0 with
int
value 0 passed for the object ident code), a figure list element of the currently loaded element (object class code 1 with valid
I_FIGURE index type value passed for the object ident code), or a pool list element (object class code 2 with valid
I_POOL index type value passed for the object ident code). The rule name list index to be specified can be determined using the
icd_getrulecnt function. The rule name is returned with the last function parameter. The function returns zero on success or nonzero on error. The
icd_ruleerr function can be used to determine the error reason after an unsuccessful call of the
icd_getrulename function.
Functions icd_getrulecnt, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neural Rule System and Rule System Compiler..
int icd_gettreeidx( // Returns status int; // Net tree number & index I_CNET; // Returns net index );
The icd_gettreeidx function searches the IC Design connection list net index with the specified net tree number. The function returns zero if the net has been found or nonzero otherwise.
int icd_grpdisplay( // Returns layer number (ICD1) );
The icd_grpdisplay function returns the group display layer number defined in the BAE IC setup file.
int icd_lastfigelem( // Returns status & index I_FIGURE; // Returns figure list index );
The icd_lastfigelem function gets the last created and/or modified IC Design figure list element and returns the corresponding figure list index with the return parameter. The function returns zero if such an element exists or nonzero else.
void icd_maccoords( & double; // Macro X coordinate (STD2) & double; // Macro Y coordinate (STD2) & double; // Macro rotation angle (STD3) & double; // Macro scaling factor & int; // Macro mirror mode (STD14) );
The icd_maccoords function returns with its parameters the placement data of the currently scanned macro. This function is intended for use in the macro callback function of icd_scanall, icd_scanfelem or icd_scanpool only (otherwise zero/default values are returned).
Functions icd_scanall, icd_scanfelem, icd_scanpool.
int icd_nrefsearch( // Returns status string; // Reference name & index I_FIGURE; // Returns figure list index );
The icd_nrefsearch function searches for the specified named reference on the currently loaded IC Design element. The figure list index is set accordingly if the named reference is found. The function returns zero if the named reference has been found or nonzero otherwise.
int icd_outlinelay( // Returns layer number (ICD1) );
The icd_outlinelay function returns the cell outline layer number defined in the BAE IC setup.
double icd_pindist( // Returns pin keepout distance (STD2) );
The icd_pindist function returns the pin keepout distance value defined in the BAE IC setup for the automatic keepout area generation.
double icd_plcxgrid( // Returns placement grid value (STD2) );
The icd_plcxgrid function returns the horizontal cell placement grid value defined in the BAE IC setup for the automatic cell placement.
double icd_plcxoffset( // Returns placement offset value (STD2) );
The icd_plcxoffset function returns the horizontal cell placement offset value defined in the BAE IC setup for the automatic cell placement.
int icd_routcellcnt( // Returns cell count );
The icd_routcellcnt function returns the number of power supply cells defined in the BAE IC setup.
string icd_routcellname( // Returns cell name int [0,[; // Cell index );
The icd_routcellname function returns the name of a power supply cell defined in the BAE IC setup file. The index can be in the range of 0 to icd_routcellcnt()-1.
void icd_ruleerr( & int; // Error item code & string; // Error item string );
The icd_ruleerr function provides information on the current Rule System error state, and thus can be used to determine the error reason after an unsuccessful call to one of the Rule System management functions.
The Rule System error state can be determined by evaluating the parameters returned with the icd_ruleerr function. The returned error item string identifies the error-causing element if needed. The possible error code values correspond with Rule System error conditions according to the following table:
Error Code Meaning 0 Rule System operation completed without errors 1 Rule System out of memory 2 Rule System internal error <e>
3 Rule System function parameter invalid 128 Rule System DB file create error 129 Rule System DB file read/write error 130 Rule System DB file wrong type 131 Rule System DB file structure bad 132 Rule System DB file not found 133 Rule System DB file other error (internal error) 134 Rule System rule <r>
not found in rule database135 Rule System rule bad DB format (internal error <e>
)136 Rule System object not found 137 Rule System object double defined (internal error) 138 Rule System incompatible variable <v>
definition139 Rule System Rule <r>
compiled with incompatible RULECOMP versionDepending on the error condition the error item string can describe a rule
<r>
, a variable<v>
or an (internal) error status<e>
. DB file errors refer to problems accessing the Rule System database filebrules.vdb
in the BAE programs directory. Internal errors usually refer to Rule System implementation gaps and should be reported to Bartels.
Functions icd_getrulecnt, icd_getrulename, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neural Rule System and Rule System Compiler..
int icd_rulefigatt( // Returns nonzero on error index I_FIGURE; // Figure list element index void; // Rule name string or rule name list array );
The icd_rulefigatt function is used to attach a new set of name-specified rules to the figure list element specified with the first function parameter. Either a single rule name (i.e., a value of typestring
) or a set of rule names (i.e., an array of typestring
) can be specified with the second function parameter. Note that any rules previously attached to the figure list element are detached before attaching the new rule set. The function returns zero on success or nonzero on error. The icd_ruleerr function can be used to determine the error reason after an unsuccessful call of the icd_rulefigatt function.
Functions icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neural Rule System and Rule System Compiler..
int icd_rulefigdet( // Returns nonzero on error index I_FIGURE; // Figure list element index );
The icd_rulefigdet function is used to detach all currently attached rules from the figure list element specified with the function parameter. The function returns zero on success or nonzero on error. The icd_ruleerr function can be used to determine the error reason after an unsuccessful call of the icd_rulefigdet function.
Functions icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_ruleplanatt. icd_ruleplandet, icd_rulequery; Neural Rule System and Rule System Compiler..
int icd_ruleplanatt( // Returns nonzero on error void; // Rule name string or rule name list array );
The icd_ruleplanatt function is used to attach a new set of name-specified rules to the currently loaded element. Either a single rule name (i.e., a value of typestring
) or a set of rule names (i.e., an array of typestring
) can be specified with the function parameter. Note that any rules previously attached to the current element are detached before the new rule set is attached. The function returns zero on success or nonzero on error. The icd_ruleerr function can be used to determine the error reason after an unsuccessful call of the icd_ruleplanatt function.
Functions icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplandet, icd_rulequery; Neural Rule System and Rule System Compiler..
int icd_ruleplandet( // Returns nonzero on error );
The icd_ruleplandet function to detach all currently attached rules from the currently loaded element. The function returns zero on success or nonzero on error. The icd_ruleerr function can be used to determine the error reason after an unsuccessful call of the icd_ruleplandet function.
Functions icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_rulequery; Neural Rule System and Rule System Compiler..
int icd_rulequery( // Returns hit count or (-1) on error int; // Object class code int; // Object ident code (int or index type) string; // Subject name string; // Predicate name string; // Query command string & void; // Query result [] // Optional query parameters of requested type );
The icd_rulequery function is used to perform a rule query on a specific object. The object can be the currently loaded element (object class code 0 withint
value 0 passed for the object ident code), a figure list element of the currently loaded element (object class code 1 with valid I_FIGURE index type value passed for the object ident code), or a pool list element (object class code 2 with valid I_POOL index type value passed for the object ident code). The rule query function requires a rule subject, a rule predicate and a query command string to be specified with the corresponding function parameters. The query command string can contain one query operator and a series of value definition operators. The following query operators are implemented:
?d
for querying int
values?f
for querying double
values?s
for querying string
valuesThe query operator can optionally be preceded with one of the following selection operators:
+
for selecting the maximum of all matching values -
for selecting the minimum of all matching values The
+
operator is used on default (e.g., when omitting the selection operator). The rule query resulting value is passed back to the caller with the query result parameter. This means that the query result parameter data type must comply with the query operator (int
for?d
,double
for?f
,string
for?s
). The query command string can also contain a series of value definition operators such as:
%d
for specifying int
values%f
for specifying double
values%s
for specifying string
valuesEach value definition parameter is considered a placeholder for specific data to be passed with optional parameters. Note that these optional parameters must comply with the query command in terms of specified sequence and data types. The icd_rulequery function returns a (non-negative) hit count denoting the number of value set entries matched by the query. The function returns (-1) on error. The icd_ruleerr function can be used to determine the error reason after an unsuccessful call of the icd_rulequery function.
With the rulerule somerule { subject subj { pred := ("A", 2); pred := ("A", 4); pred := ("B", 1); pred := ("C", 3); pred := ("B", 6); pred := ("D", 5); pred := ("D", 6); pred := ("A", 3); } }defined and attached to the currently loaded element, the icd_rulequery call
hitcount = icd_rulequery(0,0,"subj","pred","%s ?d",intresult,"A") ;sets the
int
variablehitcount
to 3 and theint
variableintresult
to 4, whilst a call such ashitcount = icd_rulequery(0,0,"subj","pred","-?s %d",strresult,6) ;sets
hitcount
to 2 andstring
variablestrresult
toB
.
Functions icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet; Neural Rule System and Rule System Compiler..
int icd_scanall( // Returns scan status double; // Scan X offset (STD2) double; // Scan Y offset (STD2) double; // Scan rotation angle (STD3) int [0,1]; // Element in workspace flag (STD10) int [0,1]; // Connectivity scan allowed flag: // 0 = no scan allowed // 1 = scan allowed * int; // Macro callback function * int; // Polygon callback function * int; // Path callback function * int; // Text callback function * int; // Layer check function * int; // Level check function );
The icd_scanall function scans all figure list elements placed on the currently loaded IC Design element with all hierarchy levels. User-defined callback functions are activated automatically according to the currently scanned element type. If a certain callback function should not be referenced, then the corresponding parameter must be set to the keywordNULL
. The return value of icd_scanall is nonzero on invalid parameter specifications, or if one of the referenced user functions has returned a scan error status.Macro callback function
int macrofuncname( index I_MACRO macro, // Macro index index I_POOL pool, // Pool element index int macinws, // Macro in workspace flag (STD10) string refname, // Macro Reference name index I_LEVEL level, // Macro signal level int stkcnt // Macro stack depth ) { // Macro callback function statements : return(contscan); }The icd_maccoords function can be used for determining the macro placement coordinates. The return value of the macro callback function must be 1 for continue scan, 0 for stop scan or (-1) on error.
Polygon callback function
int polyfuncname( index I_POLY poly, // Polygon index int layer, // Polygon layer (ICD1) int polyinws, // Polygon in workspace flag (STD10) int tree, // Polygon tree number or (-1) index I_LEVEL level // Polygon signal level ) { // Polygon callback function statements : return(errstat); }The return value of the polygon callback function must be zero if scan ok or nonzero on error.
Path callback function
int pathfuncname( index I_LINE path, // Path index int layer, // Path layer (ICD1) int pathinws, // Path in workspace flag (STD10) index I_LEVEL level // Path signal level ) { // Path callback function statements : return(errstat); }The return value of the path callback function must be zero if scan ok or nonzero on error.
Text callback function
int textfuncname( index I_TEXT text, // Text index double x, // Text X coordinate (STD2) double y, // Text Y coordinate (STD2) double angle, // Text rotation angle (STD3) int mirr, // Text mirror mode (STD14) int layer, // Text layer (ICD1) double size, // Text size (STD2) string textstr, // Text string int textinws // Text in workspace flag (STD10) ) { // Text callback function statements : return(errstat); }The return value of the text callback function must be zero if scan ok or nonzero on error.
Layer check function
int laycheckfuncname( int layer, // Scanned layer (ICD1) int class // Element class (STD1) ) { // Layer check function statements : return(contscan); }The return value of the layer check function must be 1 for continue scan, 0 for stop scan or (-1) on error. The scan process can be accelerated considerably if restricted to the interesting layers with this function.
Level check function
int levcheckfuncname( index I_LEVEL level // Scanned signal level ) { // Level check function statements : return(contscan); }The return value of the level check function must be 1 for continue scan, 0 for stop scan or (-1) on error. The scan process can be accelerated considerably if restricted to interesting signal levels with this function.
Functions icd_maccoords, icd_scanfelem, icd_scanpool.
int icd_scanfelem( // Returns scan status index I_FIGURE; // Figure list element index double; // Scan X offset (STD2) double; // Scan Y offset (STD2) double; // Scan rotation angle (STD3) int [0,1]; // Element in workspace flag (STD10) int [0,1]; // Connectivity scan allowed flag: // 0 = no scan allowed // 1 = scan allowed * int; // Macro callback function * int; // Polygon callback function * int; // Path callback function * int; // Text callback function * int; // Layer check function * int; // Level check function );
The
icd_scanfelem function scans the specified
IC Design figure list element with all hierarchy levels. User-defined callback functions for the currently scanned element type are automatically activated. If a certain callback function should not be referenced, then the corresponding parameter must be set to the keyword
NULL
. The return value of
icd_scanfelem is nonzero on invalid parameter specifications or if one of the referenced user functions has returned a scan error status. See
icd_scanall for the scan function definitions.
Functions icd_maccoords, icd_scanall, icd_scanpool.
int icd_scanpool( // Returns scan status void; // Pool element index double; // Scan X offset (STD2) double; // Scan Y offset (STD2) double; // Scan rotation angle (STD3) int [0,1]; // Element in workspace flag (STD10) int [0,1]; // Connectivity scan allowed flag: // 0 = no scan allowed // 1 = scan allowed * int; // Macro callback function * int; // Polygon callback function * int; // Path callback function * int; // Text callback function * int; // Drill callback function * int; // Layer check function * int; // Level check function );
The
icd_scanpool function scans the specified
IC Design pool element with all hierarchy levels. User-defined callback functions for the currently scanned element type are automatically activated. If a certain callback function should not be referenced, then the corresponding parameter must be set to the keyword
NULL
. The return value of
icd_scanpool is nonzero on invalid parameter specifications or if one of the referenced user functions has returned a scan error status. See
icd_scanall for the callback function definitions.
Functions icd_maccoords, icd_scanall, icd_scanfelem.
string icd_stdlayname( // Returns layer name int [0,99]; // Layer number (ICD1) );
The icd_stdlayname function returns the layer name defined for the given layer number (ICD1) in the BAE IC setup file.
int icd_stdpinlay( // Returns layer number (ICD1) );
The icd_stdpinlay function returns the standard pin layer number defined in the BAE IC setup file for GDS input.
int icd_vecttext( // Returns status double; // Text X coordinate (STD2) double; // Text Y coordinate (STD2) double; // Text rotation angle (STD3) int [0,1]; // Text mirror mode (STD14) double ]0.0,[; // Text size (STD2) int [0,1]; // Text physical flag: // 0 = logical // 1 = physical int [0,2]; // Layer mirror mode: // 0 = mirror off // 1 = mirror X // 2 = mirror Y int [0,[; // Text style string; // Text string * int; // Text vectorize function );
The icd_vecttext function vectorizes the specified text using the currently loaded text font. The text vectorize user function is automatically called for each text segment. The function returns nonzero if invalid parameters have been specified or if the referenced user function returns nonzero.Text vectorize function
int vecfuncname( double x1, // Start point X coordinate (STD2) double y1, // Start point Y coordinate (STD2) double x2, // End point X coordinate (STD2) double y2 // End point Y coordinate (STD2) ) { // Text vectorize function statements : return(errstat); }The return value of the text vectorize function must be zero if scan ok or nonzero on error.
The following User Language system functions are assigned to caller type CED; i.e., they can be called from the Chip Editor interpreter environment of the Bartels AutoEngineer:
int ced_asklayer( // Returns status & int; // Returns selected layer (ICD1) );
The ced_asklayer function activates a Chip Editor layer selection menu. The function returns zero if a valid layer has been selected or (-1) if the layer selection has been aborted.
int ced_delelem( // Returns status & index I_FIGURE; // Element );
The ced_delelem function deletes the given figure list element from the figure list. The function returns zero if the element was successfully deleted or nonzero on error.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
Function ced_drawelem.
void ced_drawelem( index I_FIGURE; // Element int [0, 4]; // Drawing mode (STD19) );
The ced_drawelem function updates the display of the given figure list element using the specified drawing mode.
Function ced_delelem.
int ced_elemangchg( // Returns status & index I_FIGURE; // Element double; // New rotation angle (STD3) );
The ced_elemangchg function changes the rotation angle of the given figure list element. The rotation angle must be in radians. The function returns zero if the element has been successfully rotated, (-1) if the figure list element is invalid or (-2) if the figure list element cannot be rotated.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_elemfixchg( // Returns status & index I_FIGURE; // Element int [0,1]; // New fixed flag (STD11) );
The ced_elemfixchg function changes the fixed flag of the given figure list element. A fixed flag value of 0 resets the element fixed flag, a fixed flag value of 1 sets the element fixed flag. The function returns zero if the element fixed flag has been successfully changed, (-1) if the figure list element is invalid or (-2) if the figure list element cannot be fixed.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_elemgrpchg( // Returns status index I_FIGURE; // Element int [0,2]; // New group flag (STD13) );
The ced_elemgrpchg function changes the group flag of the given figure list element. A group flag value of 0 deselects the element, a group flag value of 1 selects the element. The function returns zero if the element group flag has been successfully changed, (-1) if the figure list element is invalid or (-2) if the figure list element cannot be selected to a group.
int ced_elemlaychg( // Returns status & index I_FIGURE; // Element int; // New layer (ICD1) );
The ced_elemlaychg function changes the layer of the given figure list element. The layer can be set for polygons, traces and texts. The function returns zero if the element layer has been successfully changed, (-1) if the figure list element is invalid or (-2) if the figure list element layer cannot be set.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_elemmirrchg( // Returns status & index I_FIGURE; // Element int [0,2]; // New mirror mode (STD14|ICD3) );
The ced_elemmirrchg function changes the mirror mode of the given figure list element. The mirror mode can be set for polygons, texts, named and unnamed references. The function returns zero if the element mirror mode has been successfully changed, (-1) if the figure list element is invalid or (-2) if the figure list element mirror mode cannot be set.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_elemposchg( // Returns status & index I_FIGURE; // Element double; // New X coordinate (STD2) double; // New Y coordinate (STD2) );
The ced_elemposchg function changes the position of the given figure list element. Polygons and/or traces are replaced to set the first point of the polygon/trace to the specified position. The function returns zero if the element has been successfully repositioned, (-1) if the figure list element is invalid or (-2) if the figure list element position cannot be set.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_elemsizechg( // Returns status & index I_FIGURE; // Element double; // New size (STD2) );
The ced_elemsizechg function changes the size of the given figure list element. The size can be changed for texts, traces, named and unnamed references. For traces, a trace width change is performed. For named and unnamed references, the size specifies the scaling factor. The function returns zero if the element size has been successfully changed, (-1) if the figure list element is invalid or (-2) if the figure list element size cannot be set.
This function changes the current figure list and should be used carefully in forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_getlaydispmode( // Returns display mode (ICD9) int [0,99]; // Layer (ICD1) );
The ced_getlaydispmode function returns the layer display mode for the given layer in the Chip Editor or (-1) on error.
int ced_getmincon( // Returns
function type (ICD10)
);
The ced_getmincon function returns the currently active Chip Editor function type, i.e., the airline display mode (ICD10).
void ced_getpathwidth( & double; // Returns small standard width (STD2) & double; // Returns wide standard width (STD2) );
The ced_getpathwidth function returns with its parameters the currently active Chip Editor standard widths for small and wide traces.
int ced_getpickpreflay( // Returns pick preference layer (ICD1) );
The ced_getpickpreflay function returns the currently active Chip Editor pick preference layer for element selection (ICD1).
double ced_getwidedraw( // Returns width value (STD2) );
The ced_getwidedraw function returns the current Chip Editor wide line display start width, i.e., the minimum trace width for displaying traces like filled polygons.
int ced_groupselect( // Number of changes or (-1) on error int [0,3]; // Element selection type: // 0 = select by element type // 1 = select by element layer // 2 = select by element fixed flag // 3 = select by element visibility int; // Element selection value according to type: // element type (0|ICD5) for selection type 0 // element layer (ICD1) for select. type 1 // element fixed flag (STD11) for select. type 2 // element visible flag (0|1) for selection type 3 int [0,2]; // New group flag (STD13) );
The ced_groupselect function changes the group flag of all elements of the specified type and/or value. The function returns the number of elements (de)selected or (-1) on error (i.e., on invalid and/or incompatible parameter specifications). Element selection value zero for element type selection is used for selecting elements of any type.
Internal IC Design element types such as the standard via definition(s) are excluded from group (de)selections with ced_groupselect to prevent from unintentionally modifying and/or deleting such elements and/or definitions when subsequently using other group functions.
int ced_highlnet( // Returns status int [0,[; // Net tree number int [0,1]; // Highlight mode (0 = off, 1 = on) );
The ced_highlnet function sets the highlight mode of the net specified by the given net tree number. A highlight mode value of 1 highlight the net, a highlight mode value of 0 de-highlights the net. The function returns nonzero if an invalid net tree number and/or highlight mode value has been specified.
int ced_layergrpchg( // Number of elements int [0,[; // Layer number (ICD1) int [0,2]; // New group flag (STD13) );
The ced_layergrpchg function changes the group flag of all elements placed on the specified layer. The function returns the number of elements (de)selected or (-1) on error.
int ced_partaltmacro( // Returns status string; // Part name string; // New part cell type name );
The ced_partaltmacro function changes the cell type of the given net list part. The function returns nonzero if the part cell type has been successfully changed, (-1) for invalid input parameters, (-2) if the specified package does not contain all pins referenced by the part in the net list (cell is changed anyway), (-3) if the specified part does not exist in the net list, (-4) if the new cell type isn't allowed for this part, (-5) if the new cell macro couldn't be loaded, (-6) if the new cell couldn't be copied to the job file or (-7) on multiple cell change requests (e.g.,a
tob
and thenb
toc
) in one program run.
It is strongly recommended not to use this function in I_CPART index loops since the current I_CPART index variables are invalid after calling ced_partaltmacro.
int ced_partnamechg( // Returns status string; // Old part name string; // New part name );
The ced_partnamechg function changes the name of a net list part. The function returns nonzero if the part name has been successfully changed, (-1) for invalid input parameters, (-2) if the specified part is not yet placed, (-3) if the specified part does not exist in the net list, (-4) if the new name exists already or (-5) on multiple name change requests (e.g.,a
tob
and thenb
toc
) in one program run.
This function changes the net list and therefore requires a I_CPART index loops since the current I_CPART index variables are invalid after calling ced_partnamechg.It is strongly recommended not to use this function in
int ced_pickelem( // Returns status & index I_FIGURE; // Returns picked element int [1,8]; // Pick element type (ICD5 except 6) );
The ced_pickelem function activates an interactive figure list element pick request (with mouse). The required pick element type is specified with the second parameter. The picked figure list element index is returned with the first parameter. The function returns zero if an element has been picked or (-1) if no element of the required type has been found at the pick position.
int ced_setlaydispmode( // Returns status
int [0,99]; // Layer (ICD1)
int [0,127]; // Display mode (ICD9)
);
The ced_setlaydispmode function sets the layer display mode for the given layer in the Chip Editor. The function returns nonzero if the display mode couldn't be set.
int ced_setmincon( // Returns status
int [0,8]; // Required
function type (ICD10)
);
The ced_setmincon function sets the currently active Chip Editor function type, i.e., the airline display mode (ICD10). The function returns nonzero if an invalid function type value has been specified.
int ced_setpathwidth( // Returns status double ]0.0,[; // Required small path width (STD2) double ]0.0,[; // Required wide path width (STD2) );
The ced_setpathwidth function sets the currently active Chip Editor standard widths for small and wide traces. The function returns nonzero if invalid an invalid width value has been specified.
int ced_setpickpreflay( // Returns status int; // Required pick preference layer (ICD1) );
The ced_setpickpreflay function sets the currently active Layout Editor pick preference layer for element selection (ICD1). The function returns nonzero if an invalid pick preference layer has been specified.
int ced_setwidedraw( // Returns status double ]0.0,[; // Required width value (STD2) );
The ced_setwidedraw function sets the current Chip Editor wide line display start width, i.e., the minimum trace width for displaying traces like filled polygons. The function returns nonzero if an invalid width value is specified.
int ced_storepart( // Returns status string; // Reference name string; // Library symbol name double; // X coordinate (STD2) double; // Y coordinate (STD2) double; // Rotation angle (STD3) double; // Scaling factor int [0,1]; // Mirror mode (STD14) );
The ced_storepart function stores a cell (or pin) with the given placement parameters to the currently loaded IC design (or cell) element. The next unplaced net list part is used if an empty string is passed for the reference name. The function returns zero if the part has been successfully placed, (-1) on wrong environment or missing/invalid parameters, (-2) if all parts are placed already, (-3) if the specified part is placed already, (-4) if the part cannot be loaded, (-5) if the part pins do not match the net list specifications or (-6) if the part data could not be copied to the current job file.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_storepath( // Returns status int [0,99]; // Path layer (ICD1) double ]0.0,[; // Path width (STD2) );
The ced_storepath function generates a trace on the currently loaded IC Design using the specified placement parameters. The trace polygon points are taken from the internal polygon point list previously stored with bae_storepoint. The function returns zero if the trace has been successfully generated, (-1) on invalid environment, (-2) on missing and/or invalid parameters or (-3) if the point list is invalid.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_storepoly( // Returns status int; // Polygon layer (ICD1) int [1,4]; // Polygon type (ICD4) int [0,2]; // Mirror mode (ICD3) );
The ced_storepoly function generates a polygon on the currently loaded IC Design element using the specified placement parameters. The polygon points are taken from the internal polygon point list previously stored with bae_storepoint. The function returns zero if the polygon has been successfully generated, (-1) on invalid environment, (-2) on missing and/or invalid parameters or (-3) if the point list is not valid for the specified polygon type.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
int ced_storetext( // Returns status string; // Text string double; // Text X coordinate (STD2) double; // Text Y coordinate (STD2) double; // Text rotation angle (STD3) double ]0.0,[; // Text size (STD2) int; // Text layer (ICD1) int [0,1]; // Text mirror mode (STD14) );
The ced_storetext function generates a text on the currently loaded IC Design element using the specified placement parameters. The function returns nonzero on wrong environment or missing/invalid parameters.
This function changes the current figure list and should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops. The input text string can be stored to a maximum of up to 40 characters; longer strings cause the function to return with an invalid parameter error code.
int ced_storeuref( // Returns status string; // Library symbol name double; // Reference X coordinate (STD2) double; // Reference Y coordinate (STD2) double; // Reference rotation angle (STD3) double; // Reference scaling factor int [0,1]; // Reference mirror (STD14) );
The ced_storeuref function stores an unnamed reference (via or subpart) with the given placement parameters to the currently loaded layout element (layout or part). For vias, the reference mirror mode, the reference scaling factor, and the rotation angle are ignored. The function returns zero if the reference has been successfully placed, (-1) on wrong environment or missing/invalid parameters, (-2) if the reference cannot be loaded or (-3) if the reference data could not be copied to the current job file.
This function changes the current figure list and thus should be used carefully in
forall
loops for iterating
I_FIGURE index variables to avoid unpredictable results on figure list access and prevent from running into endless loops.
Bartels :: Bartels AutoEngineer :: BAE Documentation :: User Language Programmer's Guide :: System Functions :: IC Design System Functions |
IC Design System Functions
© 1985-2025 Oliver Bartels F+E