|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 老虎阿花 于 2012-9-6 22:37 编辑
(刚写的一大段不小心给删了!!!!!!TAT!!!)
大家好,本人初学sv,自己练习写了一个发包程序(4KB:16B写命令+4064DATA+16B读命令),然后从DUT读入一段刚写的4064B数据来检查读写的数据是否一致。但是原来读出来的data_len是4064,但是有一些长度却是52239B(可从dut_test.txt查出)。我的命令格式是:8B读写指令+2B数据长度+8B读写地址
例如我的读命令是这样的:cccccccccccc0fe00000000000000006
这时候我的读出的数据长度应该是0fe0(4064)但是错误的情况是cc0f(52239),由于只有一部分是错误情况我就猜想是否是读取数据在跳变前后不确定的问题,所以我尝试着在要去取长度的时候加上1ps的延迟,但是得出的结果data_len是全都是e0e0。
(PS:我查看时序图的时候发现正确的情况下data_len是在pky_in从0f变向e0是后值开始变化的,但是我的代码里面是让data_len在pkt_in刚跳变成0f就开始变值的,怎么会这样?错误情况下是在cc跳变成0f的时候data_len变值了。。。。虽然变得值是错的= =#)
写得比较多,真的希望各位大神可以帮忙看看,到底是错在哪?还是我有什么根本性的东西没明白。。。。3QQQQQQQQQQQ!!!!鞠躬~~~~
sv程序.rar
(11.68 MB , 下载次数:
54 )
|
|