graph TD subgraph Cyclic_Concept[The Virtual Ring Layout] I0((In 0)) --> I1((In 1)) I1 --> I2((In 2)) I2 -->|...| I99((In 99)) I99 --> I0 end style Cyclic_Concept fill:#ECEFF4,stroke:#4C566A,stroke-width:2px style I0 fill:#5E81AC,stroke:#81A1C1,color:#fff style I1 fill:#5E81AC,stroke:#81A1C1,color:#fff style I2 fill:#5E81AC,stroke:#81A1C1,color:#fff style I99 fill:#5E81AC,stroke:#81A1C1,color:#fff
graph LR subgraph Core[13 x 13 Core] C1((Col 0)) -->|d=0| R0[Row 0] C1 -->|d=1| R1[Row 1] C1 -->|d=3| R3[Row 3] C1 -->|d=9| R9[Row 9] end style Core fill:#ECEFF4,stroke:#4C566A style C1 fill:#5E81AC,stroke:#81A1C1,color:#fff style R0 fill:#A3BE8C,stroke:#81A1C1 style R1 fill:#A3BE8C,stroke:#81A1C1 style R3 fill:#A3BE8C,stroke:#81A1C1 style R9 fill:#A3BE8C,stroke:#81A1C1
graph TD subgraph Legend["Legend"] D0["โ d=0"] --- D1["โ d=1"] D1 --- D3["โ d=3"] D3 --- D9["โ d=9"] end style D0 fill:#BF616A,stroke:#BF616A style D1 fill:#EBCB8B,stroke:#EBCB8B style D3 fill:#A3BE8C,stroke:#A3BE8C style D9 fill:#5E81AC,stroke:#5E81AC style Legend fill:#ECEFF4,stroke:#4C566A
flowchart TD subgraph DesignFlow["Design Flow"] A["Singer Difference Set\n๐ = {0, 1, 3, 9}"] --> B["Cyclic Shift Rule\nRow = (col + d) mod 13"] B --> C["Sparse 13ร13 Matrix\n52 vias (69% sparse)"] C --> D["Visualize Grid\nโฌ Grid + โซ Vias"] C --> E["BFS Path Discovery\nDesign-time routing"] E --> F["Hardcoded LUT\nZero-latency silicon"] end style DesignFlow fill:#ECEFF4,stroke:#4C566A,stroke-width:2px style A fill:#5E81AC,stroke:#81A1C1,color:#fff style B fill:#81A1C1,stroke:#88C0D0,color:#fff style C fill:#A3BE8C,stroke:#81A1C1 style D fill:#EBCB8B,stroke:#81A1C1 style E fill:#D08770,stroke:#81A1C1 style F fill:#BF616A,stroke:#81A1C1,color:#fff
graph TD subgraph Design_41x12["41ร12 Design Flow"] DS["Diff Set\n{0,1,4,6}"] --> CS["Cyclic Shift\nRow=(i+d) mod 12"] CS --> GM["41ร12 Grid\n164 vias"] GM --> VF["Verify\nUniform Load"] end style Design_41x12 fill:#ECEFF4,stroke:#4C566A style DS fill:#5E81AC,stroke:#81A1C1,color:#fff style CS fill:#81A1C1,stroke:#88C0D0,color:#fff style GM fill:#A3BE8C,stroke:#81A1C1 style VF fill:#EBCB8B,stroke:#81A1C1
flowchart LR S["Input 40\nNeeds Output 16"] --> Q{"Direct via?\ngrid[40][16] == 1?"} Q -->|"Yes โ "| D["Direct connection\nSingle hop"] Q -->|"No โ"| M["Find intermediate\noutput reachable from In 40"] M --> L["grid[40][intermediate] == 1\nAND\ngrid[loopback][16] == 1"] L --> N(( )) style S fill:#5E81AC,stroke:#81A1C1,color:#fff style Q fill:#EBCB8B,stroke:#81A1C1 style D fill:#A3BE8C,stroke:#81A1C1 style M fill:#D08770,stroke:#81A1C1
flowchart LR N(( )) --> H1["Hop 1: Input 40 โ Output k"] H1 --> LB["Loopback: Output k\nโ Intermediate Input"] LB --> H2["Hop 2: Intermediate\nInput โ Output 16"] H2 --> R["Route found! โ \n2-hop path"] style R fill:#BF616A,stroke:#81A1C1,color:#fff