关于使用Spartan6 GTP 进行数据互传时的错位问题

图1

图2
图一中是传输没有发生错位时的情况,BCBC是空闲传输的编码,当接收数据有效时接收到了第一个数7AEA.但是传输过一段,会出图2情况,第一个数据9DEA的高八位与空闲码组合了,接收有效时,第一个数变成了EA9D,整组数据发生了错位。
板子是我自己画的,主要问两个问题:
1 我使用的两块板子协议相同,设计相同,使用的FPGA芯片相同,应用Aurora传输数据出现上述情况是否正常?
2 有没有前辈遇到过这个问题,急切需要指导,万谢~
求解 求帮助
你把正确数据和错误数据对比一下,你这样的描述,我还不太理解
不过应该是相位问题
恩 很感谢您的关注 !是这样的 我传输的数据就是16位的数,发送数据16进制表示比如是1B01,1B02,1B03。,但是接收到的数据,有的时候第一个数高八位的1B就和总线上的编码组合了,数据整体错位8位,接收数据就变成011B,021B,031B。(不是颠倒,是错位)
gtp有一个数据对齐的机制,你可以选择控制字符对齐到高字节还是低字节或者任意位置,这个区别就会造成接收到的数据是错位的,需要你对接收数据打一拍然后做个拼位的处理就行了,具体在手册里里哪一章忘记了,和aligned相关的,你找找吧
恩 谢谢回复 但是我使用的Aurora协议,然后两边设置相同,为什么传输一会正确,一会不正确呢
不需要拼位,有错位,就是没对齐,做拼位,乍一看是对齐了,但是仔细观察就知道,周期性的有个数据拼出来是错的
错位是因为对齐的位置高低字节不同,当然需要拼位,第一个错位后面都是错位,不会到中间又给你对到正确位置,就看你自己怎么设置对齐位置了
需要拼位的话,说明传输就是不完全正确的,当初我们一开始调的时候就像你说的这样认为,做了拼位,后来发现不是这么回事,改好了之后,就传输完全正确,很强悍,很稳定,传输十几分钟都没错
我隐隐约约看到雷达的感觉。
请问您用的是什么芯片,是自己画的板子么,调用的协议时Aurora8B/10B,带不带axi4总线。我就是应用的Aurora例程程序,传输就是错位,请问您是怎么修改的。
你的tx_cha什么信号应该发的是“11”吧,改为“01”试试
路过看看,应该是字节对齐,你打一个时钟节拍就可以把他从新对齐了
你好,我最近也在学习光纤通信这块,我想知道你说的例程程序是指哪个,希望可以多多指点,谢谢!
