DMA通道包含两个FIFO缓冲区:一个位于主控计算机,另一个位于FPGA终端。创建DMA FIFO后,写入程序框图代码以从相应的缓冲区写入数据和读取数据。例如,如从FPGA传输数据至主机,用户在写入数据至缓存的FPGA上写入代码,同时也在从缓存读取数据的主机上写入代码。

注: DMA通信是单向的。如要从主控计算机传输数据至FPGA终端,必需创建额外的FIFO并使用其他DMA通道。

由于DMA通信是基于FIFO的,数据传输每次操作一个元素。缓冲区内的第一个元素为传输至另一缓冲区的第一个元素。下列示意图为数据传输的范例。

在上述示意图中,FPGA VI获取数据并写入一个数据元素至DMA FIFO的FPGA缓存。主控VI每次从主机缓存中读取4个元素。

注: 设计使用DMA通信的应用程序时,正确设置缓冲区大小是可遵循的一种最佳实践。