leRegisterPPNetNameFn
leRegisterPPNetNameFn(
S_ppNetNameFn
)
=> t / nil
Description
Registers a SKILL function that specifies the names of pseudo-parallel subnets when called by the layout generation commands Generate All From Source and Update Components and Nets.
This is useful when you work with the layout using non-Cadence tools or scripts that follow a set naming convention. Subnets specified by this SKILL function are created by dbCreateNamedSubNet and can be found using dbFindNetByName.
Arguments
|
S_ppNetNameFn
|
Name of the SKILL function to be registered.
The SKILL function must take the following three arguments and return a string that is a valid net name that is not the name of an existing net or subnet in the same cellview.
-
netId: ID of the net for which a new pseudo parallel subnet is to be returned. -
num: The unique number for each subnet that is created for the top level net. If the Generate All From Source command creates 4 subnets for the top level net netA, the registered S_ppNetNameFn is called 4 times during Generate All From Source for netA, and num has a different value between 1 and 4 for each call. -
isVector: Specifies whether the top level netId is a vector bit net. Valid values: t or nil.
This can be used to ensure a legal name is returned. For example, if the top level net is named n<1> then it is a vector bit net and isVector is t. The registered function ensures that it returns a valid name such as na<1> rather than n<1>a which is an illegal net name.
If leRegisterPPNetNameFn is called with an empty string argument, then any existing named pseudo parallel net name function is unregistered and the pseudo parallel subnets are named automatically without callbacks to any user function.
|
Value Returned
|
t
|
The SKILL function was registered.
|
|
nil
|
The SKILL function registration failed.
|
Example
Registers ppNetName as the user-defined SKILL function.
leRegisterPPNetNameFn("ppNetName")
Where ppNetName is the function procedure defined as:
procedure(ppNetName(netId num isVector)
let((name suffix parsed)
if( num<=26 then
suffix = intToChar(charToInt('a) + num-1)
else
suffix = sprintf(nil "_%d" num)
)
if( isVector then
parsed = parseString(netId~>name "<>")
name = strcat(car(parsed) suffix "(" cadr(parsed) ")")
else
name = strcat(netId~>name suffix)
)
)
leRegisterPPNetNameFn("ppNetName")
Return to top