pub struct ClockingImage {
pub instance: InstanceId,
pub terms: Vec<(u32, Option<EdgeKind>)>,
pub gates: Vec<(u32, u32)>,
pub samples: Vec<(u32, u32, u32)>,
pub skews: Vec<u64>,
pub parts: Vec<Vec<(u32, u32, u32, u32)>>,
pub counter: u32,
pub term_owners: Vec<InstanceId>,
}Expand description
One clocking block’s sampler (14.13): woken by the clocking event, it copies
each input clock variable’s signal into its sample cell, then bumps the
event counter that @(cb) and ##N wait on.
Fields§
§instance: InstanceId§terms: Vec<(u32, Option<EdgeKind>)>The clocking event’s terms: (signal slot, edge); None is any change.
gates: Vec<(u32, u32)>iff guards (9.4.2.3, 14.12) as (term index, gate function symbol)
(u64 gate(handle), 1 = condition known true): a term that fired counts
only while all of its gates hold, and the event is a clocking event if any
fired term counts. Empty = ungated.
samples: Vec<(u32, u32, u32)>(signal slot, sample slot, width) per input clock variable.
skews: Vec<u64>The input skew of each of samples (14.4), in scheduler ticks:
SKEW_STEP is #1step (the Preponed value), 0 an explicit #0
(sampled in the Observed region), N the value at the end of the time
step N ticks before the event.
parts: Vec<Vec<(u32, u32, u32, u32)>>Per sample, the parts of a derived input clock variable source (14.5:
input x = a[3:0], input y = {a, b[2:1]}): (signal slot, signal width, lsb, len), most significant first. An empty list (or a
missing entry) is the plain signal of samples.
counter: u32The block’s event counter slot.
term_owners: Vec<InstanceId>The instance that owns each of terms’ signal slots, parallel to it.
A block clocked by an input port’s wire is woken by the PARENT’s signal
the port connects to (14.13: the clocking event and the parent’s
@(posedge clk) are one event), not by the port’s continuous-assignment
copy, which updates a delta later.
Trait Implementations§
Source§impl Clone for ClockingImage
impl Clone for ClockingImage
Source§impl Debug for ClockingImage
impl Debug for ClockingImage
impl Eq for ClockingImage
Source§impl PartialEq for ClockingImage
impl PartialEq for ClockingImage
impl StructuralPartialEq for ClockingImage
Auto Trait Implementations§
impl Freeze for ClockingImage
impl RefUnwindSafe for ClockingImage
impl Send for ClockingImage
impl Sync for ClockingImage
impl Unpin for ClockingImage
impl UnsafeUnpin for ClockingImage
impl UnwindSafe for ClockingImage
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.