系统软件设计
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
所示。