TI工程师您好
目前遇到一个问题,DSP6678与FPGA进行SRIO数据交互,需要测试SRIO传输速率。测试方式是DSP从DDR3中发送256M数据,每次发送1M数据,循环发送,发送256次,FPGA端接收,之后FPGA回传256M数据到DSP的DDR,通过门铃通知。DDR3运行的速率为1333MHz(已测,DDR读写速度符合理论值)。测试部分代码如下。
TSCL = 0;
TSCH = 0;
t_start = _itoll(TSCH, TSCL);
t_stop = _itoll(TSCH, TSCL);
t_overhead = t_stop – t_start;
//Start time
t_start = _itoll(TSCH, TSCL);
//Send 1M every time
for (i=0;i<256;i++)
{
uiCompletionCode=KeyStone_SRIO_DirectIO(SRC_START_ADDR+(i*1024*1024),DES_START_ADDR,0xFF,0x100000,0,0,SRIO_PKT_TYPE_NWRITE);
}
//End time
t_stop = _itoll(TSCH, TSCL);
cycles = (t_stop – t_start) – t_overhead;
speed = (unsigned long long)(256*1024*1024)*8/cycles*1000000000/1024/1024; //ByteCount*8bit*1G/time/1024K/1024M
目前测得的速度仅仅有7826Mbps,与理论值相差很大。进行了以下排查:
(1)使用该工程测试3.125G速率下的SRIO,速率为8628Mbps。
(2)上述方法测试的是对DDR3中的数据进行操纵,使用该方法,对程序生成的递增数组进行操作(64K),测速正常,速率为11000Mbps。
请问这个问题大概出在哪里,如何排查呢?
敬请指导,非常感谢。
Shine:
先不要和FPGA通信,试试自环模式下的速率,排除FPGA的影响。
,
user6177772:
您好,感谢您的答复,SRIO_SERDES_LOOPBACK模式下,进行directIO操作,测得5G,4xLaneABCD模式下的速度和理论速度差不多,SWRITE的速度最高为12845Mbps。NREAD的速度最高为11126Mbps。
请问问题可能是怎么回事呢?
期待您的回复,谢谢。
,
Shine:
检查一下是不是FPGA那边的问题,可以先单向测试:DSP发送后,FPGA看一下接收的速率。或者FPGA发送后,DSP这边的接收速率。
,
user5188525:
您自环测试测得是DDR3的数据吗。还是LL2的,我怎么自环5G,4X模式速度才8900Mbps