We kenden al Software Defined Radio (SDR), Networking (SDN) en Storage (SDS), maar Software Defined Programming? Programmeren gaat toch altijd over software? Blijkbaar niet volgens FPGA-fabrikant Xilinx die onlangs haar SDSoC development environment heeft geïntroduceerd en nu heeft uitgebreid met ondersteuning voor de Zynq Ultrascale+ MPSoC. Het lijkt erop dat Software Defined Programming een behoorlijk interessante technologie is.

Softwareontwikkeling voor FPGA’s wordt meestal gedaan door specialisten die heel knap zijn in het combineren van I/O-pennen bij strenge beperkingen in de timing en beperkte look-up tables. Software voor microcontrollers wordt geschreven door software-engineers die verstand hebben van inheritance en multi-threading. Als je een microcontroller combineert met een FPGA in een System-on-Chip (SoC), zoals Xilinx heeft gedaan in haar Zynq-producten, moeten deze twee soorten ontwerpers samen werken aan hetzelfde systeem. Communicatie, interfaces en andere problemen gaan dan het ontwikkelproces bemoeilijken.


Hier komt de SDSoC-ontwikkelomgeving van pas: daarmee kunnen software-engineers hun werk doen zoals ze gewend zijn en tegelijkertijd hardware-implementaties maken. De gebruiker schrijft zijn/haar algoritme, profileert het voor optimale prestaties en schuift dan bepaalde tijdkritische gedeelten af naar hardware-accelerators zonder één regel hardware-code te hoeven schrijven. De compiler produceert de bitstream voor de programmeerbare logica en de uitvoerbare code voor de processor in één keer.

Wordt het ontwikkelen met FPGA’s nu eindelijk gemakkelijk?