Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

vyges-ant — CLI reference

Generated from vyges-ant --help. Do not edit by hand — run scripts/gen-cli-reference.sh.

vyges-ant — antenna ratio sign-off over the routed design database

USAGE:
  vyges-ant check <design.odb> [-o FILE] [--json]
  vyges-ant explain <design.odb> --net NAME
  vyges-ant --describe
  vyges-ant --help

OPTIONS:
  --net NAME            (explain) dump one net's per-gate, per-stage attribution
  -o FILE               write the report to FILE instead of stdout
  --json                emit JSON (the default for `check`)
  --describe            print a machine-readable JSON description of the command

EXIT STATUS:
  0  clean          no violation found
  1  violations     at least one net exceeds a LEF antenna limit
  2  error          usage error, unreadable database, or no DBU scale

Contract

Generated from vyges-ant --describe.

ant

antenna ratio sign-off (PAR/CAR/PSR/CSR) over the routed design database

Maturity: structured

check {odb}
InputTypeRequiredDescription
odbstringyespath to the routed design database (.odb)
outstringnowrite the report to FILE instead of stdout

Consumes: odb

Artifacts: antenna_report (report_path)

Assertion: antenna-clean — passes when status equals clean

Provenance limitations

  • input_hash covers the argument vector, not the content of the .odb it names.
  • Both the plain and the diffusion-dependent (PWL) LEF ratio forms are read; where a technology states a diff curve it takes precedence, and outside the curve’s stated range the limit is clamped rather than extrapolated.
  • A ratio the technology states in neither form is not checked. On sky130 only DiffPSR is stated, so PAR, CAR and CSR are unlimited there; layers_without_rules and no_rules_found report this rather than leaving it implied by the exit code.
  • Correlated against OpenROAD check_antennas on a routed sky130 block: 76 of 83 violations matched exactly, 1 unconfirmed, 76 of 77 compared values within 2%, and every shared record agreeing on the limit. 7 real violations are still missed, so this is not yet a formal sign-off gate – run check_antennas before a tapeout – but the two engines agree to the decimal on what they both see.
  • The ratio is charged per CONDUCTOR: metal reachable from the gates over layers at or below the one being deposited, divided by the summed gate area of the gates on that conductor. Measured as the exact union of the rectangles, so overlap and abutment count once.
  • The diffusion-dependent limit is indexed by each conductor’s own diffusion, matching OpenROAD’s per-node iterm_diff_area. Every terminal is anchored to a conductor, not only the gates, since a diode pin carries diffusion without carrying a gate.
  • The conductor graph follows AntennaChecker: vias decomposed onto the layers they occupy, pin metal subtracted so pins cut the wire into antenna regions, components labelled per layer, layers joined through the cut between them, and terminals attached to the fragments their own pin boxes touch.
  • Cut layers (mcon/via/via2) are not checked; routing layers only.
  • Diffusion area is applied net-wide, where the real limit varies per layer as the path to diffusion completes.
  • A terminal whose pin metal touches no routing is attached to nothing and, if it is a gate, counted in gates_unanchored rather than silently skipped.
  • Layer accumulation order is dbTechLayer routing level, not a manufacturing step model.