graph LR A[RTL Synthesis] --> B[Physical Design] B --> C[STA] C --> D{Timing Met?} D -->|No| E[Optimize] E --> B D -->|Yes| F[Signoff] style A fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style B fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style C fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style D fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style E fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style F fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
graph LR subgraph "Launch Path" FF1[FF1] -->|T_ckโq| Comb[Logic] end subgraph "Capture Path" Comb -->|T_logic| FF2[FF2] end CLK[Clock] --> FF1 CLK --> FF2 style CLK fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style FF1 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style Comb fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style FF2 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px
flowchart TD subgraph "Setup Fixes" A[Gate Sizing] --> A1[Faster cells] B[Buffer Insertion] --> B1[Split long wires] C[VT Swap] --> C1[Lower Vt = faster] D[Logic Restructure] --> D1[Reduce logic depth] end subgraph "Hold Fixes" E[Delay Padding] --> E1[Add buffers] F[Down-size] --> F1[Slower cells] G[Detour] --> G1[Longer wires] end style A fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style B fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style C fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style D fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style E fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style F fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style G fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px
graph LR subgraph "Critical Path" P1[Path 1] -->|slack=+0.05ns| OK1[โ ] P2[Path 2] -->|slack=-0.12ns| FIX[โ Fix!] P3[Path 3] -->|slack=+0.30ns| OK2[โ ] end style FIX fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style P2 fill:#ffcdd2,stroke:#c62828,stroke-width:3px
graph TD subgraph "Useful Skew Example" CLK[Clock Source] CLK -->|T_ck1| FF1[FF1] CLK -->|T_ck2| FF2[FF2] FF1 -->|Data Path| FF2 end Note[Skew = T_ck2 - T_ck1] style CLK fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style FF1 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style FF2 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style Note fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px
flowchart LR subgraph "Before Padding" FF1a[FF1] -->|1.2ns| FF2a[FF2] Note1[Hold slack: -0.3ns โ] end subgraph "After Padding" FF1b[FF1] -->|+0.4ns| Buf[Buffer] -->|1.2ns| FF2b[FF2] Note2[Hold slack: +0.1ns โ ] end style FF1a fill:#ffcdd2,stroke:#c62828,stroke-width:3px style FF2a fill:#ffcdd2,stroke:#c62828,stroke-width:3px style Note1 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style FF1b fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style Buf fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style FF2b fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style Note2 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
flowchart TD Input[Netlist + Timing Constraints] Input --> Weight[Assign Net Weights] Weight --> Place[Analytical Placement] Place --> STA[STA] STA --> Check{Timing OK?} Check -->|No| Weight Check -->|Yes| Output[Legal Placement] style Input fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style Weight fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style Place fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style STA fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style Check fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style Output fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
graph LR subgraph "Timing ECO Flow" G[Gate-level Netlist] P[Physical Design] STA[STA Results] ECO[ECO Engine] G --> ECO P --> ECO STA --> ECO ECO -->|Minimal changes| New[Updated Layout] end style G fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style P fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style STA fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style ECO fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style New fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
flowchart TD subgraph "Delay Distribution" PDF[Probability Density] Mean[Mean Delay] Sigma[ฯ = Variation] end subgraph "SSTA Approaches" P1[Parametric: First-order] P2[Monte Carlo: Accurate but slow] P3[Extreme Value: GEV for max] end style PDF fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style Mean fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style Sigma fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style P1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style P2 fill:#fff3e0,stroke:#e65100,stroke-width:3px style P3 fill:#ffcdd2,stroke:#c62828,stroke-width:3px
flowchart TD Data[Design Data] --> Feat[Feature Extraction] Feat --> Model[ML Model] Model --> Pred[Delay Prediction] Pred --> Opt[Optimization] Opt -->|Feedback| Data style Model fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style Pred fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
graph TD Start[Physical Design] Start --> STA1[STA] STA1 --> Check1{Setup OK?} Check1 -->|No| US[Useful Skew Opt] US --> TS[Timing-Driven Placement] TS --> GS[Gate Sizing] GS --> Check2{Hold OK?} Check2 -->|No| DP[Delay Padding] DP --> STA2[STA Re-check] STA2 --> Final{All Met?} Final -->|No| ECO[ECO Flow] ECO --> STA2 Final -->|Yes| Signoff[Signoff] style Start fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style STA1 fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style Check1 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style US fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style TS fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style GS fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style Check2 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style DP fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style STA2 fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style Final fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style ECO fill:#fce4ec,stroke:#ad1457,color:#2e3440,stroke-width:3px style Signoff fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px