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.

6678 SRIO带宽问题



我使用的是论坛上提供的KeyStone_SRIO.zip程序,并进行了一些修改,可以实现内循环,也可以和FPGA进行SRIO通信,但是在测量带宽时遇到一点小问题:

在SRC中的SRIO_loopback_Test.c中的srio_signle_port_transfer函数中的

  InitLsuTransfer(&lsuTransfer, transferParam, uiPortNum,
     DSP1_SRIO_BASE_ID+uiPortNum, uiPortNum);
  
  cycles= TSCL;
  Keystone_SRIO_LSU_transfer(&lsuTransfer);

  uiCompletionCode= Keystone_SRIO_wait_LSU_completion(uiPortNum,
   lsuTransfer.transactionID, lsuTransfer.contextBit);

  if(0==uiCompletionCode) //complete without error
  {
   /*wait for theoretical transfer time*/
   while(TSC_delay_cycle(cycles)<(uiByteCount*10*1000/uiPortSpeed_Mbps)+300);

   /*Since NWRITE/SWRITE complete without response,
   we need waiting for last data landing*/
   uiWordIndex= uiByteCount/4-1;
   while(uipSrc[uiWordIndex]!=uipDst[uiWordIndex])
   { 
    Invalid((void *)&uipDst[uiWordIndex], 4);
    if(TSC_delay_cycle(cycles)>
     (uiByteCount*10*1000/uiPortSpeed_Mbps)*4+4000)  //timeout
    {
     break;
    }
   };
  }
  cycles= TSC_delay_cycle(cycles);

我想这个cycles应该是准确的,在我进行闭环测试时,4 X 3.125G测试,打印出的带宽速度能到达到8Gbps,但是我与FPGA进行数据传输时,不管是SWRITE或者NWRITE,也是4 X 3.125G,但是打印出来的带宽只有2.5Gbps,在用chipscope抓数,如下图所示

显示FPGA每次收到256B数据后都要停一段时间再收到256B,我想知道的是DSP是否是DSP一段时间一段时间的发数,还是FPGA的SRIO内核一段时间一段时间接收数据。我发送的数据量远大于256B,但是小于LSU所规定的1MB,DSP应该自动的将这些数据拆分成多个256B的包,这个在发送时会有延迟吗?

谢谢大家!