Skip to main content

TargetBackend

Trait TargetBackend 

Source
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§

Source

fn name(&self) -> &str

Source

fn target(&self) -> &FabricTarget

Source

fn emit_grid(&self, name: &str, g: &Grid) -> BackendArtifact

Emit a single placed grid to this backend’s artifact.

Source

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§

Source

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.

Implementors§