Struct hazardflow_designs::gemmini::execute::systolic_array::pe::PeS
source · pub struct PeS {
pub reg1: S<ACC_BITS>,
pub reg2: S<ACC_BITS>,
pub propagate: Propagate,
}
Expand description
PE state registers.
Each register stores values based on the dataflow and propagate signal:
- WS dataflow, preload: weight value for the next operation.
- WS dataflow, compute: weight value for the current operation.
- OS dataflow, preload: bias value for the next operation.
- OS dataflow, compute: partial sum value for the current operation.
NOTE: In OS dataflow, it outputs the matmul result when a change in the propagate value is detected.
Fields§
§reg1: S<ACC_BITS>
Register 1.
reg2: S<ACC_BITS>
Register 2.
propagate: Propagate
The propagate value comes from the previous input.
NOTE: In the PE logic, it is only used to check whether the current propagate value differs from the previous one.
Implementations§
source§impl PeS
impl PeS
sourcepub fn new(reg1: S<ACC_BITS>, reg2: S<ACC_BITS>, propagate: Propagate) -> Self
pub fn new(reg1: S<ACC_BITS>, reg2: S<ACC_BITS>, propagate: Propagate) -> Self
Creates a new PE state.
Trait Implementations§
impl Copy for PeS
Auto Trait Implementations§
impl RefUnwindSafe for PeS
impl Send for PeS
impl Sync for PeS
impl Unpin for PeS
impl UnwindSafe for PeS
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