|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
大家好,
本人小白,刚刚接触PCIE,目前已把xapp859和xapp1052基本都分析完了,然后我把xapp859的pcie_dma_top.v移植到K7上,
以xapp1052的仿真平台和RP为模板,添加了,dma的仿真激励。
目前遇到的问题:EP端发起的dma读操作,即memory read TLP 在RP端不输出trn_rsof、trn_reof等标志信号,trn_rd也不输出,
奇怪的是RP端的PCIE核会自己反馈给EP端一个CPL TLP,下面是具体问题,带截图:
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
白色圈是RP发起的confg 0 write 和接收的cpl (就配置了个bar0的值和0x04寄存器),
棕色圈是dma寄存器配置的RP端和EP端时序,
黄色圈分别是EP发起的dma读 和 写TLP,
红色的圈是EP接收到的cpl(这很奇怪),
绿色的圈tbuf_av减少了1,说明RP的PCIE确实发了一个TLP,就是红色圈的CPL,
明明EP发起的是memory读,RP端sof eof等标志信号没输出,反而是IP自己反馈了一个CPL给EP,我感觉发起的TLP格式没啥问题呢,后面几张图会展示。
如果发起的TLP没问题,那只能是RP端的PCIE核参数设置问题了,或者RP的PCIE在处理TLP时不是按照文档上的帧格式处理的,如果是那样,别人也不知道啊。
EP发起的memory read TLP
长度是32DW,内存地址0x01916000
EP收到的CPL TLP
欢迎各位参加讨论,目前我的思路遇到瓶颈,无法进展,帮帮忙,多谢了。
也希望此贴能够让更多的PCIE新手学到东西。 |
|