πŸ”§ Physical Design Blog

Part 1 of 10

Introduction to Physical Design

What is PD and why does it matter?

By Praveen Kumar Vagala

1,178 views

What is Physical Design?

Physical Design (PD) is the process of converting a gate-level netlist into a physical layout that can be manufactured as a chip.

FRONT-END BACK-END (Physical Design) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ RTL β”‚ β”‚ Netlist β†’ Floorplan β†’ Placement β”‚ β”‚ Design │──Synthesis──►│ β†’ CTS β†’ Routing β†’ Signoff β”‚ β”‚ (Verilog) β”‚ β”‚ β†’ GDSII β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Physical Design!

Why Physical Design Matters

PD Flow Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Physical Design Flow β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ 1. FLOORPLANNING β”‚ β”‚ └── Die size, IO placement, macro placement β”‚ β”‚ ↓ β”‚ β”‚ 2. POWER PLANNING β”‚ β”‚ └── Power rings, straps, rails β”‚ β”‚ ↓ β”‚ β”‚ 3. PLACEMENT β”‚ β”‚ └── Place standard cells β”‚ β”‚ ↓ β”‚ β”‚ 4. CLOCK TREE SYNTHESIS (CTS) β”‚ β”‚ └── Build balanced clock network β”‚ β”‚ ↓ β”‚ β”‚ 5. ROUTING β”‚ β”‚ └── Connect all signals β”‚ β”‚ ↓ β”‚ β”‚ 6. SIGNOFF β”‚ β”‚ └── Timing, DRC, LVS, IR drop β†’ GDSII β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Inputs to Physical Design

InputDescriptionFrom
Gate-level Netlist.v file with gates and connectionsSynthesis
SDC (Constraints)Timing constraints, clocksDesign team
LEF/Tech LEFCell abstracts, metal layersFoundry/Library
Liberty (.lib)Timing, power info for cellsLibrary vendor
DEF (optional)Pre-existing placement infoPrevious run

Outputs from Physical Design

OutputDescriptionGoes To
GDSIIFinal layout for manufacturingFoundry
DEFDesign Exchange FormatVerification
Netlist (post-route)Final netlist with buffersLVS, STA
SPEF/SDFParasitics, delaysTiming signoff

Key File Formats

LEF (Library Exchange Format)

MACRO INV_X1
  CLASS CORE ;
  SIZE 0.4 BY 1.2 ;
  PIN A
    DIRECTION INPUT ;
    PORT
      LAYER M1 ;
        RECT 0.0 0.4 0.1 0.8 ;
    END
  END A
  PIN Y
    DIRECTION OUTPUT ;
    PORT
      LAYER M1 ;
        RECT 0.3 0.4 0.4 0.8 ;
    END
  END Y
END INV_X1

DEF (Design Exchange Format)

DESIGN my_chip ;
UNITS DISTANCE MICRONS 1000 ;
DIEAREA ( 0 0 ) ( 1000000 1000000 ) ;

COMPONENTS 100 ;
  - U1 INV_X1 + PLACED ( 10000 20000 ) N ;
  - U2 AND2_X1 + PLACED ( 10400 20000 ) N ;
END COMPONENTS

NETS 50 ;
  - net1 ( U1 Y ) ( U2 A ) ;
END NETS

Standard Cell Basics

Standard cells are pre-designed logic gates with fixed height.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ VDD Rail β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ INV β”‚ β”‚ INV β”‚ β”‚ AND β”‚ β”‚ OR β”‚ β”‚ BUF β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ ← Fixed height β”‚ β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜ β”‚ (cell row) β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ VSS Rail β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ←───────────── Variable widths ───────────────────→

Metal Layers

Modern chips have 10+ metal layers for routing:

Top View: Side View: M5 ════════ ─────── M5 (thick, power) ─────── M4 M4 β•‘ β•‘ β•‘ β•‘ ─────── M3 ─────── M2 M3 ════════ ─────── M1 ─────── Poly M2 β•‘ β•‘ β•‘ β•‘ ═══════ Substrate M1 ════════ Horizontal: M1, M3, M5 (odd layers) Vertical: M2, M4, M6 (even layers)

PD Tools

VendorToolPurpose
CadenceInnovusPlace & Route
SynopsysICC2Place & Route
SynopsysPrimeTimeTiming signoff
CadenceTempusTiming signoff
SynopsysStarRCParasitic extraction
CadencePegasus/PVSDRC/LVS

Summary

ConceptKey Point
Physical DesignNetlist β†’ GDSII
Main StepsFloorplan β†’ Place β†’ CTS β†’ Route
Key InputNetlist, SDC, LEF, Liberty
Key OutputGDSII (for fabrication)