Layout design is the physical-design discipline of transforming a logical circuit netlist into geometric shapes on silicon — assigning every transistor, standard cell, wire, and via to precise coordinates on the chip die so the resulting pattern can be manufactured by the foundry's lithography, etch, and deposition equipment. It is where electrical intent becomes physical reality: the layout determines the actual area, speed, power, and yield of the chip. Every rectangle in a GDS file that goes to TSMC or Samsung was placed and routed by a layout design flow.
The digital layout flow — place and route. For digital designs (the bulk of an AI accelerator), layout is automated by EDA tools in a sequence called PnR (place-and-route):
| Step | What happens | Key tool | Quality metric |
|---|---|---|---|
| Floorplanning | Assign chip area to major blocks (compute cores, memory, I/O ring, PLL) | Innovus, ICC2 | Block aspect ratios, wire planning |
| Power planning | Design the VDD/VSS power grid (stripes, rings, via stacks) | Innovus, ICC2 | IR-drop < 5% VDD at peak current |
| Placement | Position millions of standard cells in rows minimizing wirelength | Innovus, ICC2 | Half-perimeter wirelength (HPWL) |
| Clock tree synthesis | Build balanced buffer tree from PLL to all flip-flops | CCOpt, CTS | Skew < 30 ps, insertion delay |
| Routing | Connect all cell pins through the metal stack (M1–M15) | NanoRoute, ICC2 | Congestion, DRC-clean, timing |
| Optimization | Fix timing violations (resize cells, add buffers, reroute) | Innovus ECO, ICC2 | Setup/hold slack ≥ 0 at all corners |
| Sign-off | DRC, LVS, STA, power, EM — all must pass clean | Calibre, PrimeTime | Zero violations |
Analog and custom layout — the manual art. While digital layout is automated, analog/mixed-signal circuits (PLLs, ADCs, SerDes, voltage regulators, I/O pads) are laid out by hand or semi-custom. An analog layout engineer:
- Matches devices by placing symmetric transistor pairs (common-centroid, interdigitated) to cancel process gradients that cause offset
- Guards against noise with deep n-well isolation, substrate taps, and shielding
- Minimizes parasitics by keeping critical signal paths short with wide, low-resistance routing
- Follows DRC religiously while optimizing for electrical performance that automated tools can't capture
Analog layout is slow (weeks per block) and requires deep process knowledge — it's one of the most specialized and scarce skills in semiconductor design.
Physical design constraints — what the layout must satisfy:
- Timing closure: every setup and hold path must have positive slack across all PVT corners after parasitic extraction
- DRC clean: every polygon satisfies 3000–5000 foundry geometric rules (minimum width, spacing, enclosure, density)
- LVS clean: extracted netlist matches the schematic — correct connectivity with no shorts or opens
- EM clean: current density in every wire and via stays below the electromigration limit (see the CFS electromigration keyword)
- IR-drop: voltage at every cell stays within 5% of nominal VDD under worst-case switching
- Antenna clean: metal-to-gate-area ratios during etch stay within the plasma-damage threshold
Layout at advanced nodes — what changes below 7 nm:
- Fin quantization (FinFET): transistor width is quantized to integer numbers of fins — you can't have 2.5 fins. Layout must use legal fin counts.
- Multi-patterning (SADP/SAQP/EUV): some metal layers are split across 2–4 masks. Layout must satisfy coloring constraints — adjacent wires on the same mask must be farther apart.
- Pin access: at sub-24 nm metal pitch, standard-cell pin access becomes extremely constrained. Only specific grid points on M1/M2 are legal connection points.
- Backside power delivery (2 nm): power rails move to the wafer backside, freeing front-side routing tracks but adding new layout rules for nano-TSVs.
<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif">
<rect x="0" y="0" width="760" height="470" fill="#0d1117"/>
<text x="380" y="28" fill="#e6edf3" font-size="21" font-weight="700" text-anchor="middle">Layout Design Technical Microarchitecture</text>
<text x="380" y="48" fill="#8b98a5" font-size="12" text-anchor="middle">Detailed Domain Pipeline, Architectural Blocks & Engineering Performance Optimization (ID 100191)</text>
<!-- INFRA MICROSERVICES DAG (4 Stage Workflow) -->
<g transform="translate(25, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">1. Client / Ingress</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">API Gateway</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">TLS Termination</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">Rate Limiting & Auth</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Zero Trust Boundary</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Load Balancer</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Round-Robin / LeastConn</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">Health Probes (gRPC/HTTP)</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">High Availability LB</text>
</g>
<g transform="translate(205, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">2. Microservices</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">Stateless Workers</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">Kubernetes Pod Clusters</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">HPA Auto-scaling</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Fault-Tolerant</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Service Mesh</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Istio / Envoy Proxy</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">mTLS Encryption</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Distributed Tracing</text>
</g>
<g transform="translate(385, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">3. Cache & Messaging</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">Distributed Cache</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">Redis Cluster / Memcached</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">Sub-millisecond Read</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Write-Through Policy</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Event Bus</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Kafka / RabbitMQ</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">Asynchronous Queues</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">At-least-once Delivery</text>
</g>
<g transform="translate(565, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">4. Persistence Tier</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">Primary DB</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">PostgreSQL / MySQL</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">ACID Transactions</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Multi-AZ Failover</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Read Replicas</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Horizontal Read Scale</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">Automated Backups</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">99.999% Uptime SLA</text>
</g>
<!-- Key insight bar -->
<rect x="25" y="415" width="710" height="22" rx="3" fill="#0b1220" stroke="#233043" stroke-width="0.8"/>
<text x="380" y="430" fill="#fbbf24" font-size="9" font-weight="700" text-anchor="middle">Key Insight: Optimal Layout Design architecture balances performance throughput, systemic latency, and physical constraints.</text>
<text x="380" y="460" fill="#6b7684" font-size="11" text-anchor="middle">Technical specification & verification reference for Layout Design (Row ID 100191)</text>
</svg>
Layout runtime and compute cost. Full-chip place-and-route of a modern GPU (50–100 million cell instances, 15 metal layers) runs for 2–7 days on a high-end server (128+ cores, 500+ GB RAM). Multiple iterations are needed as timing/DRC violations are found and fixed. Total PnR compute for a single tape-out can exceed 100,000 CPU-hours — making layout one of the most computationally expensive steps in chip design, rivaling only verification.
Layout and the CFS platform. The CFS Standard Cell keyword describes the building blocks that layout assembles; the DRC keyword covers the rules it must satisfy; the Clock Tree keyword covers CTS; the Interconnect Simulator at /interconnect models the wire RC delay that routing creates; and the Thermal Simulator at /thermal captures the hotspots that placement density causes.
Related Topics
Explore 500+ Semiconductor & AI Topics
From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.