Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 3.27 KB

README.md

File metadata and controls

59 lines (41 loc) · 3.27 KB

Antenna Rule Checker

This tool checks antenna violations and generates a report to indicate violated nets. See LEF/DEF 5.8 Language Reference, Appendix C, "Calculating and Fixing Process Antenna Violations" for a description of antenna violations.

This is an example of the detailed and simple reports of the antenna checker:

| |

Abbreviations Index:

  • PAR: Partial Area Ratio
  • CAR: Cumulative Area Ratio
  • Area: Gate Area
  • S. Area: Side Diffusion Area
  • C. Area: Cumulative Gate Area
  • C. S. Area: Cumulative Side (Diffusion) Area

Antenna violations can be repaired after global routing with the repair_design command.

Commands

check_antennas

Check nets for antenna violations.

check_antennas [-net net] [-verbose]
  • -verbose report all antenna calculations for violating nets
  • 'net' check antennas on one net

Limitations

FAQs

Check out GitHub discussion about this tool.

Algorithm

Antenna Checker Algorithm: WireGraph Example Step 1: (a) Start from the root node (ITerm) using upper Via to find a node for a new wire. (b) Save the ITerm area for cumulative gate/diffusion area.
Step 2: From the node of the wire, find all the nodes in the wire through segment wires and find the "root" node of this wire. Step 3: (a) From the "root" node of the wire, along the outgoing segment edge that goes to other nodes belonging to this wire, calculate the area of this wire. (b) Then, find all the ITerms below these nodes, except for the root node (directly use an ITerm or lower Vias to find ITerms for lower metals). (c) Sum up the areas of all the ITerms found with the cumulative areas and calculate the PAR of this wire. (d) Add the PAR value and the wire info (layer, Index) into the PAR table. Add the new area to the cumulative areas.
Step 4: Find all the upper Vias on this wire (for all the nodes on this wire), and go to the higher-level metal. Step 5: Repeat Steps 2 and 3 for new-found upper-level wires.
Step 6: Repeat Steps 4 and 5 until we reach a wire that cannot have upper Vias for its nodes (highest-level metal). Step 7: Pick up another ITerm as a root node and repeat Steps 1 to 6, skipping the wires already in the PAR table. Repeat this for all the ITerms to get a whole PAR table.
Step 8: (a) Pick up a gate ITerm and a node of a wire (e.g., M4,1). Find possible paths that connect them, look up the PAR value of the wires along these paths, and add them up to get the CAR of the (gate, wire) pair. (b) Compare to the AntennaRule to see if the CAR violates the rules. (c) Check this for all (gate, wire) pairs.

License

BSD 3-Clause License. See LICENSE file.