# Automatic Configurable Hardware Code Generation for Software-Defined Radios+
## 8 Experimental Results
### A Case Study
**OFDM RX (IEEE 802.11a)**: The IEEE 802.11a standard receiver system is shown in Figure 11b as designed using our framework. The source block sends 80-sample OFDM frame to a cyclic prefix removal (**CP-R**) which receives the samples with pattern \([(1)^{80}0]\). For each 80-sample OFDM frame, the _CP-R_ removes the 16-samples of a cyclic prefix to produce 64 samples using pattern \([(0)^{17}(1)^{64}]\). These 64 samples are consumed by the 64-point Fast Fourier Transform (**FFT**) block using pattern \([(1)^{64}(0)^{64}]\). The _FFT_ transforms the samples from the time-domain back to 64 frequency domain samples which are output with pattern \([(0)^{64}(1)^{64}]\). The zeropad removal (**ZP-R**) accepts 64 _FFT_ samples with pattern \([(1)^{64}0]\), and then detaches the last 16 zero-samples from the _FFT_ samples to produce 48 data samples with pattern \([0(1)^{48}(0)^{16}]\). This is followed by a 16-QAM demodulation (**Demod**) which demodulates the incoming 48 frequency-domain I/Q samples (on input port with pattern \([010]\)) back to real-valued 48 samples (sent via the output port with pattern \([001]\)) before feeding them into a sink block. 3. **OFDM TX (IEEE 802.22)**: As shown in Figure 11c, the IEEE 802.22 standard transmitter system is similar to the IEEE 802.11a transmitter in Figure 11a with only few exceptions. These exceptions include the _Mod_ block which modulates 1200 samples from the source block, the _ZP-I_ (uses input pattern \([(1)^{1200}(0)^{849}]\) and output pattern \([0(1)^{2048}]\)) which appends 848 zero-samples to the modulated samples for input into a 2048-point _IFFT_ (uses input pattern \([(1)^{2048}(0)^{2048}]\) and output pattern \([(0)^{2048}(1)^{2048}]\)), and the addition of a 512-sample cyclic prefix to the _IFFT_ output samples by the _CP-I_ (uses input pattern \([(1)^{2048}(0)^{2049}]\) and output pattern \([(0)^{1537}(1)^{2560}]\)) which results in a 2560-sample OFDM frame. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Application** & **Number of Actons** & **Number of FIFO Channels** & **Number of FIFO Channels with Buffer Size = 1** \\ \hline OFDM TX (IEEE 802.11a) & 6 & 15 & 7 \\ OFDM RX (IEEE 802.11a) & 6 & 15 & 5 \\ OFDM TX (IEEE 802.22) & 6 & 15 & 7 \\ OFDM RX (IEEE 802.22) & 6 & 15 & 5 \\ MIMO-OFDM TX (IEEE 802.11a) & 22 & 59 & 28 \\ MIMO-OFDM RX (IEEE 802.11a) & 22 & 59 & 16 \\ GSM DDC & 11 & 23 & 10 \\ FM DDC & 13 & 27 & 10 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: The execution properties of different SDR applications. 4. **OFDM RX (IEEE 802.22)**: The IEEE 802.22 standard receiver system is shown in Figure 11d and is similar to IEEE 802.11a receiver in Figure 11b except that it has different configurations for the blocks. In the EEE 802.22 receiver configuration, the _CP-R_ (has input pattern \([(1)^{2560}0]\) and output pattern \([(0)^{513}(1)^{2048}]\)) removes 512 samples of a cyclic prefix from the 2560-sample OFDM resulting in 2048 samples which are input to the 2048-point FFT block (uses input pattern \([(1)^{2048}(0)^{2048}]\) and output pattern \([(0)^{2048}(1)^{2048}]\)). The 848 zeros of the FFT output are removed  
Figure 11: SDR applications used in a case study. by the \(ZP\)-\(R\) to produce 1200 samples where \(ZP\)-\(R\) uses the input pattern \([(1)^{2048}0]\) and the output pattern \([0(1)^{1200}(0)^{848}]\). 5. **MIMO-OFDM TX (IEEE 802.11a)**: The MIMO-OFDM TX system is shown in Figure 11e and the building blocks for its four transmit paths operate in a similar manner as the corresponding blocks for the IEEE 802.11a transmitter in Figure 11a. The only new block in this system is a serial-to-parallel (**S/P**) block which converts the 192-sample serial stream into four parallel 48-sample streams for the transmit paths. This _S/P_ uses the access pattern \([(11110)^{48}]\) on its input port (i.e., consumes four samples every five cycles) and on each of its four output ports it produces data samples with pattern \([(00001)^{48}]\) (i.e., produces one data sample on every fifth clock cycle). 6.