Antenna rules
Check the partially manufactured net, compute a simple antenna budget, and measure the cost of adding protection.
- Lesson
- L6.6
- Time
- 24 min
- Runs on
- OpenROAD
- Check
- 5 questions
The elongated MAC finishes detailed routing with 0 routing violations, yet its antenna checker reports 9 violating nets. Its long input connections are dangerous during fabrication even though the final connectivity is correct. The router’s geometric result therefore leaves a separate manufacturing check to perform.
- Tap cells
- Logic
- Buffers and inverters
- Flip-flops
- Clock tree
- met1
- met2
- I/O pins
- Stage
- Floorplan
- Cell area
- 4,977.3 µm²
- Utilization
- 10.4 %
- Worst max slack
- 0.7041 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4243 ns
- Stage
- Global placement
- Cell area
- 4,977.3 µm²
- Utilization
- 10.4 %
- Wirelength (HPWL)
- 9,403 µm
- Worst max slack
- 0.2650 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4463 ns
- Overflow
- 0.0996
- Stage
- Detailed placement
- Cell area
- 4,977.3 µm²
- Utilization
- 10.4 %
- Wirelength (HPWL)
- 10,566 µm
- Worst max slack
- 0.1596 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4700 ns
- Stage
- Clock tree
- Cell area
- 5,073.6 µm²
- Utilization
- 10.6 %
- Wirelength (HPWL)
- 10,987 µm
- Worst max slack
- 0.1298 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4848 ns
- Clock skew
- 0.0062 ns
- Stage
- Global route
- Cell area
- 5,073.6 µm²
- Utilization
- 10.6 %
- Wirelength (HPWL)
- 10,987 µm
- Routed wirelength
- 18,567 µm
- Worst max slack
- −0.1878 ns
- Total negative max slack
- −0.5615 ns
- Worst min slack
- 0.5007 ns
- Routing usage
- 7.6 %
- Overflow
- 0
- Stage
- Detailed route
- Cell area
- 5,073.6 µm²
- Utilization
- 10.6 %
- Wirelength (HPWL)
- 10,987 µm
- Routed wirelength
- 12,789 µm
- Worst max slack
- 0.1653 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4806 ns
- Routing violations
- 0
- Global route
Selected input pins are on the left and accumulator outputs on the right, in a chosen elongated die.
- Detailed route
Detailed wire centre lines. The separate antenna report finds 9 violating nets.
Read the layout as text
mac: die 450.00 × 120.00 µm, core 439.76 × 108.80 µm, 40 rows of 2.72 µm, 39 signal pins.
| Stage | Cell area | Utilization | Wirelength (HPWL) | Routed wirelength | Worst max slack | Total negative max slack | Worst min slack | Clock skew | Routing usage | Overflow | Routing violations | Cells placed |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Floorplan | 4,977.3 µm² | 10.4 % | — | — | 0.7041 ns | 0.0000 ns | 0.4243 ns | — | — | — | — | 651 tap cells; I/O pins not placed yet |
| Global placement | 4,977.3 µm² | 10.4 % | 9,403 µm | — | 0.2650 ns | 0.0000 ns | 0.4463 ns | — | — | 0.0996 | — | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops |
| Detailed placement | 4,977.3 µm² | 10.4 % | 10,566 µm | — | 0.1596 ns | 0.0000 ns | 0.4700 ns | — | — | — | — | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops |
| Clock tree | 5,073.6 µm² | 10.6 % | 10,987 µm | — | 0.1298 ns | 0.0000 ns | 0.4848 ns | 0.0062 ns | — | — | — | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops, 8 clock tree |
| Global route | 5,073.6 µm² | 10.6 % | 10,987 µm | 18,567 µm | −0.1878 ns | −0.5615 ns | 0.5007 ns | — | 7.6 % | 0 | — | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops, 8 clock tree |
| Detailed route | 5,073.6 µm² | 10.6 % | 10,987 µm | 12,789 µm | 0.1653 ns | 0.0000 ns | 0.4806 ns | — | — | — | 0 | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops, 8 clock tree |
Measured MAC on a chosen 450 × 120 µm die, with signal routing restricted to met1–met2. The violation table names the offending nets and layers.
Analyze the connections present during fabrication
The completed netlist hides the order in which its metal connections are manufactured. During plasma processing, an exposed conductor can collect charge while connected to a transistor gate but without enough diffusion to discharge it safely. Excess voltage across the thin gate oxide can damage the device before the chip ever runs.
Read the diagram as text
- Gate oxide: Small charge-sensitive area
- Lower metal: Collects plasma charge
- Higher-metal bridge: Connected at a later stage
- Driver diffusion: Potential discharge path
- Gate oxide → Lower metal: already connected
- Lower metal → Higher-metal bridge: later connection
- Higher-metal bridge → Driver diffusion: completed route
Conceptual process sequence. The antenna calculation evaluates connectivity by layer, rather than only the finished net.
An antenna ratio compares collecting conductor area with the connected gate area, using the process’s rule definitions. Some rules use metal surface area, others sidewall area or via-cut area; partial and cumulative ratios account for different collecting structures.
The SKY130 metal rules here use a diffusion-dependent sidewall limit. Added diffusion increases the allowed ratio, but it does not make every possible wire automatically safe. The checker must still evaluate the resulting network against the applicable rule.
| Net | Receiving pin | Layer | Partial sidewall ratio | Limit |
|---|---|---|---|---|
| a[7] | _507_/A1 | met1 | 1924.08 | 400.00 |
| a[4] | _602_/A1 | met1 | 1896.31 | 400.00 |
| a[3] | _601_/A1 | met1 | 1889.64 | 400.00 |
| a[6] | _604_/A1 | met1 | 1865.47 | 400.00 |
The worst measured violations in the elongated MAC. A ratio and limit must refer to the same rule and connectivity stage.
Work a single-rectangle budget
The cell LEF gives dfxtp_1’s D pin gate area 0.126 µm². With no diffusion, the chosen met1 sidewall rule permits ratio 400; the corresponding sidewall budget is 50.40 µm².
| Model quantity | No diode | With one diode_2 |
|---|---|---|
| Connected diffusion area | 0 µm² | 0.4347 µm² |
| Interpolated sidewall limit | 400.00 | 2773.88 |
| Allowed met1 sidewall area | 50.40 µm² | 349.51 µm² |
| Single-rectangle length | 71.86 µm | 499.16 µm |
Hand model: one rectangle of width 0.14 µm and thickness 0.35 µm, one dfxtp_1 D gate, and no other collecting shapes.
For that rectangle, sidewall area is perimeter times thickness: 2·(L+W)·t. Solve the allowed-area inequality for L, using the gate area and rule limit from the same model. Existing pin metal, branches, additional gates and other process rules would change this simplified budget.
The diode contributes 0.4347 µm² of diffusion in the cell LEF. Linear interpolation between the surrounding rule-table points raises this model’s limit to 2773.88. The calculated length is an illustration of the rule, not a permitted routing length for every real net.
The table uses a flop’s D gate, while the failing MAC inputs reach mux pins with different gate areas. Apply the actual receiving pin’s LEF area before evaluating any reported net.
A layer jumper works through process order rather than merely choosing a lower-resistance layer. A short lower-metal section remains near the gate while a later layer carries the longer connection. Its effectiveness depends on where the jump occurs and which collecting shapes remain attached at each step.
Repair, route again and recheck
- Tap cells
- Logic
- Buffers and inverters
- Flip-flops
- Clock tree
- met1
- met2
- I/O pins
- Stage
- Floorplan
- Cell area
- 4,977.3 µm²
- Utilization
- 10.4 %
- Worst max slack
- 0.7041 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4243 ns
- Stage
- Global placement
- Cell area
- 4,977.3 µm²
- Utilization
- 10.4 %
- Wirelength (HPWL)
- 9,403 µm
- Worst max slack
- 0.2650 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4463 ns
- Overflow
- 0.0996
- Stage
- Detailed placement
- Cell area
- 4,977.3 µm²
- Utilization
- 10.4 %
- Wirelength (HPWL)
- 10,566 µm
- Worst max slack
- 0.1596 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4700 ns
- Stage
- Clock tree
- Cell area
- 5,073.6 µm²
- Utilization
- 10.6 %
- Wirelength (HPWL)
- 10,987 µm
- Worst max slack
- 0.1298 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4848 ns
- Clock skew
- 0.0062 ns
- Stage
- Global route
- Cell area
- 5,103.6 µm²
- Utilization
- 10.7 %
- Wirelength (HPWL)
- 10,995 µm
- Routed wirelength
- 18,567 µm
- Worst max slack
- −0.1878 ns
- Total negative max slack
- −0.5615 ns
- Worst min slack
- 0.5007 ns
- Routing usage
- 7.6 %
- Overflow
- 0
- Stage
- Detailed route
- Cell area
- 5,103.6 µm²
- Utilization
- 10.7 %
- Wirelength (HPWL)
- 10,995 µm
- Routed wirelength
- 12,821 µm
- Worst max slack
- 0.1531 ns
- Total negative max slack
- 0.0000 ns
- Worst min slack
- 0.4806 ns
- Routing violations
- 0
- Detailed route
The final design contains 12 diode_2 cells and reports 0 antenna violations.
Read the layout as text
mac: die 450.00 × 120.00 µm, core 439.76 × 108.80 µm, 40 rows of 2.72 µm, 39 signal pins.
| Stage | Cell area | Utilization | Wirelength (HPWL) | Routed wirelength | Worst max slack | Total negative max slack | Worst min slack | Clock skew | Routing usage | Overflow | Routing violations | Cells placed |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Floorplan | 4,977.3 µm² | 10.4 % | — | — | 0.7041 ns | 0.0000 ns | 0.4243 ns | — | — | — | — | 651 tap cells; I/O pins not placed yet |
| Global placement | 4,977.3 µm² | 10.4 % | 9,403 µm | — | 0.2650 ns | 0.0000 ns | 0.4463 ns | — | — | 0.0996 | — | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops |
| Detailed placement | 4,977.3 µm² | 10.4 % | 10,566 µm | — | 0.1596 ns | 0.0000 ns | 0.4700 ns | — | — | — | — | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops |
| Clock tree | 5,073.6 µm² | 10.6 % | 10,987 µm | — | 0.1298 ns | 0.0000 ns | 0.4848 ns | 0.0062 ns | — | — | — | 651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops, 8 clock tree |
| Global route | 5,103.6 µm² | 10.7 % | 10,995 µm | 18,567 µm | −0.1878 ns | −0.5615 ns | 0.5007 ns | — | 7.6 % | 0 | — | 651 tap cells, 6 buffers and inverters, 401 logic, 52 flip-flops, 8 clock tree |
| Detailed route | 5,103.6 µm² | 10.7 % | 10,995 µm | 12,821 µm | 0.1531 ns | 0.0000 ns | 0.4806 ns | — | — | — | 0 | 651 tap cells, 6 buffers and inverters, 401 logic, 52 flip-flops, 8 clock tree |
The same elongated floorplan. OpenROAD repair_antennas runs after global routing, then detailed routing and extraction run again.
| Run | Antenna nets | Diodes | Routing DRC | Extracted setup slack |
|---|---|---|---|---|
| met1–met2, unrepaired | 9 | 0 | 0 | 0.1653 ns |
| met1–met2, repaired | 0 | 12 | 0 | 0.1531 ns |
| met1–met5, unrepaired | 12 | 0 | 0 | 0.1577 ns |
Wider layer availability alone does not fix this case. The antenna checks are repeated on the final detailed routes.
Repair inserts 12 diodes, although the initial detailed report named 9 violating nets. Repair acts on its global-route model before the final geometry, so those counts need not match one-for-one.
Each diode_2 has library area 2.5024 µm² and pin capacitance 0.878 fF. Protection therefore has an electrical and placement cost, which must be included when rechecking timing and legality.
The experiment with more available layers still fails antenna checking because availability does not force a protective jump near each gate. The router may simply move a long collecting section upward, where a sidewall rule still applies. A manufacturing fix needs the checker’s result, rather than a guess based on layer height.
The live STA example adds a diode to an observed buffer output, exposing its added pin load in the timing result. It does not calculate physical antenna ratios because that example has no routed geometry. Full-layout antenna verification remains part of the final manufacturing checks after all geometry changes.
f0 → f1setup check, latest arrival2 cells
- Clock latency
- Cell delay
- Setup time
Read the path as a table
Launch: clk rise edge at 0.0000 ns, clock latency 0.0000 ns (ideal). Capture: clk rise edge at 1.0000 ns, latency 0.0000 ns, library setup time −0.0849 ns.
Arrival 0.5108 ns, required 0.9151 ns, slack 0.4044 ns (met).
| Cell | Arc | Through | Edge | Delay (ns) | Time (ns) | Slew (ns) |
|---|---|---|---|---|---|---|
| 1 | f0/CLK → f0/Q | dfxtp_1 | rise | 0.3156 | 0.3156 | 0.0372 |
f0/Q → victim_driver/A | wire launch | rise | 0.0000 | 0.3156 | 0.0372 | |
| 2 | victim_driver/A → victim_driver/X | buf_1 | rise | 0.1951 | 0.5108 | 0.2146 |
victim_driver/X → f1/D | wire observe | rise | 0.0000 | 0.5108 | 0.2146 |
The report
Startpoint: f0 (rising edge-triggered flip-flop clocked by clk)
Endpoint: f1 (rising edge-triggered flip-flop clocked by clk)
Path Group: clk
Path Type: max
Fanout Cap Slew Delay Time Description
-------------------------------------------------------------------------------------
0.1000 0.0000 0.0000 clock clk (rise edge)
0.0000 0.0000 clock network delay (ideal)
0.1000 0.0000 0.0000 ^ f0/CLK (sky130_fd_sc_hd__dfxtp_1)
1 0.0022 0.0372 0.3156 0.3156 ^ f0/Q (sky130_fd_sc_hd__dfxtp_1)
launch (net)
0.0372 0.0000 0.3156 ^ victim_driver/A (sky130_fd_sc_hd__buf_1)
3 0.0176 0.2146 0.1951 0.5108 ^ victim_driver/X (sky130_fd_sc_hd__buf_1)
observe (net)
0.2146 0.0000 0.5108 ^ f1/D (sky130_fd_sc_hd__dfxtp_1)
0.5108 data arrival time
0.1000 1.0000 1.0000 clock clk (rise edge)
0.0000 1.0000 clock network delay (ideal)
0.0000 1.0000 clock reconvergence pessimism
1.0000 ^ f1/CLK (sky130_fd_sc_hd__dfxtp_1)
-0.0849 0.9151 library setup time
0.9151 data required time
-------------------------------------------------------------------------------------
0.9151 data required time
-0.5108 data arrival time
-------------------------------------------------------------------------------------
0.4044 slack (MET)OpenSTA on the chosen two-flop buffer path, including the diode pin capacitance.
Asked in interviews
When does antenna damage occur?
During fabrication, when partially connected conductors collect charge and stress a gate oxide. The final logical function does not reveal that process history.
Why place a protection diode near a gate?
Its diffusion should connect to the vulnerable structure at the relevant process stage, without leaving another long unprotected connection.
Why reroute and recheck after repair?
New cells and wires change geometry, capacitance and placement demand. The final route must satisfy antenna, timing and geometric requirements together.
Try it
The buffer output has a diode_2 attached and gives 0.4044 ns setup slack. Remove only the protection instance to observe its loading cost.
The physical antenna reports above use routed geometry. This live timing experiment isolates an electrical consequence of protection.
Run to draw the timing paths here.
WNS 0.4044 nsCheck yourself
Remember
- Antenna rules examine collecting shapes and connectivity during fabrication.
- Use the correct gate, diffusion and process-rule quantities when computing a ratio.
- A diode or well-placed layer jump can protect a vulnerable structure.
- Reroute, extract and recheck after repair; merely enabling more layers is insufficient.