graph LR subgraph Ln["Weight n"] A["11000"] --- B["10100"] end subgraph Lnp1["Weight n+1"] C["11100"] --- D["11010"] end A --- C B --- D style A fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style C fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
flowchart LR A["K-way Partition"] --> B["Pair (i,j)"] B --> C["Select modules\nin parts iβͺj"] C --> D["MidLvlPartMgr\n(full netlist + mask)"] D --> E["Update assignments"] E --> F{"More pairs?"} F -->|Yes| B F -->|No| G["Done"] style A fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style D fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style G fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px
flowchart LR A["Input Netlist"] --> B{"β€ exhaustive_limit?"} B -->|Yes| C["MidLvlKWayPartMgr\n(pairwise exhaustive)"] B -->|No| D["FM K-Way Legalize"] D --> E{"β₯ limitsize?"} E -->|Yes| F["Contract Graph"] F --> G["Recurse"] G --> H["Project Up"] H --> I["FM K-Way Optimize"] E -->|No| I I --> J["Output Partition"] style A fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style C fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style J fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px