Skip to main content

Customer Login

This content is for Speedgoat customer only. Log in to see content.

Forgot your password?

Don't have a Speedgoat account? Create an account.


Common Use Cases

Common Use Cases — Common use cases for Simulink-programmable FPGA I/O modules


The following use cases and corresponding example models are provided to help you get started. The documentation for these examples contains links to additional information, such as the required interfaces, supported modules, required Toolboxes, and more.

Configuring and Monitoring FPGA Signals and Interrupt Generation

A very basic example model showing the principal concept of CPU and FPGA communication through PCIe ports. This model shows how to configure parameters on the CPU, interact with the FPGA, read back signals from the FPGA to CPU and illustrate these signals. The model also shows the use of interrupts triggered by the FPGA.

Interfacing Analog Input and Output Signals

The examples listed below show interfacing with the analog input and output channels in a synchronized (triggered) manner and processing the data once available (data valid).

Fast FPGA/CPU Data Streaming

We provide data streaming capabilities using DMA for data transfer between the FPGA and CPU with low latency or higher bandwidth requirements. The DMA data transfer is implemented for both directions: (1) from FPGA to CPU as a data logging use case; (2) from CPU to FPGA, if, for example, pre-recorded data is to be streamed to the FPGA to play back with fast data rates and minimal delay. Both streaming setups can be combined to achieve a co-processor setup where either the CPU or the FPGA acts as a co-processor device.

High-Speed Data Logging Using On-Board RAM

To store large amounts of data with high-data-bandwidth requirements, most of our Simulink-programmable FPGA I/O modules provide extensive external RAM on the module itself. The memory is accessible from the FPGA and user algorithm through dedicated AXI-Master ports. The memory can also be read and written from the CPU with dedicated DMA driver blocks.

High-Speed Intermodule Communication

For communication between multiple modules or machines in order to: (1) aggregate data from multiple instances and stream to the CPU; (2) obtain a centralized processing unit from distributed notes; or (3) communicate to external FPGA modules and machines, we provide communication capabilities using the Xilinx Aurora protocol. The image below illustrates the use cases: