大家好:
在我的项目中,使用一块FPGA芯片和两片C6678。FPGA通过SRIO接口和DSP A连接,DSP A和DSP B通过Hyperlink接口连接,srio和hyperlink接口都工作在3.125G波特率。我通过SRIO接口将DSP A的DDR3上数据传输给FPGA,64KB耗时70us(4 lane),基本正常。我同时需要将DSP B的DDR3上数据传输给FPGA。我采取的方式是,将DSP A的hyperlink空间映射到DSP B的DDR3空间,然后通过DSP A的srio接口直接访问hyperlink映射空间,将DSP B的DDR3数据传输给FPGA。但是我测试得到的结果是,64KB耗时500us!感觉像是srio链路和HyperLink链路配合时,双方都掉至1 lane了!
有人做过相同的测试吗,srio访问hyperlink空间的速率能提升吗,是我的某些底层设置有问题吗?谢谢!!
Allen35065:
单独Hyperlink的测试做过吗?需要多少的延时?
wei he1:
回复 Allen35065:
单独测试Hlink,64KB大约为160us。 是Srio接口与Hlink接口数据包协议不一致,中间需要转换数据格式耗大量时间么?
Allen35065:
回复 wei he1:
有这方面的因素,因为你这个应用的例子很少见,所以我也不太确定原因是什么;
而且因为你的数据是串行的,Buffer空间又有限;两个系统可能会互相干扰,某些时候Hyperlink要等SRIO的数据,某些时候SRIO要等Hyperlink发送完;
你有没有试过SRIO发到Share L2里再发一个Doorbell,在Doorbell中断里再起一个EDMA CC0的传输将Share L2的数据传给Hyperlink,或许会更快一些。
这里用CC0是因为CC0和Hyperlink在同一个总线上。
TI中文支持网