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.

LayoutLong input routes in a clean geometric layout
  • Tap cells
  • Logic
  • Buffers and inverters
  • Flip-flops
  • Clock tree
  • met1
  • met2
  • I/O pins
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
Long input routes in a clean geometric layoutDrawing the layout…
  1. Global route

    Selected input pins are on the left and accumulator outputs on the right, in a chosen elongated die.

  2. 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.

StageCell areaUtilizationWirelength (HPWL)Routed wirelengthWorst max slackTotal negative max slackWorst min slackClock skewRouting usageOverflowRouting violationsCells placed
Floorplan4,977.3 µm²10.4 %——0.7041 ns0.0000 ns0.4243 ns————651 tap cells; I/O pins not placed yet
Global placement4,977.3 µm²10.4 %9,403 µm—0.2650 ns0.0000 ns0.4463 ns——0.0996—651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops
Detailed placement4,977.3 µm²10.4 %10,566 µm—0.1596 ns0.0000 ns0.4700 ns————651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops
Clock tree5,073.6 µm²10.6 %10,987 µm—0.1298 ns0.0000 ns0.4848 ns0.0062 ns———651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops, 8 clock tree
Global route5,073.6 µm²10.6 %10,987 µm18,567 µm−0.1878 ns−0.5615 ns0.5007 ns—7.6 %0—651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops, 8 clock tree
Detailed route5,073.6 µm²10.6 %10,987 µm12,789 µm0.1653 ns0.0000 ns0.4806 ns———0651 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.

A driver connection may arrive on a later metal layerThe gate can already touch a long lower-metal collector while the higher-metal connection to diffusion is still absent.
A driver connection may arrive on a later metal layerThe gate can already touch a long lower-metal collector while the higher-metal connection to diffusion is still absent. component Gate oxide Smallcharge-sensitive area component Lower metal Collects plasmacharge component Higher-metalbridge Connected at a laterstage component Driver diffusion Potential dischargepath already connectedlater connectioncompleted route
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.

NetReceiving pinLayerPartial sidewall ratioLimit
a[7]_507_/A1met11924.08400.00
a[4]_602_/A1met11896.31400.00
a[3]_601_/A1met11889.64400.00
a[6]_604_/A1met11865.47400.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 quantityNo diodeWith one diode_2
Connected diffusion area0 µm²0.4347 µm²
Interpolated sidewall limit400.002773.88
Allowed met1 sidewall area50.40 µm²349.51 µm²
Single-rectangle length71.86 µm499.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

LayoutAntenna repair followed by fresh detailed routing
  • Tap cells
  • Logic
  • Buffers and inverters
  • Flip-flops
  • Clock tree
  • met1
  • met2
  • I/O pins
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
Antenna repair followed by fresh detailed routingDrawing the layout…
  1. 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.

StageCell areaUtilizationWirelength (HPWL)Routed wirelengthWorst max slackTotal negative max slackWorst min slackClock skewRouting usageOverflowRouting violationsCells placed
Floorplan4,977.3 µm²10.4 %——0.7041 ns0.0000 ns0.4243 ns————651 tap cells; I/O pins not placed yet
Global placement4,977.3 µm²10.4 %9,403 µm—0.2650 ns0.0000 ns0.4463 ns——0.0996—651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops
Detailed placement4,977.3 µm²10.4 %10,566 µm—0.1596 ns0.0000 ns0.4700 ns————651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops
Clock tree5,073.6 µm²10.6 %10,987 µm—0.1298 ns0.0000 ns0.4848 ns0.0062 ns———651 tap cells, 6 buffers and inverters, 389 logic, 52 flip-flops, 8 clock tree
Global route5,103.6 µm²10.7 %10,995 µm18,567 µm−0.1878 ns−0.5615 ns0.5007 ns—7.6 %0—651 tap cells, 6 buffers and inverters, 401 logic, 52 flip-flops, 8 clock tree
Detailed route5,103.6 µm²10.7 %10,995 µm12,821 µm0.1531 ns0.0000 ns0.4806 ns———0651 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.

RunAntenna netsDiodesRouting DRCExtracted setup slack
met1–met2, unrepaired9000.1653 ns
met1–met2, repaired01200.1531 ns
met1–met5, unrepaired12000.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.

Timing pathThe diode’s load enters the timing calculation

f0 → f1setup check, latest arrival2 cells

  • Clock latency
  • Cell delay
  • Setup time
The diode’s load enters the timing calculation00.10.20.30.40.50.60.70.80.91time (ns)launch clk ↑capture clk ↑Data arrivesRequired byf0/CLK → f0/Q (dfxtp_1): 0.3156 ns1 dfxtp_1victim_driver/A → victim_driver/X (buf_1): 0.1951 ns2 buf_1setup −0.0849 nsslack +0.4044 ns · metarrival 0.5108required 0.9151The diode’s load enters the timing calculation00.20.40.60.81time (ns)launch clk ↑capture clk ↑Data arrivesRequired byf0/CLK → f0/Q (dfxtp_1): 0.3156 ns1 dfxtp_1victim_driver/A → victim_driver/X (buf_1): 0.1951 ns2 buf_1setup −0.0849 nsslack +0.4044 ns · metarrival 0.5108required 0.9151
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).

CellArcThroughEdgeDelay (ns)Time (ns)Slew (ns)
1f0/CLK → f0/Qdfxtp_1rise0.31560.31560.0372
f0/Q → victim_driver/Awire launchrise0.00000.31560.0372
2victim_driver/A → victim_driver/Xbuf_1rise0.19510.51080.2146
victim_driver/X → f1/Dwire observerise0.00000.51080.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
  1. 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.

  2. 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.

  3. 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.

STAOpenSTA in OpenROAD 26Q2 · sky130hd tt_025C_1v80 Liberty · simulator service
Edit the constraints or the netlist, then run

          
Expected: WNS 0.4044 ns

Check yourself

Predict the outputKeep the diode in the live netlist and change the clock period to 1.1 ns. What setup slack is reported, in ns?
create_clock -name clk -period 1.1 [get_ports clk]
set_clock_transition 0.1 [get_clocks clk]
set_load 0.015 [get_ports observe]
Read the netlist: design.v
module victim(clk, d, observe, q);
input clk, d; output observe, q; wire launch;
sky130_fd_sc_hd__dfxtp_1 f0 (.CLK(clk), .D(d), .Q(launch));
sky130_fd_sc_hd__buf_1 victim_driver (.A(launch), .X(observe));
sky130_fd_sc_hd__dfxtp_1 f1 (.CLK(clk), .D(observe), .Q(q));
sky130_fd_sc_hd__diode_2 protection (.DIODE(observe));
endmodule
ConceptWhy can a logically correct net violate antenna rules?
ConceptWhat must be true for a layer jump to help antenna protection?
ConceptWhat does a protection diode add besides diffusion area?
ConceptThe router reports zero geometric violations but 9 antenna nets. Which conclusion follows?

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.