| <h3 id='___get_drivers'>get_drivers</h3> |
| <pre>Get the drivers of a net or pin (LLM: drivers) |
| <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> |