
8-22
|
ni.com
Chapter 8
Developing Applications for the High-Speed Serial Device
DMA Streaming
The high-speed serial devices support both host-to-target streaming and target-to-host streaming
through DMA channels that connect the host to your target. Use DMA streaming to allow the
maximum throughput of data from your host application to be streamed to the target at high rates
of speed.
The high-speed serial devices provide up to 32 DMA channels that can be accessed by your
Host. These channels can be used in a variety of ways to meet your application’s needs. The total
overall bandwidth of the module limits your DMA use, whether you use 1 DMA channel or 32.
The maximum width of a DMA channel is 256 bits. To use the full width of the DMA channel
to achieve maximum throughput, you can write an array of U64 elements into the DMA FIFO
and configure the FIFO for multi-element read/write (four elements per read/write) to satisfy the
256 bit width. You can also write up to 1024 bits at a time from LabVIEW FPGA, and the Ready
for Input connection throttles the connection to the FIFO to prevent overflow.
Theoretically, DMA throughput is maximized and is most consistent when the DMA FIFO
buffer is sized as large as possible to absorb variations in the readiness of the host memory.
However, sizing the FIFO larger consumes block RAM resources on the FPGA and increases
the timing pressure on the FIFO. NI recommends making the FIFO as large as you can
successfully compile with, in order to sustain throughput through the PCIe bus to and from
host memory. You can change the size of the FIFO by configuring the Requested Number of
Elements for the FIFO in the project properties. You can validate the DMA sizing through
benchmarking, and you can use VIs in the Streaming Design Library to monitor the health
of a FIFO.
For more detailed information about using DMA, DMA best practices, and how to make design
decisions on how to implement DMA in your application, refer to the
Transferring Data Using
Direct Memory Access
topic of the
LabVIEW FPGA Help
.
Total throughput depends on the SCTL rate from the FPGA that is reading or writing the DMA
channels. The data throughput is calculated by the following equation:
(Data Width × Samples per Cycle) × Number of DMA FIFOs × SCTL Clock Rate
= Data Throughput
Note
The total data throughput cannot exceed the maximum data specification for
your device. Refer to the
Specifications
document for your device for information
about data throughput limits.
Note
Some remote controlling PCs and PXI Express chassis have slot bandwidth
restrictions that may limit the maximum throughput of your application. Refer to the
controller and chassis specifications for more information.
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com