Expand description
The target-backend seam.
Everything up to a placed Grid is target-agnostic (English → LoopCell IR → certified placement). Only
the final Grid → bytes step is backend-specific. This module names that seam as a TargetBackend trait
so a new hardware backend (e.g. the SambaNova RDU) is a tested extension point instead of a loose
convention. Emission is target-specific; the proof-carrying certify is
backend-agnostic (default impl), so even a backend that can’t emit its vendor config yet still proves a
placement ≡ its source.
Structs§
- RduBackend
- The SambaNova RDU slot — the placed-grid lane, for either RDU generation (
RduChip). Its target is the chip’sFabricTargetderived fromRduChipFacts. It cannot emit RDA/SambaFlow config today — that needs the vendor SDK — so its emission is honestlyBackendArtifact::SdkGated: it hands back thelogos.spatial.neutralv2 envelope under"lane": "grid", the same envelope the spatial lane emits, with the ready-to-bridge deterministic grid dump as its body. Its proof-carryingcertifyworks NOW (no SDK), so an RDU-bound placement already ships with a machine-checkable proof it ≡ the source. When the SDK lands, only theenvelope → RDA configtranslation is added. - SkyVerilog
Backend - The default backend: our Sky130/FPGA path. A faithful wrapper of the existing free emitters — byte-identical
to calling
emit_grid_verilog/emit_config_grid_verilogdirectly.
Enums§
- Backend
Artifact - What a backend produces from a placed grid.
Traits§
- Target
Backend - A named codegen backend for a described
FabricTarget.
Functions§
- serialize_
grid - A deterministic, parseable neutral dump of a placed grid — the artifact the vendor-config bridge consumes.
Rows/cols are walked in order and every field is a
Copyenum’sDebug, so the output is stable (no hashmap iteration). It is NOT any vendor’s format; it is the ready-to-bridge placement.