pub fn sram(
    _dma: (Vr<ScratchpadMemReadReq<MVIN_SCALE_BITS>>, Vr<ScratchpadMemWriteReq<32, ACC_SCALE_BITS>>),
    _exe: (([Vr<ScratchpadReadReq, { Dep::Demanding }>; 4], [Valid<ScratchpadWriteReq>; 4]), ([Vr<AccumulatorReadReq, { Dep::Demanding }>; 2], [Valid<AccumulatorWriteReq>; 2]))
) -> ((Valid<ScratchpadMemReadResp>, Valid<ScratchpadMemWriteResp>), (([Vr<ScratchpadReadResp>; 4], ()), ([Vr<AccumulatorReadResp>; 2], ())))
Expand description

SRAM in the Gemmini

Gemmini stores inputs and outputs for the systolic array in a set of private SRAMs, which we call the “scratchpad” and the “accumulator”. Typically, inputs are stored in the scratchpad, while partial sums and final results are stored in the the accumulator.

https://github.com/ucb-bar/gemmini/blob/be2e9f26181658895ebc7ca7f7d6be6210f5cdef/src/main/scala/gemmini/Scratchpad.scala#L172