Design Validation

Beamforming Implementation on AI Engine (XAPP1352)

Document ID
XAPP1352
Release Date
2021-01-11
Revision
1.0 English

AI Engine designs can be simulated for functional verification and throughput validation before integration with programmable logic. The following figure shows the validation workflow for the AI Engine beamforming reference design.

Random input test vectors are generated by a MATLAB® script and golden test data are computed by the MATLAB reference model. AI Engine designs are compiled and tested in a System C simulation environment (AI Engine simulator) using the input test vectors. The AI Engine simulation results are stored in data files that record the output samples along with their time stamps. The time duration from the first output sample to the last can be measured by the time stamps, and the number of output samples can be counted. Their quotient gives an estimate of throughput.

Figure 1. AI Engine Design Validation Workflow

The beamforming reference design has 12 output AXI streams, each of which contains the data of eight antennas or eight layers. A makefile is included in the design to compare all 12 outputs with the golden test vectors generated by MATLAB. Table 1 (a) shows a bit-true match with the reference output for the AI Engine beamforming design. The makefile also estimates the throughput from all output files. Table 1 (b) shows that all 12 output AXI streams achieve the target throughput of 800 MSPS with more than 5% margin.

Table 1. Example Design Validation Result
(a) Functional Verification (b) Throughput Estimation
> make check_op
DLBF 0 - diff=0 -
DLBF 1 - diff=0 -
DLBF 2 - diff=0 -
DLBF 3 - diff=0 -
DLBF 4 - diff=0 -
DLBF 5 - diff=0 -
DLBF 6 - diff=0 -
DLBF 7 - diff=0 –
ULBF 0 - diff=0 -
ULBF 1 - diff=0 -
ULBF 2 - diff=0 -
ULBF 3 - diff=0 -
> make get_tp
DLBF 0 Throughput= 856.493 Msps (>800Msps)
DLBF 1 Throughput= 855.901 Msps (>800Msps)
DLBF 2 Throughput= 856.512 Msps (>800Msps)
DLBF 3 Throughput= 856.436 Msps (>800Msps)
DLBF 4 Throughput= 855.939 Msps (>800Msps)
DLBF 5 Throughput= 855.901 Msps (>800Msps)
DLBF 6 Throughput= 856.493 Msps (>800Msps)
DLBF 7 Throughput= 855.901 Msps (>800Msps)
ULBF 0 Throughput= 855.977 Msps (>800Msps)
ULBF 1 Throughput= 855.92 Msps (>800Msps)
ULBF 2 Throughput= 855.901 Msps (>800Msps)
ULBF 3 Throughput= 855.92 Msps (>800Msps)