The pname is a string containing a parameter name for a parameter of the specified pcell, and the value argument is either a scalar or string value. The function returns 1 if the value is not forbidden by a constraint, 0 otherwise.
The params argument is a string providing the parameter values in the format of the pc_params property as applied to sub-masters and instances. i.e., values are constants and constraints are not included. The function returns 1 if no parameter has a value forbidden by a constraint, 0 otherwise.
If the optional coordinate pair orig_x and orig_y are given (in microns), then this point will be the new cell origin in physical mode only. Otherwise, the lower-left corner of the bounding box of the objects will be the new cell origin. In electrical mode, the cell origin is selected to keep contacts on-grid, and the origin arguments are ignored.
By default, this function will fail if a cell of the same name already exists in the current symbol table. However, if the CrCellOverwrite variable is set, existing cells will be overwritten with the new data, and the function will succeed.
The interpretation is similar to the new selection in the Open command in the File Menu. In the case of two words, the second word is the name of the cell to extract from the source specified as the first word. If only one word is given, it can be an archive file name in which case the top-level cell is understood, or a CHD name in which case the default cell is understood, or it can be the name of a cell available as a native cell from a library or the search path, or already exist in memory.
The second two arguments define the placement location, in microns.
The remaining arguments are optional, meaning that they need not be given, but all arguments to the left must be given.
The refpt argument is an integer code that specifies the reference point which will correspond to x, y after placement. The values can be
The corners are those of the untransformed array or cell.
0 the cell origin (the default) 1 the lower left corner 2 the upper left corner 3 the upper right corner 4 the lower right corner
In electrical mode, if the cell has terminals, this code is ignored, and the location of the first terminal is the reference point. If the cell has no terminals, the corner reference points are snapped to the nearest grid location. This is to avoid producing off-grid terminal locations.
The array argument, if given, can be a scalar, or the name of an array containing four numbers. This argument specifies the arraying parameters for the instance placement, which apply in physical mode only. If a scalar 0 is passed, the placement will not be arrayed, which is also the case if this argument does not appear and is always true in electrical mode. If the scalar is nonzero, then the placement will use the current array parameters, as displayed in the Cell Placement Control pop-up, or set with the PlaceSetArrayParams function. If the argument is the name of an array, the array contains the arraying parameters. These parameters are:
array[0] NX, integer number in the X direction. array[1] NY, integer number in the Y direction. array[2] DX, the real value spacing between cells in the X direction, in microns. array[3] DY, the real value spacing between cells in the Y direction, in microns.
The NX and NY values will be clipped to the range of 1 through 32767. The DX and DY are edge to adjacent edge spacing, i.e., when zero the elements will abut. If DX or DY is given the negative cell width or height, so that all elements appear at the same location, the corresponding NX or NY is taken as 1. Otherwise, there is no restriction on DX or DY.
If the boolean value smash is given and nonzero (TRUE), the cell will be flattened into the parent, rather than placed as an instance. The flatten-level is 1, so subcells of the cell (if any) become subcells of the parent. This argument is ignored if the cell being placed is a parameterized cell (pcell).
The usegui argument applies only when placing a pcell. If nonzero (TRUE), the Parameters panel will appear, and the function will block until the user dismisses the panel. The panel can be used to set cell parameters before instantiation. Initially, the parameters will be shown with default values, or values that were last given to PlaceSetPCellParams. If the usegui argument is not given or zero (FALSE), the default parameter set as updated with parameters given to PlaceSetPCellParams will be used to instantiate the cell immediately.
The final argument can be a null string or scalar 0 which is equivalent, an empty string, or a transform description in the format returned by GetTransformString. If null or not given, the arguemnt is ignored. In this case, the cell will be transformed before placement according to the current transform. Otherwise, the given transformation will be used when placing the instance. An empty string is taken as the identity transform. If the UseTransform mode is in effect, the current transform will be added to the string transform, giving an overall transfromation that will match geometry placement in this mode.
On success, the function returns 1, 0 otherwise.
nx Integer number in the X direction. ny Integer number in the Y direction. dx The real value spacing between cells in the X direction, in microns. dy The real value spacing between cells in the Y direction, in microns.
The nx and ny values will be clipped to the range of 1 through 32767. The dx and dy are edge to adjacent edge spacing, i.e., when zero the elements will abut. If dx or dy is given the negative cell width or height, so that all elements appear at the same location, the corresponding nx or ny is taken as 1. Otherwise, there is no restriction on dx or dy.
The function returns 1 and sets the array parameters in physical mode. In electrical mode, the function returns 0 and does nothing.
The params argument is a string providing the parameter values in the format of the pc_params property as applied to sub-masters and instances, i.e., values are constants and constraints are not included. Not all parameters need be given, only those with non-default values.
Be aware that there is no immediate constraint testing of the parameter values given to this function, though bad values will cause subsequent instantiation of the named pcell to fail. The CheckPCellParams fuction can be used to validate the params list before calling this function. When giving parameters for non-native pcells, it is recommended that the type specification prefixes be used, though an attempt is made internally to recognize and adapt to differing types.
The saved parameter set will be used for all instantiations of the pcell, until changed with another call to PlaceSetPCellParams. The placement is done with the Place script function, as for normal cells.
In graphical mode, the given parameter set will initialize the Parameters pop-up.
This function manages an internal table of cellname/parameter list associations. If 0 is given for all arguments, the table will be cleared. If the params argument is 0, the specified entry will be removed from the table. When the script terminates, parameter lists set with this function will revert to the pre-script values. Entries that were cleared by passing null arguments are not reverted, and remain cleared.
The function returns 1 on success, 0 if an error occurred, with an error message available from GetError.
The array argument can be a scalar, or the name of an array containing four numbers. This argument specifies the arraying parameters for the instance placement, which apply in physical mode only. If a scalar 0 is passed, the placement will retain the same arraying parameters as the previous instance. If the scalar is nonzero, then the placement will use the current array parameters, as displayed in the Cell Placement Control pop-up, or set with the PlaceSetArrayParams function. If the argument is the name of an array, the array contains the arraying parameters. These parameters are:
array[0] NX, integer number in the X direction. array[1] NY, integer number in the Y direction. array[2] DX, the real value spacing between cells in the X direction, in microns. array[3] DY, the real value spacing between cells in the Y direction, in microns.
The NX and NY values will be clipped to the range of 1 through 32767. The DX and DY are edge to adjacent edge spacing, i.e., when zero the elements will abut. If DX or DY is given the negative cell width or height, so that all elements appear at the same location, the corresponding NX or NY is taken as 1. Otherwise, there is no restriction on DX or DY.
On success, a name is returned. One can use this name with the Place function to instantiate the via. Otherwise, a fatal error is triggered.