我的SRIO网络如下图所示:
有2个C6678 DSP(版本PG1.0)、2个XILINX FPGA,这4个器件分别实现x4的SRIO,4个器件之间通过SRIO SWITCH连接:
每个器件的4X端口可以实现4x或者降x后实现1x使用。
问题是:C6678实现4X时,不能向外发送数据包,查看相关寄存器发现output count error。但可以正确接收其他器件发来的数据包、能正确的响应其他器件的读请求(把请求数据发给源器件)。
但:1)使用同样的代码,把其中配置4x的语句改成配置1x,让其工作在1x模式,数据包就能正确的发送出去,并且在目的器件的寄存器内可以看到数据正确的传输了。
2)FPGA工作在4x、1x均能正确发送数据包。(所以肯定不是PCB布线和电路硬件问题。)
3)两个C6678的现象完全一样。感觉是C6678的问题,不确定是器件问题还是DSP代码问题(但代码在1x时正常)。
所以我想:是不是C6678器件配置成4x的时候有什么bug,或者有什么特殊注意的地方(感觉与1x程序代码相比,就是配置x数那条语句不一样嘛,1x正常,4x怎么不行呢)。
Andy Yin1:
你的4X跑的速率是多少,可以降频看看,另外可以参考一下下面的程序。
www.deyisupport.com/…/4773.aspx
zhihua zheng:
回复 Andy Yin1:
andy您好,
我的4X跑1.25G、2.5G、3.125G、5G都不能进行NWRITE和SWRITE操作(1x都行)。
你们有没有C6678与非C6678设备(FPGA等)通过4xSRIO进行数据交换,可以跑通的案例?如果是C6678与C6678通过4xSRIO传输,可以跑通的案例呢?
我想确认下4XSRIO是否可用?如果可用有没有相关代码供我参考下呢?
Nick Zhang~:
回复 zhihua zheng:
C6678和非C6678设备进行4xSRIO通信没有问题的,我已经跑通了
yan ren:
回复 Nick Zhang~:
能否将调试代码分享一下?
还有请问你用的SWITCH是什么芯片?
谢谢交流。