原创 仿真Xilinx的PCIe时使用pio_writeReadBack_test0测试问题分析

2019-8-5 16:49 1344 6 2 分类: FPGA/CPLD 文集: PCIE
Xilinx的参考设计仿真给出RP模型下3个测试函数,前两个仿真都通过,只有pio_writeReadBack_test0测试默认的MEM32写和读回的时候,写入和读回的数据不匹配,写入32b'04030201,读回来的却是32b'04030200。

如上图所示,RP发送32b'01020304到EP,并读回,EP也能正确收到该值。然后,在EP返回的时候,却变成了32b’04030200(注:自己颠倒是正常了,问题出在字节“01”变成了“00”)。如下图所示,RP确实收到是32b'00020304。

这个问题最终的解决,可以参考博文https://mbb.eet-china.com/blog/1010859-407798.html,在比较BMD128和BMD64的时候,发现相同MEM32写+读回操作,Xilinx给出的基于K7系列参考设计测试激励发送的addr_i是“4”,而在BMD64模式下,该值是“2”。请对照上述博文中128与64位的仿真时序图查找addr_i值,这个参数在BMD_EP_MEM.v中用于解码不同的功能,在“2”时,对应MEM32写的值直接赋值到MEM32读的数据,所以如此仿真才会Test Passed,写入和读回的值相同。

我是修改测试激励中读写操作对应参数,使得addr_i得到一个“2”,问题是该测试激励是一直继承下来,根本解决方法应该不是修改测试激励,这个需要Xilinx给出答复。具体修改如下,一共需要修改2处,分别是MEM32写和MEM读,将“+8‘h10”修改为“+8’h08”
  1. //board.RP.tx_usrapp.BAR_INIT_P_BAR[board.RP.tx_usrapp.ii][31:0]+8'h10, 4'h0, 4'hF);//Modified by Jerry
  2. board.RP.tx_usrapp.BAR_INIT_P_BAR[board.RP.tx_usrapp.ii][31:0]+8'h08, 4'h0, 4'hF);


作者: coyoo, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1010859.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

给作者打赏,鼓励TA抓紧创作!

赞赏支持
点赞 6
赞赏0

文章评论0条评论)

登录后参与讨论
相关推荐阅读
coyoo 2020-04-13 15:19
用SI9000控制阻抗,并得出各种叠层走线参数
1、差分表层(1B)2、差分内层(1B2A)3、差分内层(2B1A)4、单端表层(1B)5、单端内层(1B2A)6、单端内层(2B1A)7、未命名...
coyoo 2020-04-01 15:29
中国进出口商品运输路线图-2011年
试试翻转下:...
coyoo 2020-03-31 11:38
LTspice导入其它厂家器件现有的spice模型
最近在使用LTspice仿真由三极管搭建的放大电路,在选用罗姆的三极管2SC4083的时候,从罗姆的官网下载了其spice模型文件,这个文件后缀是lib。这里介绍一种方法导入我下载到的lib文件,该l...
coyoo 2020-03-20 14:54
共基极放大器,共基极放大器放大电路 (转)
共基极放大器,共基极放大器放大电路 交流信号电压叠加在直流电压上,使晶体管基极、发射极之间的正向电压发生变化,通过晶体管的控制作用,使集电极电流有更大的变化,它的变量在集电极电阻上产生大的电压变量,...
coyoo 2019-10-31 17:09
FPGA Based TDC的编码器
编码方法: 顺序查找:利用for循环,从tc的第0位依次遍历到第一个0-1(或1-0)跳变的位置,输出跳变处的位置序号,完成编码。顺序查找法比较直观,无需任何外加电路就可以抑制bubble现...
coyoo 2019-10-31 09:56
码密度测试
FPGA芯片中,受到布局布线以及PVT的影响,无法使得每个延迟单元的延迟时间完全一致,更重要的问题在于我们需要获取每个延迟单元的bin-width,此时可以采用码密度测试来获取每个延迟单元的bin w...
广告
我要评论
0
6
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /6 下一条