pub struct ForceTable { /* private fields */ }Expand description
One engine’s forced and procedurally assigned cells.
Implementations§
Source§impl ForceTable
impl ForceTable
Sourcepub fn force(
&mut self,
cell: StateCellId,
value: FourStateValue,
mask: Vec<u64>,
restores: bool,
site: Site,
current: FourStateValue,
procedural: bool,
) -> FourStateValue
pub fn force( &mut self, cell: StateCellId, value: FourStateValue, mask: Vec<u64>, restores: bool, site: Site, current: FourStateValue, procedural: bool, ) -> FourStateValue
Forces (procedural: procedurally assigns) the mask bits of cell
to those of value (both full-width), on behalf of the statement at
site; current is the cell’s value now. Returns the value to write,
with Self::set_bypass on.
Sourcepub fn force_row(
&mut self,
cell: StateCellId,
at: u32,
value: FourStateValue,
mask: Vec<u64>,
restores: bool,
site: Site,
current: FourStateValue,
procedural: bool,
) -> FourStateValue
pub fn force_row( &mut self, cell: StateCellId, at: u32, value: FourStateValue, mask: Vec<u64>, restores: bool, site: Site, current: FourStateValue, procedural: bool, ) -> FourStateValue
Self::force for the memory row of cell at word offset at.
Sourcepub fn release(
&mut self,
cell: StateCellId,
mask: &[u64],
procedural: bool,
) -> Option<FourStateValue>
pub fn release( &mut self, cell: StateCellId, mask: &[u64], procedural: bool, ) -> Option<FourStateValue>
Releases (procedural: deassigns) the mask bits of cell. Returns
the value the cell now reads as when that changes it: a released net
(or continuously driven variable) goes back to its driven value, and
a variable whose force ends while an assign still holds takes the
assigned value. None otherwise: a released or deassigned variable
keeps its value, and a cell with nothing to release is untouched.
Sourcepub fn release_row(
&mut self,
cell: StateCellId,
at: u32,
mask: &[u64],
procedural: bool,
) -> Option<FourStateValue>
pub fn release_row( &mut self, cell: StateCellId, at: u32, mask: &[u64], procedural: bool, ) -> Option<FourStateValue>
Self::release for the memory row of cell at word offset at.
Sourcepub fn site_active(&self, site: Site) -> bool
pub fn site_active(&self, site: Site) -> bool
Whether the force statement at site is still in effect (its
driver re-forces the target when an operand changes).
Sourcepub fn set_bypass(&mut self, on: bool)
pub fn set_bypass(&mut self, on: bool)
Turns forcing off (a force writing its own cell) or back on.