WHITE PAPER
Designer's Journey: Navigating the Transition to AMD Versal™ Adaptive SoCs
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.
"The appearance of U.S. Department of Defense (DoD) visual information does
not imply or constitute DoD endorsement."