WHITE PAPER
Designer's Journey: Navigating the Transition to Versal ACAP
mrcy.com 4
LEARNING BY EXAMPLE
We selected a problem to solve using AIE and created a small
test application consisting of a single kernel. This kernel would
perform a common DSP function: beamforming.
We began by studying the AIE architecture manual before
coding the test beamformer kernel in C++. This kernel would
take in multiple AXI4-Streams for element data and weights,
producing an output stream of a single complex beam.
For the first design, we settled on two input streams of
interleaved element samples, with another input stream for
weights. These streams were continuously read into double-
buffered memory within the AIE. The initial C code for the
kernel function looked like this:
WHAT IS BEAMFORMING?
Beamforming — also referred to as spatial
filtering — is a signal processing technique
used in sensor arrays for directional signal
transmission or reception. This is achieved
by combining elements in an antenna array in
such a way that signals at particular angles
experience constructive interference while
others experience destructive interference.
Simple Coherent Summation Equation:
We initially chose the input data width to be 64 receive
elements, as this represents a common beamforming
application. However, we soon discovered that routing
64 streams to a single AIE was not feasible.
As you will see in the next section, we overcame this obstacle
by interleaving our element samples into two streams.