34
CHAPTER 4. SYSTEM IMPLEMENTATION
The architecture of the implementation can be seen in the Figure 4.2.
The figure shows the hardware blocks implemented in the FPGA and the
communication channels between that blocks and SDRAM. The widths of
the data buses between FFT block, AXI DMA block and Memory Interface
Core are 64 bit. The Microblaze core and AXI-Lite channels of the AXI DMA
blocks are connected to the 100 MHz clock source. The channels of the FFT
cores and the other channels of the AXI DMA blocks run at 200 MHz clock
frequency and the main memory runs at 400 MHz clock frequency.
Based on the provided input data, such as range of the target, its veloc-
ity and angular information, the Microblaze core generates an input data in
single-precision floating-point arithmetic and stores it in the SDRAM. Fol-
lowing that, the Microblaze initializes the AXI DMA block to read the data
stored in the SDRAM, transfer it to the first FFT block and writes back the
output data from the block. In the design, a single AXI DMA and single
FFT block are used for the processing of the whole 3D array. With the cur-
rent design, having multiple DMA and FFT blocks will not accelerate the
processing since all the instructions of the Microblaze run sequentially.
Figure 4.2: The architecture of the implementation
After finishing the first FFT processing, the Microblaze will perform a
transpose operation (see Figure 4.3) on the data stored in the SDRAM.
As it was mentioned in the previous section, this operation is done using
4.3. THE ARCHITECTURE AND OPERATION
35
the Microblaze core by doing the column-wise reads from the SDRAM and
row-wise writes to the SDRAM. The output of this operation is a matrix in
12x512x32 3D format. Following that, the Microblaze will instruct the second
AXI DMA block to start fetching the data from the SDRAM, transfer it to
the second FFT block and write back the results from it. After completion
of the second FFT operation, the Microblaze will transpose the data for
the last FFT processing. The output of this transpose operation will have
512x32x12 3D matrix format where the third dimension contains the data
from all virtual antennas. The Microblaze now can instruct the DMA block
to transfer the data for the third FFT process. Although we have 12 data
samples available, based on the Equation 3.8 in Chapter 3, 32 point FFT will
be performed on the data. This means that the fetched data vector will be
padded with zeros before processing. Consequently, the third FFT process
can use the same hardware blocks used in the second FFT since they both
need the same number of point FFT core. In a similar way, the output of
the third FFT will be stored in the SDRAM.
Figure 4.3: An example transpose operation
In this phase, we have a 3 dimensional matrix that contains a frequency
spectrum of all the signals from all virtual antennas. The Microblaze now
can read the data and process it accordingly to calculate the range, velocity
and angle information. This is achieved by using the range, velocity and
36
CHAPTER 4. SYSTEM IMPLEMENTATION
angle equations derived in Chapter 2.
The range of a target and it’s velocity are found as following; first, 2D
FFT processed signal data from the first virtual antenna is taken and it’s
absolute value is calculated, then, a maximum value in the 2D matrix and
it’s location were found, following that, based on the row (range bin - r
b
) and
column (velocity bin - v
b
) location information, the range and the velocity
of the target were calculated. Based on the Equation 2.17 in Chapter 2, the
range can be found as:
R =
f
b
c
2α
=
r
b
f
s
c
2αN
(4.1)
where f
s
is the sampling frequency of the mixed signal and equals to:
f
s
= N/T
(4.2)
In a similar way, based on the Equation 2.19 in Chapter 2, the velocity
of the target can be found as:
v =
f
d
c
2f
c
=
v
b
f
ch
c
2f
c
n
(4.3)
where f
ch
is the chirp frequency and equals to:
f
ch
= 1/T
(4.4)
The angle information is found as following; first, data samples were taken
from all virtual antennas based on the row and column information from the
previous calculation making a snapshot vector, second, absolute values of the
vector elements were calculated and stored in a vector, following that, angle
bin values were calculated using the Equation 2.32 in Chapter 2, finally,
based on the bin location of the maximum value of the vector, the angle
value is found. The distance between virtual antenna elements was taken
to be equal to the distance between receiving antennas. It should be noted
that the first half of the snapshot vector represents the positive angles which
range between 0
o
and 90
o
, while the second half of the vector will contain
the magnitude of the angle bin values in -90
o
- 0
o
range. Consequently, by
combining them together we will have a bird’s-eye view in -90
o
- 90
o
range.
In Chapter 3 we found the real-time requirements for the FFT processes.
These values were 35.6 µs, 2.22 µs and 0.21 µs for the first, second and
the third FFT respectively. According to Xilinx’s Core Generator tool, gen-
erated 1024 point single-precision floating-point FFT with natural ordered
output has 4237 clock cycle latency, whereas the 32 point FFT under the
same conditions has 228 clock cycle latency. For 200 MHz clock frequency,