The Nutaq Software Architecture is divided in three hierarchic levels:

  •  Board Support Package (BSP): Provides the basic functions needed to operate the carrier board and its daughter FPGA mezzanine card (FMC)
  •  Board Support Development Kit (BSDK): Adds communication capabilities to a host PC
  •  Model-Based Development Kit (MBDK): Enables customers to design, simulate, test, debug and deploy applications from the Simulink graphical environment without the need of writing any VHDL or C code

The Nutaq Software Architecture hierarchic levels

This blog explains these three development tools to help you better understand the Nutaq architecture.

What is BSP?

BSP stands for Board Support Package. It supplies the minimal design necessary to configure and operate the FMC hardware in a standalone configuration (i.e. no interaction with a host PC). The designer needs to add the user logic and connect it to the FMC FPGA core in order to process received and transmitted data.

BSP Block Diagram

BSP block diagram

BSP contents

Embedded processor

The embedded processor is used to initialize and control the FMC hardware and the FPGA core. The processor uses the AXI bus to communicate with the FPGA cores. A standalone C application is built using Nutaq’s libraries in the Xilinx SDK environment. A library is provided for each of the supported FMC daughter cards. General and utility libraries are also provided.
The MicroBlaze soft processor core is used for the Perseus and ML-605 carriers. The Zedboard uses Zynq’s embedded ARM Cortex A-9 processor.


The FMC FPGA core provides the user logic with access to the FMC data and control ports. It handles the data reception and transmission to and from the FMC hardware.

User logic

In the BSP design, user logic is required to process the FMC FPGA core’s received and transmitted data.

BSP example applications

BSP example applications demonstrate data reception and/or transmission by the FMC FPGA core.


  •  ADC or data input cards: Data is received and sent to ChipScope.
  •  DAC or data output cards: Signals are generated and sent to the FMC.
  •  ADC/DAC Cards: Acquired data is transmitted in a pass-through configuration.

The following table lists the supported FMC daughter cards and the availability of example applications.

FMC Perseus Zedboard ML605 Radio420X ADAC250 MI250 MI125 LVDSXin Xout ADC5000 2X10GE SFP QSFP

Supported FMC for BSP

What is BSDK?

BSDK stands for Board Support Development Kit. It adds host PC communication, as well as data recording and streaming capabilities, to the BSP. An embedded Linux distribution is implemented on the MicroBlaze processor to add the benefits of a TCP/IP stack. The designer adds the user logic and connects it to the FMC FPGA core to process received or transmitted data. The user logic also benefits from the Record/Playback core for real-time data recording and playback purposes and from the RTDEx cores for data streaming whether on Gigabit Ethernet or PCI Express.

BSDK contents for Perseus

BSDK on the Perseus

BSDK on the Perseus

Embedded Linux distribution

Perseus uses the embedded Linux distribution, PetaLinux 2.2. It provides a TCP/IP stack, file system, first-stage bootloader, and universal bootloader. It is loaded from flash as the BSDK bitstream starts.

Embedded Linux Booting Sequence

Embedded Linux Booting Sequence

Central Command Engine (CCE)

The Central Command Engine’s purpose is to receive commands from the host PC and to execute them. These commands can be used to configure the FMC hardware or FPGA core, to trigger recordings, or to control the transfer of data on the RTDEx.

Nutaq IP core: Record/Playback

The Record/Playback core module enables data recording and playback to and from the Perseus DDR3 SODIMM. The module supports DDR3 sizes of 1 and 4 Gigabytes. The host PC can retrieve the recorded data through the RTDEx and save it to a file.

Nutaq IP core: RTDEx

The RTDEx core module enables the designer to send or receive data to and from the Perseus on high-throughput interfaces (Gigabit Ethernet and PCI Express).

User logic

In the BSDK design, the user logic can interact with the FMC FPGA core via the Record/Playback and RTDEx modules. The following diagram illustrates typical use cases in the BDSK environment.

Typical BSDK use cases

Typical BSDK use cases

External API (EAPI)

The External API allows the user to configure the Perseus and the FMC hardware from the host PC. It interacts directly with the Perseus CCE, issuing commands and sending them through TCP/IP or PCI Express. A set of functions is available for each of the supported FMC daughter cards and FPGA IP cores.

Command line interface (CLI)

The command-line interface is a basic client interface. It runs on the host PC and consists of a shell where you can type commands and interact with the different computing elements connected to your system.

BSDK example application

A BSDK example application demonstrates the data reception and/or transmission by the FMC FPGA core and the recording, playback or streaming of this data.

The following table lists the supported FMC daughter cards and the availability of example applications.

fmc perseus zedboard radio420x adac250 mi250 mi125 lvds xin xout adc5000 2x10ge sfp qsfp sfp


What is MBDK?

MBDK stands for Model-Based Development Kit. It provides access to all the BSDK features from a model-based development environment (namely Matlab Simulink and Xilinx System Generator) and accelerates the development cycle. For further information on the MBDK and its associated development flow, please refer to the following blog entries:

The following table lists the supported FMC daughter cards and the availability of example applications. 

fmc perseus radio420x adac250 mi250 mi125 lvds xin xout adc500 2x10ge sfp qsfp sfp