via stack none|all|value
via pattern normal|inverted
via use name [name ...]
The via command provides information to the router on via placement and routing behavior that may not be provided by the LEF file. There are two separate options. via stack tells qrouter how many vias may be stacked directly upon one another. "via stack 1" will not allow any vias to be stacked, and is equivalent to both "via stack 0" and "via stack none". "via stack 2 will allow stacks of any two adjacent vias, but no more. "via stack all" allows unrestricted stacking of vias.Note that "via stack none" is a simple way of satisfying minimum metal area constraints even for processes that allow stacking, because it forces each metal route to be at least one track pitch long, to get from one via to the next, although this comes at a cost of a slightly higher probability of a route failure.
via pattern is typically only relevant for fabrication processes of 180nm feature size and smaller. At these feature sizes, design rules require an overlap on two sides of a contact cut. At minimum pitch, there is often not enough room from the long end of the via to the long end of another (unconnected) via on an adjacent track. The best method to avoid this problem is simply to rotate vias on adjacent tracks relative to one another. This produces a "checkerboard" pattern, with half the vias oriented horizontally and the other half vertically. The options "normal" and "inverted" differ by which half of the vias are horizontal and which half are vertical. There should be no advantage of one arrangement over the other.
via use is used to avoid issues where qrouter gets confused by a large number of VIA definitions in a technology LEF file. The command is followed by a list of one or more via names. Preferably this list should contain one via name per layer (support for multiple vias per layer at different orientations is currently a work in progress, although the "via pattern" option (see above) provides a light-weight support option).
via is implemented as a built-in command in the Tcl version of qrouter. The "via pattern" is equivalent to the statment of the same name and syntax in the original configuration file format, and the "via stack" is equivalent to the "stack" statement in the original configuration file, except for the use of "via stack none" instead of "no stack".
Return to reference page |
Last updated: August 28, 2017 at 3:11pm