pub struct CoreClock {
pub mult: u32,
pub div: u32,
pub out: u32,
}Expand description
A board image’s core clock: the 100 MHz oscillator through a PLLE2, its VCO at 100 · mult / div MHz and the core
at the VCO over out.
Fields§
§mult: u32§div: u32§out: u32Implementations§
Source§impl CoreClock
impl CoreClock
Sourcepub const UNCERTAINTY_NS: f64 = 0.5
pub const UNCERTAINTY_NS: f64 = 0.5
The core clock’s own allowance a route does not model: the PLL’s output jitter and the clock tree’s skew.
pub fn vco_mhz(self) -> f64
pub fn mhz(self) -> f64
Sourcepub fn legal(self) -> bool
pub fn legal(self) -> bool
Whether a PLLE2 of a speed grade -1 Artix-7 takes these settings (DS181): a multiplier of 2–64, an input divider of 1–56 and an output divider of 1–128, the phase detector at 19–450 MHz and the VCO at 800–1600 MHz.
Sourcepub fn fastest_within(period_ns: f64) -> Option<CoreClock>
pub fn fastest_within(period_ns: f64) -> Option<CoreClock>
The fastest legal core clock whose period is at least period_ns; of clocks as fast, the one with the smallest
input divider, then the slowest VCO.
Trait Implementations§
impl Copy for CoreClock
impl Eq for CoreClock
impl StructuralPartialEq for CoreClock
Auto Trait Implementations§
impl Freeze for CoreClock
impl RefUnwindSafe for CoreClock
impl Send for CoreClock
impl Sync for CoreClock
impl Unpin for CoreClock
impl UnsafeUnpin for CoreClock
impl UnwindSafe for CoreClock
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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.