基于ZYNQ的PCIE高速数据采集卡的设计(四)软件设计,Aurora 协议逻辑设计
系统软件设计
4.1 引言
本章基于第二章的分析结论,进行系统软件设计。软件设计包括逻辑设计、嵌入
式软件设计和上位机软件设计。在逻辑设计中,对 ADC 模块、Aurora 模块、DDR3
SDRAM 模块和 PCIE 模块进行分析和设计,在 Vivado 软件提供的 IP 核的基础上进
行各模块的逻辑代码的编写,并解决各个模块之间数据连接的问题;嵌入式设计是对
系统和内核的移植,并在 Zynq 的 PS 内核实现系统的启动;在上位机设计中,首先
介绍驱动开发工具,再介绍上位机的整体设计。
4.2 逻辑软件设计
由于载卡的 FMC 接口数据与接入的子卡类型有关,根据接入的子卡类型选择
ADC 模块或 Aurora 模块,当选择 AD 子卡时,使能 ADC 模块,当选择光纤子卡时,
使能 Aurora 模块。对应的模块数据经 DDR3 SDRAM 缓存后,再由 PCIE 接口发送至
PC 机,数据流向如图 4.1 所示。

其中,ADC 模块是 AD 子卡的驱动程序,可提供 1Gsa/s 的采样率,数据分辨率
为 12bit;Aurora 模块是光纤子卡的驱动程序,采用 Aurora 协议,4 通道,单通道速
率为 10Gbps,总速率为 40Gbps;PCIE 接口采用 PCIE2.0 协议,x8 模式,单通道速
率为 5.0Gbps,总速率为 40Gbps;DDR3 SDRAM 模块用来实现对 Aurora 数据或 ADC
数据进行缓存。Vivado 软件内提供 Aurora、PCIE 和 MIG 的 IP 核,分别为 Aurora 协
议、PCIE 协议和 DDR3 SDRAM 提供接口解决方案,下面对各个模块进行详细设计。
4.2.2
ADC 模块逻辑设计
AD 子卡的 ADC 芯片采样率最大为 1.6Gbps。而在第二章指标分析中,ADC 的
采样率不得低于 706.6Msa/s,在本次设计中,设置 ADC 的采样率为 1Gsa/s。
ADC 芯
片工作在双边沿采样的模式,这样采样率可以是采样时钟的两倍。需要产生 500MHz
的差分时钟信号,用 Zynq 芯片内部的 MMCM 资源可产生 500MHz 的单端时钟,再
利用 Xilinx 提供的 OBUFDS 原语把单端时钟转换成差分时钟输出。
由于 ADC 工作在双边沿采样,需要拉高 ADC 芯片的 DES 引脚;信号耦合方式
是交流耦合,需要设置 VCMO 引脚为低电平。在双边沿工作模式下,ADC 芯片可以
选择多路复用模式,多路复用模式可以实现数据线的复用,多路复用模式的时序图如
图 4.2 所示[25]。

图中,CLK+/-是采样时钟信号,DQd,Did,DQ,DI 是 ADC 的数据线,DCLKI+/-
是通道 I 的数据同步输出时钟。由图可知,ADC 工作在双边沿采样模式,多路复用模
式时,完成 4 次转换后,数据依次轮流输出至 DQd,Did,DQ,DI。同时在 DCLK+/-
上输出一个转换时钟二分频的信号,这里为 250MHz。
由于数据位宽是 12bit,但是 DDR3 SDRAM 模块的 FIFO 宽度为 256bit,两者不
成整数倍关系。这里解决办法是把各个数据通道的 12bit 扩展成 16bit,然后分别保存
至小的 FIFO 里,再用一个 FIFO 输出 256bit 的数据宽度。数据流缓存框图如图 4.3 所
示。其中,FIFO1~FIFO4 是读写位宽都为 16bit 的同步 FIFO,FIFO 时钟为 ADC 芯片
出来的 DCLK+/-时钟,经差分转单端后的时钟,4 个 FIFO 输出的数据写入至 FIFO5
里面,FIFO5 是写数据位宽为 64bit,读数据位宽为 256bit 的异步 FIFO,可以直接与
DDR3 SDRAM 模块连接。

光纤接口采用 Aurora 协议,有 4 个通道,单通道速率为 10Gbps,总速率为 40Gbps。
光纤接口的数据传输时基于 Vivado 软件提供的 Aurora 协议的 IP 核实现,该 IP 核有
8B/10B 和 64B/66B 两种,分别对应相应的编码方式。本设计采用 64B/66B 编码,增
加了带宽利用率。核例化过程如图 4.4 所示。

例化核时,首先指定传输速率,这里设置为 10Gbps。根据硬件电路设计,这里
的参考时钟设置为 125MHz,传输采用全双工流模式,方便设计和使用。然后指定通
道在芯片上的映射关系。
例化后的核如图 4.5 所示。