graph LR C["Celsius\nC"] --> M["CSD x115\n3 adders"] M --> A["+2080\n1 adder"] A --> S[">>> 6\nfree"] S --> F["Fahrenheit\nF"] style C fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style M fill:#fff3e0,stroke:#e65100,stroke-width:3px style A fill:#fff9c4,stroke:#f9a825,stroke-width:3px style S fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px style F fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px
graph LR S["Spec\nrange + display unit"] --> E["Error budget\nmax error"] E --> R{"Exact decimal\nscaling?"} R -->|yes| X["1800C + 32000\n3 NNZ"] R -->|no| F["Binary fixed point\nDSE over NNZ and k"] X --> H["Max-error sweep\n+ emit Verilog"] F --> H H --> T["iverilog + yosys"] style S fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style E fill:#fff9c4,stroke:#f9a825,stroke-width:3px style X fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px style F fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px style H fill:#fff3e0,stroke:#e65100,stroke-width:3px style T fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px