Board Software Development Kit (BSDK)
Complete FPGA Framework for Embedded Applications Development
The Nutaq Board Software Development Kit (BSDK) is a complete set of tools that includes IP cores, Frameworks, APIs, easy-to-use GUIs and application examples that significantly reduce the time customers spend on low value-added tasks such as programming interfaces, adjusting FPGA constraints, debugging Host drivers, etc.
On top of industry standard board level libraries and APIs, the BSDK includes a complete and efficient transport layer (CCE: Central Communication Engine) that both allows remote control and high speed data exchange between Nutaq FPGA-based hardware and standard processor blades or remote computer.
Built for embedded applications, Nutaq BSDK tools provides complete APIs support for Linux and Windows environment, as well as support for both x86 or PPC processor architectures.
Petalinux small footprint embedded Linux distribution running on MicroBlaze
A MicroBlaze processor instantiated within the FPGA fabric, running a commercial, embedded Linux distribution. This fabric risk processor runs Nutaq CCE application and may also run user-defined task/application.
Nutaq Central Communication Engine (CCE) Linux application on MicroBlaze
The CCE handles the bootloader, the start-up sequence, the TCP-IP and PCIe communication and configuration commands, etc. This software component is the board interface with the host Command Line Interpreter, GUIs or any other software running on a remote PC intended to communicate with the Nutaq FPGA-based hardware.
The CCE is an implementation of a RPC (Remote Procedure Call library). It exposes the function of the Nutaq Software Libraries to the network. The CCE receives and handles TCP (GigE) or PCIe commands, answers to request coming in real-time and supports multi-user connections. For high efficiency and easy cross-platform API supports, a simple protocol is used. Basically, requests contain a function id and a parameter list. Each function from the Nutaq Software Libraries possesses a unique id. When receiving a request, the CCE call the corresponding function using a function lookup table.
Nutaq Extended Application Programming Interface (EAPI)
The Extended Application Programming Interface (EAPI) can run on either a Windows or Linux operating system.
This EAPI enables host-based applications to remotely control Nutaq’s FPGA boards, via the Central Communication Engine, through an Ethernet connection with a TCP transport (Windows or Linux) or PCIe interface (Linux only).
Command Line Interface
The command-line interface (or CLI) is the basic client interface for Nutaq FPGA boards. It consists of a shell where one can type commands, interacting with the board’s FPGA. The CLI offers many useful features like programming an FPGA bitstream in the onboard flash memory, reading or writing specific addresses on the AXI bus, loading data at some specific address in DDR3 SDRAM, using RTDex, etc. The CLI is a Python script file, which means that it dynamically parses and runs commands. It is also possible to write series of commands in text files and have these run as if they were typed in directly at the command prompt.
Nutaq High speed Real-Time Data Exchange (RTDEx) link over GigE / PCIe
Nutaq RTDEx IP core main objective is to provide customer a framework to exchange data with a host device through the GbE or PCIe links with the highest bandwidth and lower latency possible. On both interfaces, Nutaq CCE is used to configure DMA engines and registers to initiate data transfer. In order to avoid any bottleneck in the data throughput, the MicroBlaze processor is bypassed during data packet transmission allowing the full data bandwidth and lower latency.
Typical RTDEx performances (Linux OS)
|HOST – FPGA Streaming
||PCIe 4x (Gen 1)
||~ 900 mbps
||~ 6.4 Gbps
|Roundtrip Latency (4KB, send&receive)
||~ 1 msec
||~ 75 – 300 µsec
FPGA Recording & Playback
The FPGA SDRAM recording module enables storing bursts of data in the onboard SDRAM. These can then be transferred to a host device for storage and analysis. The FPGA SDRAM playback module enables transmission of large portions of data from a host device such as a computer to the FPGA SDRAM these can then be read by the FPGA at high speed.
Nutaq recording and playback FPGA core is equipped with a four-port memory controller core to permit it to sequentially access the DDR3 SDRAM. The core makes it possible to store data in memory from an FPGA input, for example. Similarly, it makes it possible to read data from the memory, and then send it to an FPGA output channel. The core also has two ports that can be connected to the RTDEx core, allowing a host device to read data from or write data in the FPGA SDRAM memory concurrently.
FPGA QDR Read & Write
The FPGA QDR Read and Write core enables easy user access to such high speed and low latency memory.