graph LR A[๐ Input x] --> B{{"Hash / Index / Decode"}} B --> C[("๐ Lookup Table\nROM / RAM / Cache")] C --> D["โ Output f(x)"] style A fill:#e1f5fe,stroke:#01579b,stroke-width:3px style B fill:#fff9c4,stroke:#f57f17,stroke-width:3px style C fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style D fill:#ffccbc,stroke:#bf360c,stroke-width:3px
graph TD subgraph "๐ Table Look-Up" B1[๐จ Precompute Once] --> B2[๐พ Store in Table] B2 --> B3["๐ O(1) Lookup"] B3 --> B4[โก Low Latency\n๐ Higher Memory] end style B1 fill:#c8e6c9,stroke:#1b5e20,stroke-width:3px style B4 fill:#b3e5fc,stroke:#01579b,stroke-width:3px
graph TD subgraph "๐ CORDIC Rotation Mode" direction LR A1[๐ Target Angle ฮธ] --> B1["Stage 0: rotate ยฑ45ยฐ"] B1 --> C1["Stage 1: rotate ยฑ26.565ยฐ"] C1 --> D1["Stage 2: rotate ยฑ14.036ยฐ"] D1 --> E1["... Stage N ..."] E1 --> F1["โ Final (x, y)"] end style A1 fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style F1 fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px
pie showData title CORDIC Hardware Cost Breakdown "Adders" : 40 "Shifters" : 30 "LUT (atan table)" : 20 "Control Logic" : 10
graph LR A[๐ข Input Byte\n0x53] --> B["๐ S-Box LUT\n256 entries"] B --> C[๐ Output Byte\n0xED] style A fill:#fff3e0,stroke:#e65100,stroke-width:3px style B fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px style C fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
graph LR A[๐ Text Stream] --> B{"๐ค Match?"} B -->|โ Mismatch| C["๐ Shift Table:\nskip = 7"] B -->|โ Match| D["๐ฏ Output Pattern"] C --> E["โฉ Fast Forward"] E --> B style C fill:#ffccbc,stroke:#bf360c,stroke-width:3px style D fill:#c8e6c9,stroke:#1b5e20,stroke-width:3px
graph LR subgraph "๐ฅ๏ธ Architecture Lookup Tables" TLB[๐ TLB\nVirtual โ Physical] BTB[๐ BTB\nBranch Target] BHT[๐ BHT\nBranch History] IDR[๐ Decode ROM\nOpcode โ Control] end CPU[๐ง CPU Core] --> TLB CPU --> BTB CPU --> BHT CPU --> IDR style TLB fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style BTB fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px style BHT fill:#fff3e0,stroke:#e65100,stroke-width:3px style IDR fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
mindmap root((๐ง EDA\nTable Look-Up)) Logic Synthesis ๐งฉ Boolean Matching ๐บ๏ธ Technology Mapping ๐ข k-LUT Mapping Formal Verification ๐ณ BDD Unique Table ๐ง Computed Table โ SAT Clause DB Static Timing โฑ๏ธ Liberty Delay LUTs ๐ Slew Tables ๐ก๏ธ POCV Derating Physical Design ๐ FLUTE Wirelength ๐ค๏ธ Pattern Routing ๐ Legalization Simulation โก Compiled Gate LUTs ๐ Power State Tables
graph LR A[๐ฒ 4-input Function\nTruth Table] --> B["๐ Signature / Hash"] B --> C["๐ NPN Class Table\n~222 classes for 4-input"] C --> D["๐ฏ Match Library Cell"] style A fill:#fff3e0,stroke:#e65100,stroke-width:3px style C fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px style D fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
graph TD A[๐ Input Transition] --> C["๐ 2D LUT\nDelay = f(slew, load)"] B[๐ฆ Output Load] --> C C --> D[โก Cell Delay] style C fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style D fill:#ffccbc,stroke:#bf360c,stroke-width:3px
graph LR A[๐ Net with 7 pins] --> B["๐ FLUTE Table\nPrecomputed RSMTs"] B --> C["๐ Wirelength\n+ Topology"] style A fill:#fff3e0,stroke:#e65100,stroke-width:3px style B fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px style C fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
graph TD subgraph "๐ณ BDD Tables" UT["๐ Unique Table\nHash: (var, low, high)"] CT[๐ Computed Table\nCache: ITE/Apply results] end A[๐ข Boolean Operation] --> UT UT -->|"โ Exists"| B["๐ฏ Return Existing Node"] UT -->|"โ New"| C["๐ Create Node"] C --> CT CT --> D["๐พ Memoize Result"] style UT fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style CT fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
graph LR A[๐ C++ Source] --> B{"๐จ Compiler\nconstexpr evaluation"} B --> C["๐ ROM Table\nin .rodata / .text"] C --> D["โก Runtime: O(1) Lookup\nZero initialization cost!"] style B fill:#fff9c4,stroke:#f57f17,stroke-width:3px style C fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style D fill:#b3e5fc,stroke:#01579b,stroke-width:3px
graph TD subgraph "๐ฆ CORDIC_Rotate_APFX Architecture" CR[CCordicRotateRom\nCMake-generated headers] CC[CCordicRotateConstexpr\n๐ฅ Pure C++14 constexpr] UM[Unfinished:\nCCordicRotateSmart\nNo ROM needed] end style CC fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
graph LR A[๐ฏ Need CORDIC] --> B{"๐ค Implementation Choice?"} B -->|๐ง HDL| C[Verilog/VHDL\nIndustry Standard] B -->|๐ป Software| D[Runtime Library\ngcem, std::sin] B -->|โก Embedded| E[Static const array\nPrecomputed literals] B -->|๐จ Modern C++| F["constexpr Template\nโ ๏ธ Niche!"] style C fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style F fill:#ffccbc,stroke:#bf360c,stroke-width:3px
graph TD A[๐ง Table Look-Up] --> B["โก O(1) Performance"] A --> C[๐พ Memory Tradeoff] A --> D[๐ง Ubiquitous in EDA] A --> E[๐ป Modernized by constexpr] B --> B1["CORDIC, AES S-Box,\nBranch Predictors"] C --> C1["FLUTE, BDD Tables,\nLiberty LUTs"] D --> D1["Synthesis, STA, P&R,\nVerification"] E --> E1["Compile-time ROM\nZero runtime init"] style A fill:#fff9c4,stroke:#f57f17,stroke-width:3px style E fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px