7.8
CNN Emulation Architecture
According to the original model of CNN, it consists of two parts, one is constant and the
other part is variable over the time. A Convolution is realized between the control
templates and the input. The bias value however is always constant during the CNN
calculations
I
u
T
ij
B
*
. Therefore, the system doesn’t need to recalculate it during the
CNN solving process. The only part that must be recalculated in the DDA iterations is the
term
ij
A
y
T
*
. The value of the “Template Convolution” added to the bias is constant for
each pixel and it is therefore not recalculated again during the CNN’s iterations; see Refs
[18, 123].
78
Figure
7-5: Scheme of the DDA based model for CNN
For storing the matrix template values and the convolution we have assigned a 14 bit
signed register for each cell, 1bit sign, 3bit integer and 10bit precision. Similar to the
standard analog CNN chip, we have limited the range of values to be between -5 and +5.
We need an 18bit register to keep a convolution result. By 1bit sign, 7bit integer and 10bit
precision it can store the values from -127 up to +127 with good accuracy. The maximum
value for the convolution is in the range of (-125, +125]. If we define a Bias value in the
range of (-3, +3], we can still save the value in same range register (18bit).
Figure
7-6: Convolution diagram for the control template
Figure 7-6, shows the Control Template and convolution diagram, which is the same also
for the Feedback template convolution with the output signals. Signals are, after the
saturation function, in the range of [-1, +1]; thus we must extend it from 12bit to 14bit
range before getting convolution on feedback template.
|