工具/软件:Code Composer Studio
您好!
我希望在 DSP (C6678)和 Xilinx FPGA 之间以1.25、2.5、3.125和5Gbps 的速率发送和接收直接 I/O 数据包。
问题1:
我研究 了 SRIO 的 SRIO_Loopback _evmc6678_C66BiosTestProject 示例项目。
在此示例中, 通过 test_dioSockets ()函数按如下方式发送 NWRITE_R 数据包的10次迭代。
/*发送 DIO 信息。 //
if (SRIO_sockSend (srioSocket、srcDataBuffer、SIZE_DIO_packet、(SRIO_SockAddrInfo*)&to)< 0)
{
System_printf ("Debug (Core %d):DIO 套接字测试失败\n"、coreNum);
返回-1;
}
/*循环直到传输完成。 */ while
(1)
{/*
获取完成代码。 //
if (SRIO_getSockOpt (srioSocket、SRIO_Opt_DIO_SOCK_COMP_code、&compCode、sizeof (uint8_t))<0)
{
System_printf ("错误:无法获取完成代码\n");
return -1;
}
/*传输是否完成? //
if (compCode!= 0xFF)
break;
}
如该代码所示、 当先前 NWRITE_R 数据包的完成代码 等于0时、发送下一个 NWRITE_R 数据包。 这意味 着之前的 NWRITE_R 数据包的发送 已完成。
在这种情况下、我认为当之前的 NWRITE_R 数据包的完成代码等于0时、这意味 着接收到与 NWRITE_R 相关的响应数据包。
我的第一个问题是:
在上面的示例中,由于下一个 NWRITE_R 数据包一直等到上一个 NWRITE_R 数据包(接收与上一 个 NWRITE_R 相关的响应数据包)完成,因此不可能发送新 的 NWRITE_R 数据包。 因此、无法实现最大吞吐量。 是否有任何方法 可以连续发送 DIO 数据包(如 NWRITE_R)以实现最大吞吐量?
问题2:
正如我说过的、我 希望在 DSP (C6678)和 Xilinx FPGA 之间以1.25、2.5、3.125和5Gbps 的速率发送和接收直接 I/O 数据包。
我研究 了 SRIO 的 SRIO_TputBenchmarking_evmc6678_C66TestProject 示例项目。
此外、我还学习 了《C66x KeyStone 器件吞吐量性能指南 》以及 KeyStone 架构 串行快速 IO (SRIO)文档。
在 KeyStone 架构串行快速 IO (SRIO)文档中、编写内容为:
在示例项目中、 有效载荷大小也被视为8 到8192字节。
我的第二个问题是:
FPGA 端的最大有效载荷大小为256字节。 但在 DSP 方面、可以考虑超过256字节(由于数据包分段)。
在这种情况下、当我 从 DSP 端发送一个有效载荷大小为512字节的 NWRITE_R 数据包时、我将在 FPGA 上接收两个不同的有效载荷大小为256字节的 NWRITE_R 数据包? 我应该制作 并发送两个独立的 NWRITE_R 响应数据包从 FPGA 端到 DSP 端?
此致、
Mohammad