Most real-world communication systems have a mix of processing elements. For high-rate, algorithmically complex data processing — often with hard real-time deadlines — hardware resources like FPGAs are the best match. The interface between the two depends on the circumstance; the FPGA can be a pre-processor, coprocessor, post-processor, or some combination thereof. The trick is to get these heterogenous systems to interoperate in an elegant fashion.

This article describes the development of a flexible, optimized, adaptive beam-forming engine that is easily controlled through software. The DSP-intensive tasks run on the FPGA, while the command and control run on an external processor.