# 2D Winograd CNN Chip for COVID-19 and Pneumonia Detection
## 3 Results
### Waveform  
The input of the circuit we designed is a grayscale image. As mentioned earlier, this circuit needs to complete the operation process of three layers, namely Convolutional, Max-pooling, and Flatten, as shown in Figure 2. As can be seen from Figure 6, this circuit is a positive edge trigger circuit, and the reset signal will be set at the beginning of this circuit to ensure that each signal will be reset to avoid the initial value of the circuit not being set at the beginning, resulting in subsequent abnormal results. After three clock signals, initialization is complete. When waiting for the convolution circuit to perform operations, that is, when the testbench sends a signal in, if the ready signal of the initial circuit is high, it means that the grayscale image data and the kernel data of each layer are ready.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Item** & **Basic CNN** & **Winograd CNN** & **Winograd Pre-Sim** & **Winograd Post-Sim** \\ \hline Technology & TSMC 1P6M 0.18 \(\upmu\)m & TSMC 1P6M 0.18 \(\upmu\)m & TSMC 1P6M 0.18 \(\upmu\)m & TSMC 1P6M 0.18 \(\upmu\)m \\ Chip Size & 1.43 mm \(\times\) 1.43 mm & 1.86 mm \(\times\) 1.86 mm & 1.91 mm \(\times\) 1.91 mm & 1.91 mm \(\times\) 1.91 mm \\ Core Size & 0.82 mm \(\times\) 0.82 mm & 1.21 mm \(\times\) 1.21 mm & 1.3 mm \(\times\) 1.3 mm & 1.3 mm \(\times\) 1.3 mm \\ Package & CQFP144 & CQFP144 & CQFP144 & CQFP144 \\ Gate Count & 17,502 & 90,236 & 83,787 & 84,426 \\ Max Frequency & 100 MHz & 100 MHz & 100 MHz & 100 MHz \\ Fault Coverage & 99.54\% & 99.90\% & 99.90\% & 99.90\% \\ Power Supply & 1.62 V & 1.62 V & 1.62 V & 1.62 V \\ Power Consumption & 72.48 mW@100 MHz & 211.12 mW@100 MHz & 170.9 mW@100 MHz & 221.8 mW@100 MHz \\ Calculating Time & 2.937 ms & 1.734 ms & None & None \\ \hline \hline \end{tabular}
\end{table}
Table 1: Chip basic specifications technical.  
Figure 5: By TSMC 0.18 \(\upmu\)m process, the physical circuit was produced with 144 pins.  
After the initialization is completed, the convolution circuit will set its busy signal to a high potential. At this time, if the testbench detects that the busy signal is high, it will set the ready signal to a low potential, indicating that the testbench is waiting for convolution. The circuit handles the three layers of action required. In this circuit, busy main judges this circuit, and ready is the point for the testbench to judge. After waiting for the operation of each layer to be completed or for the action to be performed has been completed, the convolution circuit can set the busy signal low again. When all the operations of the circuit are completed, the testbench will prepare the next grayscale image and set the busy signal. It is a low potential, and the testbench will immediately enter to verify the data to ensure that the results are correct, and this result will be verified by Python processing before it can be used as the verification data of the convolution circuit.  
Therefore, for the operation processing of each input grayscale image, the busy signal is only allowed to be set to a high potential when the convolution circuit starts to work and is set to a low potential when the convolution operation is completed. At the same time, in the process that busy is equal to the high potential, the convolution circuit can repeat the read and write operations of each Layer infinitely.