12.3 EDK,XPS Central DMA  – 如何在EDK设计中正确使用中央DMA-Xilinx-AMD社区-FPGA CPLD-ChipDebug

12.3 EDK,XPS Central DMA – 如何在EDK设计中正确使用中央DMA

描述

我已经在我的EDK设计中添加了一个XPS Central DMA并编写了代码,但DMA不起作用。

我该怎么办?

要使中央DMA工作,需要确保在硬件系统中正确连接DMA控制器并正确配置DMA寄存器。

硬件连接:

XPS Central DMA控制器有两个总线接口,即SPLB和MPLB。 SPLB接口用于配置DMA内部寄存器,通常由系统中的处理器配置。 DMA本身使用MPLB接口来启动DMA事务。
进行连接时,请确保处理器或将用于配置DMA寄存器的任何主站都可以访问SPLB接口。这意味着DMA的SPLB接口应连接到与处理器相同的PLB总线,并且已为DMA分配了适当的地址。在DMA的SPLB连接到不同的PLB总线的情况下,将需要PLBv46到PLBv46桥来将处理器请求传递给DMA。在这种情况下,请确保桥的地址范围包含DMA地址。

还请确保DMA的MPLB接口可以访问源器件和目标器件。这通常意味着在DMA的MPLB中,源器件和目标器件应连接到同一PLB总线。如果源器件或目标器件与DMA的MPLB不在同一PLB总线上,则需要PLBv46至PLBv46桥接器将DMA请求传递给器件。同样,请确保桥的地址范围也包含源或目标器件地址。

另请注意,XPS Central DMA无法访问任何不在PLB总线上的器件,例如LMB BRAM。因此,不在PLB总线上的器件不能用作DMA的源或目标器件。

软件应用:

启动DMA事务相对简单,只需配置SA,DA和LENGTH寄存器即可。写入LENGTH寄存器后,DMA事务将开始。唯一需要注意的是,如果使用缓冲区而不是物理地址作为源或目标地址,请确保缓冲区分配在DMA可以访问的存储器件中。例如,如果应用程序链接到LMB BRAM,则缓冲区也应该在LMB BRAM中。在这种情况下,DMA将失败,因为它无法访问LMB BRAM。

请登录后发表评论

    没有回复内容