首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于Virtex-6 FPGA的三种串行通信协议测试及对比(2))

基于Virtex-6 FPGA的三种串行通信协议测试及对比(2))

为便于服务器对测试电路板FPGA进行控制,在FPGA的PCIe存储空间模块中,定义了若干控制/状态寄存器,这些寄存器的作用有:DMA读/写初始化,控制DMA读/写的启动与停止,标志一次DMA传输是否完成,设置一次DMA传输的数据量等。服务器通过PCIe接口对测试板FPGA控制/状态寄存器进行读/写操作,来控制DMA的进程。每次DMA完成后,处理板FPGA会向服务器CPU发送一次中断。服务器对测试电路板FPGA DMA传输的控制流程如图6所示。
图6 PCIe 2.0 DMA传输控制流程图

本测试将TLP包载荷数设为256Bytes(IP核允许的最大值),每次DMA传输的TLP包的数量为16384,故每次DMA传输的数据量为4MB。使用ChipScope软件观察FPGA内部的PCIe 2.0 DMA读/写相关信号,如图7,图8所示。本测试开发了PCIe读写功能测试软件,实现PCIe传输数据量和传输速率的实时显示。传输速率通过1s内DMA传输完成的次数来计算。测试结果如图9(a)、(b)所示。PCIe 2.0 DMA读的数据传输速率为1.770GB/s,DMA写的数据传输速率为1.820GB/s。
图7 PCIe 2.0 DMA读测试信号波形


图8 PCIe 2.0 DMA写测试信号波形


图9 PCIe 2.0 DMA读写速率测试结果(a)DMA读测试(b)DMA写测试

下面分析并计算本测试条件下PCIe 2.0 DMA读/写的理论传输速率和实际通信效率。PCIe 2.0协议主要开销为8B/10B编码开销和数据包传送开销。PCIe总线以包的形式在不同器件之间交换信息。数据在进入处理层后会被封装一个包头,该包头长度在32bit地址下为12字节(本测试采用32bit地址)。当数据包进入数据链路层后,会添加2字节的序列号和4字节的LCRC字段。数据包进入物理层后,使用1字节的开始字符和1字节的结束字符将其封装成帧。在DMA写测试中,FPGA每发送一次存储器写报文(含256字节数据)会带来20字节的额外开销。在DMA读测试中,FPGA向服务器发送存储器读报文,并由服务器返回完成报文(含256字节数据)。每返回一次完成报文会带来20字节的额外开销。由于PCIe 2.0定义了流量控制缓存管理机制,允许服务器返回完成报文的同时接收FPGA发来的存储器读报文,故DMA读测试中可忽略FPGA发送存储器读报文带来的开销。故PCIe 2.0 DMA读/写的理论速率相同,均为
DMA读的实际通信效率为
DMA写的实际通信效率为
5 Serial RapidIO 2.0通信测试RapidIO是针对嵌入式系统芯片间和板间互连而设计的一种开放式的基于包交换的高速串行标准,已在电信、国防等行业大量使用。Serial RapidIO(简称SRIO)是物理层采用串行差分模拟信号传输的RapidIO标准。SRIO 2.0协议性能进一步增强,链路线速率可达6.25Gb/s,在电气层支持热插拔,并新添了控制符号和空闲模式功能。本测试以测试电路板FPGA作为发起端,以测试电路板DSP作为目标端。通过FPGA向DSP发送SWRITE包,进行SRIO 2.0写测试,通过FPGA向DSP发送NREAD包,DSP向FPGA返回RESPONSE包,进行SRIO 2.0读测试。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 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写操作的理论数据传输速率为,
SRIO写操作的实际通信速率为,
与PCIe 2.0类似,SRIO 2.0可以流水地处理多个未完成的操作,应答开销与发送开销之间没有竞争。故而SRIO 2.0读操作可只考虑RESPONSE包开销而忽略NREAD包开销。由图14可知,DSP每返回一个RESPONSE包,会带来8字节的开销。另外,DSP接收到NREAD包后,会返回一个4字节确认接收符号,FPGA接收到响应包后,也会返回一个4字节确认接收符号。故本测试中SRIO读操作的理论数据传输速率为,
SRIO读操作的实际通信效率为,
继承事业,薪火相传
返回列表