This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SRIO数据发送中断



各位专家好,我在调试SRIO接口的时候发现数据的发送不是连续的,一段连续的数据包(256字节)后会出现长时间的数据空闲状态,数据也没有丢失,只是这样影响了数据的发送效率。

采用1x形式的数据发送方式这种情况不是太严重,当采用4x形式的发送时从FPGA那边踩到的数据看到每隔一段数据后会后很大一段空白,从而达不到预期的速率,想问一下这是什么原因,是不是我的时钟不准啊?非常感谢!

  • 怀疑是信号质量的问题,你可以看看SRIO的状态寄存器里是否有错误置位,另外可以对SERDES的参数做一些调整测试一下

  • 您好,Allen Yin!谢谢你的答复。

    您说的是不是整了下发送端的swing和接收端的CDR参数啊,是SRIO_SERDES_CFGRX[0-3]和SERDES_CFGTXn_CNTL两个寄存器吗?

    谢谢!

  • 是的,可以调整一下看有没有改变;有条件的话测量信号质量

  • 你好,Allen Yin,我试着修改了一下这两个参数,还是不行。我把C6678的SRIO配置成4个1x的模式,四个端口都可以分别在3.125G的速率下向v5的FPGA发送数据,发送16K byte的数据,数据包直接基本上是连续的,偶尔也会有间断的情况。

    我采用4x模式向FPGA发送数据时,每个256字节包之间还是有很大的间隔,间隔的长度大概是每个256字节包的2倍。我感觉既然1x模式下四个端口都可以正常发送数据,说明信号的质量应该可以啊!

    另外还有一个问题想咨询您,就是采用4x模式的SRIO发送数据时,端口号怎么设置啊,我看文档说是设置成最低的那个端口号,也就是0,但是采用4x模式时我采用端口1,2和3也可以发送数据啊,谢谢!

  • 这个原因是你的srio虽然配成4x,但是实际上训练成的是1x,可以查看dsp端的相关寄存器,或者看FPGA的相关io,如果是xilinx的话可以看mode_sel或mode_1x

  • 首先感谢你的解答,想问一下,如果是这种情况应该怎么处理啊!我用的keystone 1里面的SRIO驱动配置程序,明明是设置成4x模式了啊,而且我试了一下配置成4x模式下利用端口0,1,2,3都能向FPGA发送数据!

    如果是训练成1x了,该怎么解决啊!

  • 你好,我用6678测试SRIO接口,速率3.125G,包的ftype=5,ttype=4,有时候会出现LSU_REG6_FULL现象,其他数据就发送不出去了,这个是什么引起的?怎么解决?

    还有如果我要配置成5G速率,除了要改SERDES_CFGPLL里的倍频数据外还有啥要改的?3.125G和5G参考时钟是一样的156.25,都是half rate。

  • 你使用的是keystone I的驱动例程吗,直接修改里面的速率配置参数就可以了,我使用的里面SRIO的驱动例程,1x模式下DSP和FPGA能够正常通信。这个例程只需要根据你板子的时钟修改时那个外部时钟就可以了!例程地址是http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx?pi239031348=1,另外注意你的设备ID配置

  • 回去查了一下FPGA端的SRIO模式标志信号mode_sel,确实是4x模式变成1x模式了,但是查看DSP的寄存器配置,明明是配置成4x了啊,这是为什么啊,尝试修改serdes的参数也是不行!