| <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> |