pub struct Ram {
pub name: String,
pub kind: String,
pub ports: Vec<(u64, u64)>,
pub byte: Option<u64>,
pub old_data: bool,
}Expand description
A memory as synthesis left it: its path, the block it asked for (AUTO, M20K block, MLAB), each port’s depth and
width, its byte enables’ byte when it has them, and whether a read on one port during a write on the other must give
the old data.
Fields§
§name: String§kind: String§ports: Vec<(u64, u64)>§byte: Option<u64>§old_data: boolImplementations§
Source§impl Ram
impl Ram
Sourcepub fn m20k(&self) -> u64
pub fn m20k(&self) -> u64
The M20K blocks the fitter gives the memory: none for one asked into MLABs, none for an AUTO one the fitter
turns into MLABs, and otherwise its costlier port’s blocks (m20k_blocks, byte-enabled lanes holding a byte
each). The fitter turns an AUTO memory into MLABs when it is small (every port 32 words of at most 42 bits, 64
of at most 10, or 128 of at most 5, as hybrid7b’s fit did) and needs no old data across its ports, which an MLAB
cannot give.
Trait Implementations§
impl Eq for Ram
impl StructuralPartialEq for Ram
Auto Trait Implementations§
impl Freeze for Ram
impl RefUnwindSafe for Ram
impl Send for Ram
impl Sync for Ram
impl Unpin for Ram
impl UnsafeUnpin for Ram
impl UnwindSafe for Ram
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.