graph TD subgraph "Systematic" S1["Layout-dependent"] S2["OPC limitations"] S3["CMP topography"] end subgraph "Random" R1["Particle defects"] R2["Opens / Shorts"] R3["Threshold fluctuations"] end subgraph "Parametric" P1["L_eff variations"] P2["V_th mismatch"] P3["Oxide thickness"] end style S1 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style S2 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style S3 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style R1 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style R2 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style R3 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style P1 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style P2 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style P3 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px
graph TD subgraph "Challenges" C1["Process Variations"] C2["Lithography Limits"] C3["Design Rule Complexity"] end subgraph "DFM Approaches" A1["Litho-Friendly Design"] A2["CMP-Aware Fill"] A3["OPC / PSM"] A4["Statistical Timing"] A5["Via Optimization"] end C1 --> A4 C2 --> A1 C2 --> A3 C3 --> A2 C3 --> A5 style C1 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style C2 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style C3 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style A1 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style A2 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style A3 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style A4 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style A5 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
graph LR subgraph "Convex Optimization" E["Ellipsoid Method"] C["Cutting-plane"] end subgraph "Graph Algorithms" N["Network Flow"] S["Shortest Path"] M["Mean Cycle"] end subgraph "Complexity" P["P vs NP"] A["Approximation"] end E --> C C --> N N --> S S --> M style E fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style C fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style N fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style S fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style M fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style P fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style A fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px
graph LR A["Initial box"] --> B["Query oracle"] B --> C{"Feasible?"} C -->|No| D["Add cutting plane"] D --> E["Shrink feasible set"] E --> B C -->|Yes| F["Query objective"] F --> G{"Optimal?"} G -->|No| H["Add optimality cut"] H --> E G -->|Yes| I["โ Solution found"] style A fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style B fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style C fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style D fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style E fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style F fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style G fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style H fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style I fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
graph TD subgraph "Phase Conflict Graph" direction LR N1((F1)) --- N2((F2)) N2 --- N3((F3)) N3 --- N4((F4)) N4 --- N1 end subgraph "Assignment (2-color)" direction LR C1[0ยฐ] --- C2[180ยฐ] C2 --- C3[0ยฐ] C3 --- C4[180ยฐ] C4 --- C1 end style N1 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style N2 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style N3 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style N4 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style C1 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style C2 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style C3 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style C4 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px
graph TD subgraph "Foundations" F1["Lec 0: Overview"] F2["Lec 1: DFM Intro"] F3["Lec 2: Software Dev"] F4["Lec 3: Statistics"] F5["Lec 4: Convex Opt"] end subgraph "Core Algorithms" C1["Lec 5: Ellipsoid"] C2["Lec 6: Cutting-plane"] C3["Lec 7: Clock Skew"] C4["Lec 8: Network Flow"] C5["Lec 9: Complexity"] end subgraph "Advanced Topics" A1["Lec 10: PSM"] A2["Lec 11: Layout Decomp"] A3["Lec 12: 1D Layout"] end style F1 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style F2 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style F3 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style F4 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style F5 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style C1 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style C2 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style C3 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style C4 fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style C5 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style A1 fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style A2 fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style A3 fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px