文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)06-0069-04
0 引言
在高速數(shù)據(jù)傳輸中,光鏈路由于在高帶寬、高精度通道、小質(zhì)量、無(wú)接地回路方面的優(yōu)勢(shì)已被廣泛應(yīng)用于大型強(qiáng)子對(duì)撞機(jī)(LHC)實(shí)驗(yàn)[1-2]中。光鏈路在LHC實(shí)驗(yàn)中一個(gè)典型的應(yīng)用如圖1所示。在發(fā)射側(cè),光發(fā)射器將電信號(hào)轉(zhuǎn)化成光信號(hào),信號(hào)通過(guò)一條從探測(cè)器到計(jì)數(shù)室之間的光纖進(jìn)行傳送,一個(gè)串行轉(zhuǎn)換器把多路并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)并通過(guò)一根單一的光纖傳送數(shù)據(jù);在接收側(cè),光接收器把串行數(shù)據(jù)還原成并行數(shù)據(jù),并進(jìn)行解串行和解碼處理,因而數(shù)據(jù)在傳輸之前必須用線(xiàn)性編碼處理。
在LHC實(shí)驗(yàn)中,除了具有挑戰(zhàn)性的輻射耐受性要求,延時(shí)長(zhǎng)短也是一個(gè)重要的指標(biāo),當(dāng)觸發(fā)系統(tǒng)采用光鏈路方案時(shí),通常首選一個(gè)較短的延時(shí),以便讓存儲(chǔ)數(shù)據(jù)的事件緩沖區(qū)可以更小[3-4]。當(dāng)升級(jí)部分子探測(cè)器讀出系統(tǒng)而另外一部分子探測(cè)器保留不升級(jí)時(shí),新的子探測(cè)器延時(shí)必須不多于現(xiàn)存的子探測(cè)器延時(shí)。在ATLAS 液氬量能器讀出系統(tǒng)中光鏈路的延時(shí)預(yù)算設(shè)計(jì)為150 ns,且不包括通過(guò)光纖的時(shí)間[5]。因此針對(duì)已設(shè)計(jì)出的光鏈路高速傳輸系統(tǒng)準(zhǔn)確地測(cè)量其各模塊延時(shí)對(duì)于選擇和設(shè)計(jì)及優(yōu)化光鏈路傳輸系統(tǒng)具有重要意義。
芯片鏈路(Link-on-Chip,LOC)是針對(duì)LHC ATLAS項(xiàng)目中更新的每FEB2 100 Gb/s數(shù)據(jù)帶寬的光纖鏈路設(shè)計(jì)項(xiàng)目的一個(gè)概念[6-7]。LOCic是針對(duì)ATLAS液氬量能器的前端讀出系統(tǒng)中線(xiàn)碼在芯片專(zhuān)用集成電路用于在輻照環(huán)境下實(shí)現(xiàn)線(xiàn)性編碼、串行傳輸及光驅(qū)動(dòng)[8]。其前端讀出延時(shí)的長(zhǎng)短對(duì)于ATLAS 液氬量能器讀出系統(tǒng)來(lái)說(shuō)十分重要。本文基于Xilinx Kintex-7 FPGA實(shí)現(xiàn)的LOCic線(xiàn)性編碼給出其延時(shí)時(shí)間的測(cè)量方法和設(shè)計(jì)實(shí)現(xiàn)測(cè)量的過(guò)程并對(duì)編碼側(cè)和解碼側(cè)均進(jìn)行測(cè)量、標(biāo)定,為用于ATLAS 實(shí)驗(yàn)升級(jí)中對(duì)該線(xiàn)性編碼系統(tǒng)性能標(biāo)定和LOCic設(shè)計(jì)提供了依據(jù)。
1 線(xiàn)性編碼的幀定義
LOCic線(xiàn)碼數(shù)據(jù)幀格式如圖2所示。其中幀頭由固定的1010定界和同步,隨后與H4~H7(2 bit PRBS5和2 bit PRBS7偽隨機(jī)碼)進(jìn)行同步,并由這4 bit PRBS生成二進(jìn)制識(shí)別計(jì)數(shù)(BCID),然后是8路14 bit AD數(shù)據(jù),最后是8 bit CRC幀尾[5]。
2 線(xiàn)性編解碼傳輸系統(tǒng)結(jié)構(gòu)
LOCic編碼側(cè)工作在320 MHz的時(shí)鐘下,112 bit的二進(jìn)制數(shù)據(jù)由數(shù)據(jù)信號(hào)發(fā)生器模塊產(chǎn)生。CRC模塊根據(jù)112 bit二進(jìn)制數(shù)生成8 bit CRC校驗(yàn)碼;原始數(shù)據(jù)在傳送前會(huì)放到加擾器模塊中進(jìn)行加擾。數(shù)據(jù)框架結(jié)合CRC、加擾數(shù)據(jù)和起始位組成如圖2的數(shù)據(jù)幀,并由串轉(zhuǎn)化器(Serializer)串行化后輸出到線(xiàn)纜。
解碼側(cè)的所有功能模塊都是工作在串并轉(zhuǎn)化器產(chǎn)生的320 MHz時(shí)鐘下。串并轉(zhuǎn)化器(DeSerializer)把串行數(shù)據(jù)流轉(zhuǎn)換成16 bit的并行數(shù)據(jù)。然后由同步器(syncontroller)通過(guò)一個(gè)狀態(tài)器搜索幀邊界,由數(shù)據(jù)提取器(DataExtrator)提取幀數(shù)據(jù)到不同的字段, 并基于同步器鑒定幀邊界。BCID生成器從框架控制代碼中PRBS字段計(jì)算12 bit BCID。解擾器還原最初的原始數(shù)據(jù)。CRC檢查器驗(yàn)證CRC的每一幀恢復(fù)的原始數(shù)據(jù)[5]。
3 延時(shí)測(cè)量方法設(shè)計(jì)
根據(jù)編碼側(cè)和解碼側(cè)結(jié)構(gòu)延時(shí)測(cè)量設(shè)計(jì)分為測(cè)量方法與目標(biāo)、測(cè)量方案兩部分。
3.1 測(cè)量方法與目標(biāo)
(1)利用軟件邏輯分析儀通過(guò)波形時(shí)數(shù)來(lái)獲取延時(shí)時(shí)鐘周期數(shù)預(yù)估延時(shí)大小[9]。
(2)通過(guò)DSA72004對(duì)輸入/輸出的數(shù)據(jù)延時(shí)直接測(cè)量。
(3)測(cè)量目標(biāo)。
在編碼側(cè)邊,分別獲取CRC和scrambler處理所需延時(shí)、build frame所需延時(shí)、Serializer所需延時(shí),在解碼側(cè)邊獲取Deserializer延時(shí),同步處理延時(shí)、數(shù)據(jù)提取延時(shí)、descrabler延時(shí)和CRC延時(shí)以及差分器與隔直模塊間的延時(shí)差。
3.2 測(cè)量方案
測(cè)量軟、硬件環(huán)境:LOCic FPGA模擬編碼器及其解碼器固件,基于Xilinx Kintex 7的KC705評(píng)估板,編碼解碼器工作在16 bit寬、320 MHz時(shí)鐘下。
3.2.1 編碼器側(cè)延時(shí)測(cè)量
Xilinx Chipscope上編碼和解碼的波形如圖3所示,此時(shí)編碼和解碼固件在同一塊KC705評(píng)估板上。從圖中可以看到scrambler延時(shí)是圖3中的1→2(1 clock),“builder frame”延時(shí)是2→3,也是1 clock。從數(shù)據(jù)進(jìn)入串行器到解碼出數(shù)據(jù)的延時(shí)是圖3中3→4,其延時(shí)是22個(gè)clock即68.75 ns。
為了獲得編碼側(cè)FPGA中的“serializer”的延時(shí),在圖4中給出了編碼側(cè)延時(shí)測(cè)量結(jié)構(gòu)圖。具體采用以下方法和步驟:
(1)在固定位置產(chǎn)生一個(gè)脈沖(Tx_pulse)上升標(biāo)記,如圖5中所示,Chipscope中的”/Tx_pulse”波形及其對(duì)應(yīng)在示波器DSA72004上看到的上跳波。
(2)根據(jù)Chipscope分析結(jié)果,已知scrambler過(guò)程需要一個(gè)clock,為便于使用示波器觀察,去掉scrambler 功能但保持一個(gè)clock延時(shí)的操作。
(3)此時(shí),由于去掉了scrambler,為保證串行高速傳輸?shù)腄C平衡,在BCID為0、1、2時(shí)(即0、1、2幀)數(shù)據(jù)設(shè)置為0xCCCC,其他各幀數(shù)據(jù)全部設(shè)為0xAAAA,這樣便于用示波器進(jìn)行觀察。
(4)在Chipscope中可以看到串行化輸入的gt0_txdata_i數(shù)據(jù)與Tx_pulse的上升沿是同時(shí)刻的。但在DSA72004示波器的波形圖中,其波形數(shù)據(jù)與Tx_pulse是有時(shí)延的。具體測(cè)量與分析如下。
在圖5(數(shù)據(jù)均是LSB在前)的Chipscope波形中, Tx_pulse上升沿時(shí)刻,串行化輸出gt0_txdata_i數(shù)據(jù)正好開(kāi)始于0x3333,之前是0xAEAF, 再之前是0x5555;由此,如果在示波器上找到“0x5555…0x5555,0x5555,0xAEAF,0x3333,0x3333,…”這樣的序列,找到它與Tx_pulse上升沿的時(shí)間延時(shí)差就可以測(cè)量出串行器(serializer)的延時(shí)。從設(shè)計(jì)的測(cè)量用數(shù)據(jù)可以看到,在Tx_pulse 上各沿附近數(shù)據(jù)流是0b 010101010101….0101010101010101,0xAEAF,0b00110011001100110011…00110011…...,即左密右稀,中間用0xAEAF分開(kāi)來(lái),這樣在示波器上很容易觀察到數(shù)據(jù)界限。測(cè)量的波形結(jié)果如圖5中示波器波形,可以看出示波器測(cè)試的結(jié)果和Chipscope分析儀數(shù)據(jù)對(duì)應(yīng),從而得出粗略的串行器延時(shí)為14.96 ns。
要得到準(zhǔn)確的串行器延時(shí)還要考慮到測(cè)量鏈路上通過(guò)DC block和差分盒引起的線(xiàn)路延時(shí)的不同,因此要測(cè)量出其延時(shí)差。
(5)差分盒與DC block間延時(shí)測(cè)量。通過(guò)Si5338(時(shí)鐘發(fā)生器)產(chǎn)生的兩路信號(hào)A、B輸入差分盒和DC block 進(jìn)入示波器測(cè)量?jī)陕沸盘?hào)的相位差如式(1)所示, 兩路信號(hào)反過(guò)來(lái)接入,得相位差如式(2)所示。
其中,tA指Si5338 A通道延時(shí),tB指Si5338 B通道延時(shí),由于兩通道線(xiàn)纜一樣長(zhǎng),線(xiàn)纜延時(shí)差為0。t差分盒指差分盒延時(shí),tdc_block指DC block延時(shí)。T測(cè)1、T測(cè)2是示波器測(cè)得的相位差。
將式(1)和式(2)相加除以2可得到式(3):
實(shí)際測(cè)得:T測(cè)1=556 ps,T測(cè)2=628 ps。
所以t差分盒-tdc_block=592 ps,最后可得Serializer延時(shí)為14.96 ns-592 ps=14.4 ns。
3.2.2 編解碼全鏈路傳輸延時(shí)測(cè)量
要測(cè)量編解碼全鏈路傳輸延時(shí),即測(cè)量圖4中A點(diǎn)時(shí)刻到圖6中D點(diǎn)時(shí)刻之間的延時(shí),可采用DSA72004示波器測(cè)量Tx_pulse上升沿和Rx_pulse上升沿間的時(shí)間,測(cè)量得到全鏈路延時(shí)為68.9 ns。由于CDR除法操作的時(shí)鐘不確定性[4],通過(guò)多次測(cè)量可以得出全鏈路延時(shí)在66.0 ns~68.9 ns之間。
3.2.3 解碼器側(cè)延時(shí)測(cè)量
從圖6解碼器側(cè)延時(shí)測(cè)量結(jié)構(gòu)圖中可以得到線(xiàn)碼解碼各模塊的延時(shí)值。數(shù)據(jù)提取器為3個(gè)時(shí)鐘周期(9.375 ns),解擾器為1個(gè)時(shí)鐘周期(3.125 ns),CRC 檢測(cè)器為1個(gè)時(shí)鐘周期(3.125 ns)。在圖3中通過(guò)Xilinx Chipscope邏輯分析儀波形得出全鏈路延時(shí)是22個(gè)時(shí)鐘周期,即68.75 ns;硬件示波器測(cè)量得到的全鏈路延時(shí)為66.0 ns~68.9 ns。根據(jù)圖4和圖6測(cè)量結(jié)構(gòu)圖可以計(jì)算出解串行器模塊延時(shí)是28.467 ns~31.367 ns,即9.11~10.04 個(gè)時(shí)鐘周期。
4 測(cè)量結(jié)果
整個(gè)鏈路的延時(shí),包括基于ASIC編碼發(fā)送側(cè)和基于FPGA的接收側(cè),都是針對(duì)Kintex-7 FPGA的延時(shí)測(cè)量和ASIC編碼發(fā)送側(cè)的延時(shí)仿真來(lái)預(yù)估的。在ASIC+Kintex-7上實(shí)現(xiàn)的延時(shí)時(shí)間測(cè)得延時(shí)不超過(guò)57.9 ns。發(fā)編解碼側(cè)在Kintex-7上時(shí)不超過(guò)73.9 ns。在兩個(gè)例子中,延時(shí)都小于要求的一半,為設(shè)計(jì)留有很大的空間。
5 結(jié)論
本文給出了針對(duì)用于LHC ATLAS升級(jí)的LOCic FPGA固件編、解碼側(cè)的延時(shí)特性指標(biāo)測(cè)量的軟、硬件測(cè)量和設(shè)計(jì)方法,詳細(xì)介紹了如何使用Xilinx Chipscope邏輯分析儀分析獲取測(cè)試數(shù)據(jù)的方法,以及通過(guò)在FPGA固件設(shè)計(jì)增加測(cè)量脈沖及對(duì)數(shù)據(jù)的設(shè)計(jì)使得采用示波器能夠準(zhǔn)確測(cè)量出鏈路相關(guān)模塊延時(shí)的方法,從而準(zhǔn)確地測(cè)得LOCic線(xiàn)碼光纖鏈路傳輸系統(tǒng)的延時(shí)值,標(biāo)定了此線(xiàn)性編碼的關(guān)鍵特性,為L(zhǎng)OCic ASIC設(shè)計(jì)與使用提供了支持和依據(jù)。
參考文獻(xiàn)
[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,F(xiàn)rancesco 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的系統(tǒng)調(diào)試技術(shù)研究[J].微計(jì)算機(jī)應(yīng)用,2011(10):53-57.