我正致力于通过PCIe在Xilinx FPGA与PC之间建立DMA连接。但是,从FPGA到计算机的DMA传输不起作用。我通过ChipScope转发了FPGA发送的PCIe封装:
(标题)0x6000_0002,0x0600_01FF,(地址)0x0000_0000,0x3740_0000,(数据)0x0000_0001,0x0000_0002
应将0x1,0x2写入内存地址0x3740_0000,但写入没有发生。另一方面,来自同一地址的读取工作完美。我已经尝试了32位和64位地址,但没有一个能成功。我正在研究的计算机是AMD 64位机器。我错过了什么?
答案 0 :(得分:1)
我看到你正在尝试用64位addr模式写入,长度为2.只是为了让事情变得更容易,尝试使用32位addr的1长度(不要忘记将字节使能更改为0x0F以进行1 DW写入tlp,检查trn_tdst_rdy_n是否变为在任何一点高。)你有没有用程序分配内存,你用了什么程序?我认为你的问题在于内存管理,因为成功的读操作意味着你对fpga方面是安全的。