2013-01-08 34 views
1

我正在通过PCIe在Xilinx FPGA和PC之间建立DMA连接。但是,从FPGA到计算机的DMA传输不起作用。我甩经由的ChipScope由FPGA发送所述PCIe包:FPGA PCIe DMA写入不会改变CPU RAM

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

应写0x1,0x2到存储器地址0x3740_0000,但写没有发生。另一方面,从相同地址读取完美。我已经尝试了32位和64位地址,他们都不会成功。我正在使用的计算机是AMD 64位机器。我错过了什么?

+0

你可能有更好的运气问在http://electronics.stackexchange.com/ – Marty

+0

你没有问这里同样的问题:http://stackoverflow.com/questions/14217311/pcie-interrupt-routing – FarhadA

回答

1

我看到你正在试图写入64位地址模式和2的长度。只是为了使事情变得更容易,尝试1长度与32位地址(不要忘记更改字节启用为0x0F为1 DW写tlp,检查是否trn_tdst_rdy_n在任何时候都高涨)。你是否用一个程序分配了这个内存,以及你使用了什么程序?我认为你的问题与内存管理有关,因为成功的读取操作意味着你可以安全地使用fpga端。