本文主要是介绍基于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 所示。
这篇关于基于ZYNQ的PCIE高速数据采集卡的设计(四)软件设计,Aurora 协议逻辑设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!