The PCIe DMA throughput demo is intended to show the DMA performance between the Nexus FPGA and a host system. At present, the FPGA supported are CrossLink™-NX, Certus™-NX and CertusPro™-NX family. With this application, you can read/write a pattern or counter data between the host system and FPGA memory. There are three pages in the application, GUI Device info, Test Run, and View memory pages.
Transfer Size Per Descriptor – The descriptor count control is used to calculate the burst size for DMA operations. A single descriptor can transfer up to 4096 bytes. If you enter a descriptor count of 1, the burst size is (4096*1). This means the application requests 4096 bytes in single iteration. For DMA writes, the maximum number of descriptors is 255 for a total of 4096*255 bytes of data. For DMA reads, the maximum number of descriptors is 16 for a total of 4096*16 bytes of data. For CertusPro-NX, it allows the descriptor size of 128, 256, 512 and 4096 bytes to be selected.
Direct Memory Access (DMA) Operations – The demo performs Direct Memory Access (DMA) operations with the FPGA acting as the bus master. Data is transferred directly to and from the PC memory.
GUI Application – The throughput demo includes a GUI written in Qt and demonstrates how to open a driver and send control plane read/writes to registers in the IP. The GUI application uses the driver API to communicate with the device hardware. The Driver API is a C++ dynamic library which provides an interface to access the hardware.