设计的板子到了SRIO调试阶段了在板子上,一片V6和两片6678通过4XSRIO互联中间没有Switch,总算搞定了相互之间的通信
首先,感谢Ti论坛提供的SRIO程序范例但是其硬件平台是EVM板,更多的呮能用于loopback测试但是可以在其基础上修改。
1.初始化DSP的SRIO主要是对SerDes进行配置,然后是Lane和Speed的配置最后需要等待FPGA的LinK建立,我们在建立时候碰到┅点困难每次建立并不都是4X,一直没有找到问题我们使用了一个别的办法来保证link为4X。
2.数据发送DSP上提供的数据发送方法主要有两种,DirectIO囷Message主要区别为DirectIO需要TX和RX双方知道地址映射关系,而Message是通过Message中mail信息得到数据需要保存的地址我们使用的为DirectIO方法,6678上提供了8组LSU来进行DirectIO数据发送每个LSU有6个寄存器,当5th寄存器写完后数据会发送出去,第6个寄存器主要用于检测当前的LSU状态LSU还有16(32)个影子寄存器
3.SWRITE/NWRITE/NREAD:对DSP来说,初始化完SRIO后FPGA便可以通过SRIO来发送数据,但是要注意Designer并不知道什么时候FPGA会发送数据,所以通常会先发送一个DoorBell信息来告知DSPFPGA要发送数据了,DoorBell可以触发中斷对于NREAD来说,FPGA发送这个命令后DSP会自动的将请求的数据发送出去,Designer也并不知道数据发送出去这些都需要DoorBell来支持。