遇到的问题
我采用的是artix 开发板加上千兆以太网模块,其出现了较大情况的误码出现,
我的测试环境
fpga 测采用标准的以太网发送程序/ad9226进行数据的采集
fpga的作用接收ad9226的以太网数据,实现数据的简单变换,然后存储到ram 中,当存储累计到100个数据的时候,发出使能信号给以太网模块,让以太网的模块读取ram中的数据,然后将ram 中的数据发送至上位机。
因为每次编译比较慢,我只能测试如下几个结果:
我测试的几种情况如下: 在拥有ila在线监测的情况下:
(1)当每次综合传输的字节不一样的时候会导致结果的误码的情况不一样,例如, 当我设定以太网传输800个字节的时候,其出现很大情况的误码。 而当我设定1000个字节的时候,其也就不出现误码。
(2) 有的时候我加入ad采样模块的程序,误码就出现了问题,有时候未加入也出现了误码的情况问题,具有一定的偶然性
(3) 有时候传输400个字节的时候有问题,而传输200个字节的时候又没问题了
(4) 有时候传输两百个自己的时候有问题,而传输100个自己的时候又没问题了
突发奇想:我实际上用ila在线监测的原因,就是为了验证实际的功能是否正常, 我目前可以肯定的是,工作情况是正常的。因此我就把在线监测去掉了。
此时再去测试fpga+千兆以太网上传的数据,其就是正常的工作的。
(1)选择上传的100个字节,200个字节800个字节,其都是正常工作的。
我的整体的测试流程如下:
参考我得文档:
出现的误码的情况如下:
不误码的结果:
两种误码的情况的原因都是由于出现40 这个误码情况,而其理论上,应当是00 这个码。
可能的原因
我想我测试的偶然性可能是由于vivado每次软件综合出来的结果是不一样的,也就导致了出现误码的情况,当我去掉ila在线监测的时候整体的情况一下就好了起来,此时,我从新进行一下有序的情况的测试:
有ila 的情况进行在线测试
816个字节
首先在加入ila 在线调试的情况下,经过交换机我得电脑是根本接收不到数据的。
把网线直接脸上测试结果如下;
那我虽然是加入ila在线模块这样编译更新,但是实际下载下去的时候,我不下载在线监测模块。那对实际的结果是否有影响呢?
416 个字节
不加入ila 在线调试结果
目前经过交换机的情况下
816个字节
测试结果:
416 个字节
测试结果如下啊,
结论
我们不经过ila在线调试的情况下,其能够正常工作,但是经过ila、在线调试的情况下,其误码率就急剧上升。
解决的方案
我将实际ila 的在线监测的方式去掉了。我就可以正常的工作了,我期望其不具有偶然性,而是一个普遍性的原因
我向同门师兄了解之后i的结果:
我也是认为如此,理论上ila 不应当影响,我i们实际的结论,但是我目前测试的结果却并非如此, 若有相关领域的专家或者大佬,欢迎留言区进行讨论。