基于Virtex-6 FPGA的三种串行通信协议测试及对比 (二)
FPGA模块结构如图10所示。通过VIO控制模块,可对包事务类型、包载荷、发送地址等参数进行设置。本测试将包载荷设为256字节,读/写内存空间设为DSP的MSM(Multi-core Shared Memory)空间。
图10 SRIO 2.0通信测试FPGA模块结构
DSP方面,需要进行相关寄存器的配置,完成SRIO的初始化,使DSP作为目标端处理FPGA发来的SRIO读/写请求。DSP主要配置流程包括使能SRIO接口,串并转换模块,链路数目,链路线速率,设备ID等参数的设置。
使用ChipScope软件观察FPGA相关信号,如图11,图12所示。
图11 SRIO 2.0读测试信号波形
图12 SRIO 2.0写测试信号波形
本测试中,FPGA每连续发送16384个SWRITE或NREAD包后,都会向DSP再发送1个门铃消息。因此,可以通过计算DSP收到的相邻两个门铃的时间间隔来计算SRIO读/写速率。
经测算,当FPGA执行SRIO读/写操作时,DSP接收的相邻两个门铃的平均时间间隔为分别为2.490ms,2.266ms.故SRIO 2.0读操作的数据传输速率为,
下面计算本测试条件下SRIO读/写的理论数据传输速率和实际通信效率。
SRIO 2.0协议的主要开销为物理层编码开销和数据包开销。本测试采用8位路由和34位偏移地址。该条件下SWRITE事务、RESPONSE事务的数据包结构分别如图13、图14所示。
图13 SRIO 2.0 SWRITE包结构
图14 SRIO 2.0 RESPONSE包结构
由图13可知,FPGA每发送一个SWRITE包,会带来10字节的开销,另外,DSP会返回一个4字节确认接收符号。故本测试中SRIO写操作的理论数据传输速率为,
与PCIe 2.0类似,SRIO 2.0可以流水地处理多个未完成的操作,应答开销与发送开销之间没有竞争。故而SRIO 2.0读操作可只考虑RESPONSE包开销而忽略NREAD包开销。由图14可知,DSP每返回一个RESPONSE包,会带来8字节的开销。另外,DSP接收到NREAD包后,会返回一个4字节确认接收符号,FPGA接收到响应包后,也会返回一个4字节确认接收符号。故本测试中SRIO读操作的理论数据传输速率为,
6三种协议的分析比较
本测试中,Aurora 8B/10B、PCIe 2.0、SRIO 2.0均实现了在4x模式下的高速数据传输。下面将结合测试结果和协议的具体内容,从以下各方面对三种协议进行比较。
(1)协议分层结构
Aurora 8B/10B协议仅定义了链路层和物理层。属于较为底层的协议。SRIO 2.0协议定义了物理层,传输层和逻辑层,PCIe 2.0协议定义了物理层,数据链路层,事务层和软件层,这两种协议的内容和功能均比Aurora 8B/10B协议复杂。
(2)链路数目和链路线速率
Aurora 8B/10B协议在链路数目和链路线速率选择上比较灵活,链路数目可以在1x至16x之间自由选择,链路线速率可以在0.5Gb/s到6.6Gb/s间自由选择。PCIe 2.0支持1x,2x,4x,8x,12x,16x,32x链路,链路线速率支持2.5Gb/s和5.0Gb/s.SRIO 2.0支持1x、2x、4x、8x和16x链路,链路线速率支持1.25Gb/s、2.5Gb/s、3.125Gb/s、5.0Gb/s和6.25Gb/s.
综上可知,在链路线速率选择范围的广泛性和灵活性上,
Aurora 8B/10B>Srio 2.0>Pcie 2.0,
链路数目选择的灵活性上,
Aurora 8B/10B>Pcie 2.0>Srio 2.0.
最大允许的链路数目上,
Pcie 2.0>Aurora 8B/10B=Srio 2.0.
(3)数据传输方式
Aurora 8B/10B协议在数据封装过程中未添加地址,设备号等信息,不能对目标设备的存储空间进行读写。
PCIe 2.0可通过Memory Write,Memory Read,I/O Write,I/O Read事务对目标设备地址空间进行读写,但必须具备对目标设备地址空间的可见性。
SRIO 2.0数据传输方式更为灵活。在具备对目标设备地址空间可见性的情况下,可通过NWRITE,NWRITE_R,SWRITE,NREAD,ASTOMIC等事务对目标设备的地址空间进行直接读写。在不具备目标设备地址空间可见性的情况下,SRIO还提供了消息传递机制。用户将数据和信箱号通过MESSAGE事务发至目标设备,目标设备根据信箱号与自身存储空间的映射关系将数据写入存储空间。
综上可知,数据传输方式的灵活性上,SRIO 2.0>PCIe 2.0>Aurora 8B/10B.
(4)协议开销和数据传输速率
三种协议均在物理层有20%的8B/10B编码开销。Aurora 8B/10B协议除此之外基本上无其它开销,而PCIe 2.0,SRIO 2.0还存在数据包开销。与PCIe 2.0相比,SRIO 2.0的数据包格式更为简洁,在相同的包载荷大小下,开销更低。以256B包载荷为例,SRIO 2.0的数据包开销最低为5.4%(SWRITE事务),而PCIe 2.0的数据包开销最低为7.3%(Memory Write事务)。然而,PCIe 2.0协议最大允许的包载荷为4KB,而SRIO最大允许的包载荷为256B.故PCIe 2.0协议可通过增大包
Virtex-6FPGA串行通信协 相关文章:
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 电源设计小贴士 2:驾驭噪声电源(01-01)
- 负载点降压稳压器及其稳定性检查方法(07-19)
- 电源设计小贴士 3:阻尼输入滤波器(第一部分)(01-16)