Expand description
Float-function → analog-netlist lowering — the analog lane’s Futamura moment.
The region unit is a FUNCTION: its float parameters are the plane’s DAC inputs, its Assume
statements the declared input ranges, its return the ADC tap. Extraction reuses the digital
fabric’s certified if-conversion front-end (decision_fabric_from_source, imported
read-only) on a contract-free twin of the source: the Assume range checks are the CONTROL
PLANE’s job (the digital host validates a word before driving the DAC), so they are stripped
from the analog dataflow — exactly the mixed-signal architecture, not an elision. The declared
ranges themselves are read from the ORIGINAL function body.
Every cell the fabric front-end emits is either mapped to an analog tile (FAddF/FSubF →
weighted Kirchhoff AnalogCell::Sum, FMulF → AnalogCell::GainConst when one side is a
programmed constant, else the four-quadrant AnalogCell::Mul; IntToF of a constant folds)
or refused with a NAMED AnaLowerError — fail-closed, never a silently-wrong circuit.
Functions§
- analog_
netlist_ from_ source - Lower
fn_nameinsrcto an analog tile netlist realizable ontarget.