|
<h3 id='___get_drivers'>get_drivers</h3> |
|
<pre>Get the drivers of a net or pin |
|
<b>Usage:</b> @drivers = get_drivers($point, @options); |
|
$point: net name or pin name, 'n12345' or 'U12345/A1' |
|
@options: |
|
-nonbuf: Trace the drivers until none buffer |
|
@drivers: An array of the drivers, if the point is floating, @drivers is empty, |
|
if the point has multi-drivers, @drivers has more than one items. |
|
For each item in @drivers |
|
Index 0: instance, it is empty if the driver is port |
|
Index 1: pin or port, if the driver is port, return port |
|
Index 2: string "pin" or "port" depending on the driver is port or leaf cell |
|
Index 3: indicating drive path inverted or not |
|
If 'nonbuf' is present, the last item in @drivers is the non-buffer driver |
|
So '$nonbuf = pop @drivers' can get the non-buffer driver |
|
<b>Note:</b> |
|
Use 'get_driver' instead if the net has only one driver and 'nonbuf' option is not used |
|
|
|
<b>Examples:</b> |
|
|
|
#1. Get drivers of a net |
|
@drivers = get_drivers("net12345"); |
|
@drivers has content of (["U1247", "Y", "pin"]); |
|
|
|
#2. 'port_abc' is input port |
|
@drivers = get_drivers("port_abc"); |
|
@drivers has content of (["", "port_abc", "port"]); |
|
|
|
#3. Buffers in the path |
|
@drivers = get_drivers("state_reg/CK", "-nonbuf"); |
|
@drivers has content of |
|
( |
|
["buf_inst0", "Y", "pin"], |
|
["inv_inst1", "Y", "pin"], |
|
["and_inst2", "Y", "pin"] |
|
) |
|
</pre> |