Software Defined Programming makes FPGA development (almost) easy

July 4, 2016 | 00:00

Software Defined Programming makes FPGA development (almost) easy

We had heard about Software Defined Radio (SDR), Networking (SDN) and Storage (SDS), but Software Defined Programming? Isn’t programming software-defined by definition? Apparently not, according to FPGA manufacturer Xilinx who recently introduced its SDSoC development environment and extended it just now with support for the Zynq Ultrascale+ MPSoC. Looking closer, Software Defined Programming seems to be a pretty exciting technology.

We had heard about Software Defined Radio (SDR), Networking (SDN) and Storage (SDS), but Software Defined Programming? Isn’t programming software-defined by definition? Apparently not, according to FPGA manufacturer Xilinx who recently introduced its SDSoC development environment and extended it just now with support for the Zynq Ultrascale+ MPSoC. Looking closer, Software Defined Programming seems to be a pretty exciting technology.

Developing software for FPGAs is usually done by specialists capable of matching I/O pins with tight timing constraints and limited look-up tables. Software for microcontrollers is written by software engineers well versed in inheritance and multi-threading. When you combine a microcontroller with an FPGA in a System-on-Chip (SoC), as did Xilinx for its Zynq products, these two types of engineers have to work on the same system. Communication, interfacing and other problems will slow down the process.

This is where SDSoC development environment comes to the rescue as it allows software engineers to do their work as usual while creating hardware implementations on the fly. The user writes his/her algorithms, profiles them for performance and then pushes selected, time-consuming parts into hardware accelerators without writing a single line of hardware code. The compiler produces the bit stream for the programmable logic and the executable for the processor at the same time.