Intel® L- and H-tile Avalon® Memory-mapped+ IP for PCI Express* User Guide

ID 683527
Date 10/19/2021
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

7.1.2. Programming Model for the Example Design

The programming model for the DMA example design performs the following steps:
  1. In system memory, prepare a contiguous set of descriptors. The last of these descriptors is an immediate write descriptor, with the destination address set to some special system memory status location. The descriptor table must start on a 64-byte aligned address. Even though each descriptor is only about 160-bit long, 512 bits are reserved for each descriptor. The descriptors are LSB-aligned in that 512-bit field.
    Figure 28. Sample Descriptor Table
  2. In system memory, prepare one more descriptor which reads from the beginning of the descriptors from Step 1 and writes them to a special FIFO Avalon® -MM address in FPGA.
  3. Write the descriptor in Step 2 to the same special FIFO Avalon® -MM address by:
    1. Writing one dword at a time, ending with the most significant dword.
    2. Writing three dwords of padding and the entire descriptor for a total of eight dwords (the descriptor takes up only five dwords, but CPUs do not typically support single-TLP, five-dword writes).
  4. Poll the special status location in system memory to see if the final immediate write has occurred, indicating the DMA completion.