pub trait TargetBackend {
// Required methods
fn name(&self) -> &str;
fn target(&self) -> &FabricTarget;
fn emit_grid(&self, name: &str, g: &Grid) -> BackendArtifact;
fn emit_config_grid(
&self,
name: &str,
grids: &[&Grid],
cfg_width: u32,
) -> BackendArtifact;
// Provided method
fn certify(
&self,
g: &Grid,
source: &[FabricOp],
result: usize,
width: u32,
) -> Option<PlacementCertificate> { ... }
}Expand description
A named codegen backend for a described FabricTarget.
Required Methods§
fn name(&self) -> &str
fn target(&self) -> &FabricTarget
Sourcefn emit_grid(&self, name: &str, g: &Grid) -> BackendArtifact
fn emit_grid(&self, name: &str, g: &Grid) -> BackendArtifact
Emit a single placed grid to this backend’s artifact.
Sourcefn emit_config_grid(
&self,
name: &str,
grids: &[&Grid],
cfg_width: u32,
) -> BackendArtifact
fn emit_config_grid( &self, name: &str, grids: &[&Grid], cfg_width: u32, ) -> BackendArtifact
Emit an N-way reconfigurable array of placed grids to this backend’s artifact.
Provided Methods§
Sourcefn certify(
&self,
g: &Grid,
source: &[FabricOp],
result: usize,
width: u32,
) -> Option<PlacementCertificate>
fn certify( &self, g: &Grid, source: &[FabricOp], result: usize, width: u32, ) -> Option<PlacementCertificate>
Prove a placement computes source for every bounded input and return a re-checkable certificate (or
None, fail-closed). Backend-agnostic — proof-carrying place-and-route is not tied to the emission
format, so every backend inherits it. This is what lets an RDU backend add value before its SDK exists.