| <h3 id='___change_gate'>change_gate</h3> | |
| <pre>ECO command. Modify an instance in ECO | |
| Two types of usages | |
| <b>Usage1:</b> change_gate($instance, $new_reference, $pin_mapping); | |
| $instance: The instance under ECO. Support hierarchical name, "u_abc/U123" | |
| $new_reference: The new reference name which the instance changes to, E.G. 'AND3X1'. | |
| If no reference is present, the ECO operation is assumed to | |
| change the instance's pin connections. | |
| $pin_mapping: Input pins mapping, ".new(old)", E.G. ".A1(A),.B1(B)" | |
| if two references have same input pins. The option can be empty | |
| <b>Usage2:</b> change_gate($instance, $pin_connections); | |
| $pin_connections: New pin connections, ".A(n242)". | |
| The unspecified pins keeps the original connection. | |
| E.G. pin 'B' connection is unchanged. | |
| <b>Examples:</b> | |
| #1. U123 has reference OR3X1 with input pins, A,B,C originally | |
| # change U123 to AND3X1, all input pins are the same. | |
| change_gate('U123', 'AND3X1', ""); | |
| #2. A and B keep the connections, discard C | |
| change_gate('U123', 'AND2X1', ""); | |
| #3. A keeps the connections, B connects to what the old C connects. And discard old B | |
| change_gate('U123', 'AND2X1', ".B(C)"); | |
| #4. A,B,C keep the same, and new D pin connects to net n123 | |
| change_gate('U123', 'AND4X1', ".D(n123)"); | |
| #5. AO21X1 has input pins, A0, A1 and B0 | |
| change_gate('U123', 'AO21X1', ".A0(A),.A1(B),.B0(C)"); | |
| #6. change U123 A to n123, B to n124, keep C connection. | |
| change_gate("U123", ".A(n123),.B(n124)"); | |
| #7. Rotating A/B/C connections. | |
| change_gate("U123", ".A(B),.B(C),.C(A)"); | |
| </pre> |