DMA FIFO Node for Controller FPGA Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems for communication between computer systems and programmable hardware elements, such as FPGAs, face inefficiencies due to reliance on interrupts and slow register accesses, particularly when transferring large amounts of data.
Innovation Solution
A system and method utilizing a direct memory access (DMA) FIFO node in graphical programs to facilitate communication between a controller and a programmable hardware element, allowing for efficient data transfer through a DMA FIFO structure implemented on both the hardware element and the controller, with configurable attributes and status monitoring.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If interrupts and register accesses are used for communication between controller and programmable hardware element, then communication can be established, but data transfer speed is slow and efficiency is reduced
Solution Approach 1:
A DMA FIFO structure is introduced as an intermediary buffer between the controller and programmable hardware element. This FIFO queue allows data to be transferred in batches without requiring synchronous interrupt handling for each data item, significantly improving transfer speed and communication efficiency while maintaining data integrity between the two components.
2Quantity of substance
If traditional communication methods are used, then system complexity is kept simple, but large amounts of data cannot be transferred efficiently
Solution Approach 1:
The communication interface is segmented into a FIFO queue structure that separates the data buffer from the control logic. This allows large volumes of data to be transferred by processing them in sequential batches through the FIFO, rather than requiring complex simultaneous handling mechanisms, thus enabling high data volume transfer with manageable structural complexity.
3Productivity
If register accesses are used for each data item, then data can be transferred, but the process is time-consuming and reduces overall system productivity
Solution Approach 1:
Data is pre-loaded into the FIFO buffer before being transferred to the programmable hardware element. This preliminary action allows the controller to prepare data batches in advance and transfer them as complete units rather than item-by-item through slow register accesses, significantly reducing data transfer time and improving overall system productivity.
Data Source
AI summary
A system and method for communicating between graphical programs executing on respective devices, e.g., a programmable hardware element and a controller. The system includes a first node representing a direct memory access structure, e.g., a first in, first out data structure (DMA FIFO), and a second node providing a controller interface to the DMA FIFO. A first portion of the DMA FIFO is implemented on the programmable hardware element, and a second portion of the DMA FIFO is implemented in memory of the controller. The first and second nodes are operable to be included respectively in first and second graphical programs, where the first graphical program, including the first node, is deployable to the programmable hardware element, where the second graphical program, including the second node, is deployable to the controller, and where the first and second graphical programs communicate via the DMA FIFO in cooperatively performing a specified task.


