Deploying convolution-based algorithms into SRAM computing-in-memory
(CIM) systems faces various challenges, such as operator incompatibility
and intrinsic non-ideal error. This paper proposes a compilation
framework to address this issue. Efficient weight mapping strategies are
introduced to improve the utilization of SRAM-CIM macro. The intrinsic
non-ideal errors of SRAM-CIM macro are also taken into consideration,
and two efficient error correction schemes are proposed, which include
calibration of computation voltage linear error (CCVLE) and the
mitigation of analog-to-digital quantization error (MAQE). In addition,
bit-width flexibility and signed-unsigned reconfigurability are also
supported to facilitate the deployment of various convolution-based
algorithms. ResNet18, finite impulse response (FIR) filtering, and
Gaussian image filtering are deployed into a multi-macro SRAM-CIM
system. These algorithms serve as deployment representatives of
convolutional neural network (CNN), digital signal processing (DSP), and
digital image processing (DIP), respectively. The results show that the
introduced weight mapping strategies improve the macro utilization by
63.29% and 21.10% for two types of frequently used convolution layers
compared to the traditional strategy. Moreover, the proposed error
correction schemes achieve similar algorithm accuracy to the
floating-point results, and the deployment result of ResNet18 achieves
66.3%~70.1% top-1 classification accuracy evaluated on
the ImageNet dataset with different throughput tradeoffs.