pub struct MemBind {
pub prefix: String,
pub kind: MemKind,
pub contract: Vec<String>,
pub words_per_port: u32,
pub dims: Vec<u32>,
}Expand description
Contract ports carried through a memory interface instead of scalar ports. The memory’s words
are the listed contract ports in order, each split into words_per_port words (least
significant first), so one wide port can become an array and several ports one array.
Fields§
§prefix: String§kind: MemKind§contract: Vec<String>§words_per_port: u32§dims: Vec<u32>The memory’s shape when its interface takes one address per dimension, as Calyx gives a
Dahlia decl x: bit<N>[R][C] (addr0 the row, addr1 the column): the words row-major.
Empty: one flat address.
Implementations§
Source§impl MemBind
impl MemBind
Sourcepub fn seq_mem(contract: &str, prefix: &str, words: u32) -> MemBind
pub fn seq_mem(contract: &str, prefix: &str, words: u32) -> MemBind
A Calyx seq_mem holding contract port contract as words words.
Sourcepub fn seq_mem_rows(
contract: &[String],
prefix: &str,
words_per_port: u32,
) -> MemBind
pub fn seq_mem_rows( contract: &[String], prefix: &str, words_per_port: u32, ) -> MemBind
A Calyx seq_mem whose words are the contract ports contract in order, each as
words_per_port words.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for MemBind
impl<'de> Deserialize<'de> for MemBind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for MemBind
Auto Trait Implementations§
impl Freeze for MemBind
impl RefUnwindSafe for MemBind
impl Send for MemBind
impl Sync for MemBind
impl Unpin for MemBind
impl UnsafeUnpin for MemBind
impl UnwindSafe for MemBind
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.