pub struct RduBackend {
pub facts: RduChipFacts,
pub target: FabricTarget,
}Expand description
The SambaNova RDU slot — the placed-grid lane, for either RDU generation (RduChip). Its target is
the chip’s FabricTarget derived from RduChipFacts. It cannot emit RDA/SambaFlow config today —
that needs the vendor SDK — so its emission is honestly BackendArtifact::SdkGated: it hands back the
logos.spatial.neutral v2 envelope under "lane": "grid", the same envelope the spatial lane emits,
with the ready-to-bridge deterministic grid dump as its body. Its proof-carrying
certify works NOW (no SDK), so an RDU-bound placement already ships with a
machine-checkable proof it ≡ the source. When the SDK lands, only the envelope → RDA config translation
is added.
Fields§
§facts: RduChipFacts§target: FabricTargetImplementations§
Source§impl RduBackend
impl RduBackend
pub const GATED_REASON: &'static str = GATED_REASON
Sourcepub fn for_chip(chip: RduChip) -> Self
pub fn for_chip(chip: RduChip) -> Self
The lane for one RDU generation, its target derived from that chip’s facts.
Sourcepub fn with_facts(facts: RduChipFacts) -> Self
pub fn with_facts(facts: RduChipFacts) -> Self
The lane for facts with numbers dropped in (an SDK reading, a probe).
Trait Implementations§
Source§impl Default for RduBackend
impl Default for RduBackend
Source§impl TargetBackend for RduBackend
impl TargetBackend for RduBackend
fn name(&self) -> &str
fn target(&self) -> &FabricTarget
Source§fn emit_grid(&self, name: &str, g: &Grid) -> BackendArtifact
fn emit_grid(&self, name: &str, g: &Grid) -> BackendArtifact
Source§fn 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
Source§fn 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>
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.Auto Trait Implementations§
impl Freeze for RduBackend
impl RefUnwindSafe for RduBackend
impl Send for RduBackend
impl Sync for RduBackend
impl Unpin for RduBackend
impl UnsafeUnpin for RduBackend
impl UnwindSafe for RduBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.