1

我正在研究 Xilinx FPGA 和 PC over PCIe 之间的 DMA 连接。但是,从 FPGA 到计算机的 DMA 传输不起作用。我转储了 FPGA 通过 ChipScope 发送的 PCIe 包:

(头)0x6000_0002,0x0600_01FF,(地址)0x0000_0000,0x3740_0000,(数据)0x0000_0001,0x0000_0002

它应该将 0x1,0x2 写入内存地址 0x3740_0000,但写入没有发生。另一方面,从同一地址读取工作完美。32位和64位地址我都试过了,都不行。我正在使用的计算机是 AMD 64 位机器。我错过了什么?

4

1 回答 1

1

我看到您正在尝试以 64 位地址模式和 2 长度写入。为了让事情更容易,尝试 1 长度和 32 位地址(不要忘记将字节启用更改为 0x0F 以实现 1 DW 写入 tlp,检查 trn_tdst_rdy_n 是否在任何时候变高)。您是否使用程序分配了该内存,您为此使用了什么程序?我认为您的问题在于内存管理,因为成功的读取操作意味着您在 fpga 方面是安全的。

于 2013-04-26T17:23:10.923 回答