pub enum CaravelProjectUnplaceable {
NoVehicle {
pdk: &'static str,
},
VehicleUntimed {
pdk: &'static str,
},
MacroOutsideUserArea {
corner_um: (u32, u32),
user_area_um: (f64, f64),
},
MacroSlowerThanChip {
macro_period_ns: f64,
chip_period_ns: f64,
},
CoreClockPastSignoff {
period_ns: f64,
signoff_ns: f64,
},
}Expand description
Why a project cannot be hardened as described.
Variants§
NoVehicle
The process has no shuttle vehicle characterized here.
VehicleUntimed
The vehicle’s harness timing — its input delays and the clock the chip is signed off with — has not been read, so nothing on it can be timed.
MacroOutsideUserArea
The macro, at its origin, does not lie inside the user area.
MacroSlowerThanChip
The macro is signed off at a period longer than the clock the chip runs at, so the chip’s clock is a frequency the macro does not guarantee.
CoreClockPastSignoff
The project runs on the core clock faster than the chip signs that clock off at, so the management SoC and the bus on the same clock would run at a frequency the chip does not guarantee.
Trait Implementations§
Source§impl Clone for CaravelProjectUnplaceable
impl Clone for CaravelProjectUnplaceable
Source§fn clone(&self) -> CaravelProjectUnplaceable
fn clone(&self) -> CaravelProjectUnplaceable
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CaravelProjectUnplaceable
impl Debug for CaravelProjectUnplaceable
Source§impl Display for CaravelProjectUnplaceable
impl Display for CaravelProjectUnplaceable
impl StructuralPartialEq for CaravelProjectUnplaceable
Auto Trait Implementations§
impl Freeze for CaravelProjectUnplaceable
impl RefUnwindSafe for CaravelProjectUnplaceable
impl Send for CaravelProjectUnplaceable
impl Sync for CaravelProjectUnplaceable
impl Unpin for CaravelProjectUnplaceable
impl UnsafeUnpin for CaravelProjectUnplaceable
impl UnwindSafe for CaravelProjectUnplaceable
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.