文献标识码:A
文章编号: 0258-7998(2015)06-0069-04
0 引言
在高速数据传输中,光链路由于在高带宽、高精度通道、小质量、无接地回路方面的优势已被广泛应用于大型强子对撞机(LHC)实验[1-2]中。光链路在LHC实验中一个典型的应用如图1所示。在发射侧,光发射器将电信号转化成光信号,信号通过一条从探测器到计数室之间的光纤进行传送,一个串行转换器把多路并行数据转换成串行数据并通过一根单一的光纤传送数据;在接收侧,光接收器把串行数据还原成并行数据,并进行解串行和解码处理,因而数据在传输之前必须用线性编码处理。
在LHC实验中,除了具有挑战性的辐射耐受性要求,延时长短也是一个重要的指标,当触发系统采用光链路方案时,通常首选一个较短的延时,以便让存储数据的事件缓冲区可以更小[3-4]。当升级部分子探测器读出系统而另外一部分子探测器保留不升级时,新的子探测器延时必须不多于现存的子探测器延时。在ATLAS 液氩量能器读出系统中光链路的延时预算设计为150 ns,且不包括通过光纤的时间[5]。因此针对已设计出的光链路高速传输系统准确地测量其各模块延时对于选择和设计及优化光链路传输系统具有重要意义。
芯片链路(Link-on-Chip,LOC)是针对LHC ATLAS项目中更新的每FEB2 100 Gb/s数据带宽的光纤链路设计项目的一个概念[6-7]。LOCic是针对ATLAS液氩量能器的前端读出系统中线码在芯片专用集成电路用于在辐照环境下实现线性编码、串行传输及光驱动[8]。其前端读出延时的长短对于ATLAS 液氩量能器读出系统来说十分重要。本文基于Xilinx Kintex-7 FPGA实现的LOCic线性编码给出其延时时间的测量方法和设计实现测量的过程并对编码侧和解码侧均进行测量、标定,为用于ATLAS 实验升级中对该线性编码系统性能标定和LOCic设计提供了依据。
1 线性编码的帧定义
LOCic线码数据帧格式如图2所示。其中帧头由固定的1010定界和同步,随后与H4~H7(2 bit PRBS5和2 bit PRBS7伪随机码)进行同步,并由这4 bit PRBS生成二进制识别计数(BCID),然后是8路14 bit AD数据,最后是8 bit CRC帧尾[5]。
2 线性编解码传输系统结构
LOCic编码侧工作在320 MHz的时钟下,112 bit的二进制数据由数据信号发生器模块产生。CRC模块根据112 bit二进制数生成8 bit CRC校验码;原始数据在传送前会放到加扰器模块中进行加扰。数据框架结合CRC、加扰数据和起始位组成如图2的数据帧,并由串转化器(Serializer)串行化后输出到线缆。
解码侧的所有功能模块都是工作在串并转化器产生的320 MHz时钟下。串并转化器(DeSerializer)把串行数据流转换成16 bit的并行数据。然后由同步器(syncontroller)通过一个状态器搜索帧边界,由数据提取器(DataExtrator)提取帧数据到不同的字段, 并基于同步器鉴定帧边界。BCID生成器从框架控制代码中PRBS字段计算12 bit BCID。解扰器还原最初的原始数据。CRC检查器验证CRC的每一帧恢复的原始数据[5]。
3延时测量方法设计
根据编码侧和解码侧结构延时测量设计分为测量方法与目标、测量方案两部分。
3.1 测量方法与目标
(1)利用软件逻辑分析仪通过波形时数来获取延时时钟周期数预估延时大小[9]。
(2)通过DSA72004对输入/输出的数据延时直接测量。
(3)测量目标。
在编码侧边,分别获取CRC和scrambler处理所需延时、build frame所需延时、Serializer所需延时,在解码侧边获取Deserializer延时,同步处理延时、数据提取延时、descrabler延时和CRC延时以及差分器与隔直模块间的延时差。
3.2 测量方案
测量软、硬件环境:LOCic FPGA模拟编码器及其解码器固件,基于Xilinx Kintex 7的KC705评估板,编码解码器工作在16 bit宽、320 MHz时钟下。
3.2.1 编码器侧延时测量
Xilinx Chipscope上编码和解码的波形如图3所示,此时编码和解码固件在同一块KC705评估板上。从图中可以看到scrambler延时是图3中的1→2(1 clock),“builder frame”延时是2→3,也是1 clock。从数据进入串行器到解码出数据的延时是图3中3→4,其延时是22个clock即68.75 ns。
为了获得编码侧FPGA中的“serializer”的延时,在图4中给出了编码侧延时测量结构图。具体采用以下方法和步骤:
(1)在固定位置产生一个脉冲(Tx_pulse)上升标记,如图5中所示,Chipscope中的”/Tx_pulse”波形及其对应在示波器DSA72004上看到的上跳波。
(2)根据Chipscope分析结果,已知scrambler过程需要一个clock,为便于使用示波器观察,去掉scrambler 功能但保持一个clock延时的操作。
(3)此时,由于去掉了scrambler,为保证串行高速传输的DC平衡,在BCID为0、1、2时(即0、1、2帧)数据设置为0xCCCC,其他各帧数据全部设为0xAAAA,这样便于用示波器进行观察。
(4)在Chipscope中可以看到串行化输入的gt0_txdata_i数据与Tx_pulse的上升沿是同时刻的。但在DSA72004示波器的波形图中,其波形数据与Tx_pulse是有时延的。具体测量与分析如下。
在图5(数据均是LSB在前)的Chipscope波形中, Tx_pulse上升沿时刻,串行化输出gt0_txdata_i数据正好开始于0x3333,之前是0xAEAF, 再之前是0x5555;由此,如果在示波器上找到“0x5555…0x5555,0x5555,0xAEAF,0x3333,0x3333,…”这样的序列,找到它与Tx_pulse上升沿的时间延时差就可以测量出串行器(serializer)的延时。从设计的测量用数据可以看到,在Tx_pulse 上各沿附近数据流是0b 010101010101….0101010101010101,0xAEAF,0b00110011001100110011…00110011…...,即左密右稀,中间用0xAEAF分开来,这样在示波器上很容易观察到数据界限。测量的波形结果如图5中示波器波形,可以看出示波器测试的结果和Chipscope分析仪数据对应,从而得出粗略的串行器延时为14.96 ns。
要得到准确的串行器延时还要考虑到测量链路上通过DC block和差分盒引起的线路延时的不同,因此要测量出其延时差。
(5)差分盒与DC block间延时测量。通过Si5338(时钟发生器)产生的两路信号A、B输入差分盒和DC block 进入示波器测量两路信号的相位差如式(1)所示, 两路信号反过来接入,得相位差如式(2)所示。
其中,tA指Si5338 A通道延时,tB指Si5338 B通道延时,由于两通道线缆一样长,线缆延时差为0。t差分盒指差分盒延时,tdc_block指DC block延时。T测1、T测2是示波器测得的相位差。
将式(1)和式(2)相加除以2可得到式(3):
实际测得:T测1=556 ps,T测2=628 ps。
所以t差分盒-tdc_block=592 ps,最后可得Serializer延时为14.96 ns-592 ps=14.4 ns。
3.2.2 编解码全链路传输延时测量
要测量编解码全链路传输延时,即测量图4中A点时刻到图6中D点时刻之间的延时,可采用DSA72004示波器测量Tx_pulse上升沿和Rx_pulse上升沿间的时间,测量得到全链路延时为68.9 ns。由于CDR除法操作的时钟不确定性[4],通过多次测量可以得出全链路延时在66.0 ns~68.9 ns之间。
3.2.3 解码器侧延时测量
从图6解码器侧延时测量结构图中可以得到线码解码各模块的延时值。数据提取器为3个时钟周期(9.375 ns),解扰器为1个时钟周期(3.125 ns),CRC 检测器为1个时钟周期(3.125 ns)。在图3中通过Xilinx Chipscope逻辑分析仪波形得出全链路延时是22个时钟周期,即68.75 ns;硬件示波器测量得到的全链路延时为66.0 ns~68.9 ns。根据图4和图6测量结构图可以计算出解串行器模块延时是28.467 ns~31.367 ns,即9.11~10.04 个时钟周期。
4 测量结果
整个链路的延时,包括基于ASIC编码发送侧和基于FPGA的接收侧,都是针对Kintex-7 FPGA的延时测量和ASIC编码发送侧的延时仿真来预估的。在ASIC+Kintex-7上实现的延时时间测得延时不超过57.9 ns。发编解码侧在Kintex-7上时不超过73.9 ns。在两个例子中,延时都小于要求的一半,为设计留有很大的空间。
5 结论
本文给出了针对用于LHC ATLAS升级的LOCic FPGA固件编、解码侧的延时特性指标测量的软、硬件测量和设计方法,详细介绍了如何使用Xilinx Chipscope逻辑分析仪分析获取测试数据的方法,以及通过在FPGA固件设计增加测量脉冲及对数据的设计使得采用示波器能够准确测量出链路相关模块延时的方法,从而准确地测得LOCic线码光纤链路传输系统的延时值,标定了此线性编码的关键特性,为LOCic ASIC设计与使用提供了支持和依据。
参考文献
[1] GAN K K,VASEY F,WEIDBERG T.Joint ATLAS-CMS working group on optoelectronics for SLHC report from Sub-Group A: lessons learned and to be learned from LHC[J].Joint ATLAS/CMS NOTE,2007/000,Sep.2007[Online].http://indico.cern.ch/event/11994/session/7/material/paper/2?contribId=104.
[2] AMARAL L,DRIS S,GERARDIN A,et al.The versatile link,a common project for super-LHC[J].J.Instrum.,2009,4.
[3] ATLAS Collaboration.ATLAS liquid argon calorimeter Phase-I upgrade technical design report[N].CERN-LHCC-2013-017 and ATLAS-TDR-022,2013-9-20.
[4] Alberto Aloisio,Francesco Cevenini.High-speed,fixedlatency serial links with FPGAs for synchronous transfers[J].IEEE Transactions on Nuclear Science,2009,56(5):2864-2873.
[5] DENG B,HE M,LIU T,et al.A line code with quick-resynchronization capability and low latency for the optical data links of LHC experiments[J].Journal of Instrumentation,2014 JINST 9 P07020.
[6] Ye Jingbo.On behalf of the ATLAS liquid argon calorimeter group,a serializer ASIC at 5 Gbps for detector front-end electronics readout[J].Journal of Physics:Conference Series,2011(293):1-6.
[7] GONG D.A 16:1 serializer ASIC for data transmission at 5 Gbps[C].Topical Workshop on Electronics for Particle Physics,2010,Aachen,Germany.
[8] Liu Tiankuan,Gong Datao,Mengxun He,et al.A low-latency,low-overhead, quick resynchronization line code for the optical data links of the ATLAS liquid argon calorimeter upgrade[C].Topical Workshop on Electronics for Particle Physics Oxford(TWEPP-12),UK,2012,9.
[9] 郭宝锋,韩壮志.基于嵌入式逻辑分析仪SignalTapII的系统调试技术研究[J].微计算机应用,2011(10):53-57.