文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)06-0069-04
0 引言
在高速數(shù)據(jù)傳輸中,,光鏈路由于在高帶寬、高精度通道,、小質(zhì)量,、無接地回路方面的優(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)通過一條從探測(cè)器到計(jì)數(shù)室之間的光纖進(jìn)行傳送,,一個(gè)串行轉(zhuǎn)換器把多路并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)并通過一根單一的光纖傳送數(shù)據(jù),;在接收側(cè),光接收器把串行數(shù)據(jù)還原成并行數(shù)據(jù),,并進(jìn)行解串行和解碼處理,,因而數(shù)據(jù)在傳輸之前必須用線性編碼處理。
在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,且不包括通過光纖的時(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)中線碼在芯片專用集成電路用于在輻照環(huán)境下實(shí)現(xiàn)線性編碼,、串行傳輸及光驅(qū)動(dòng)[8]。其前端讀出延時(shí)的長(zhǎng)短對(duì)于ATLAS 液氬量能器讀出系統(tǒng)來說十分重要,。本文基于Xilinx Kintex-7 FPGA實(shí)現(xiàn)的LOCic線性編碼給出其延時(shí)時(shí)間的測(cè)量方法和設(shè)計(jì)實(shí)現(xiàn)測(cè)量的過程并對(duì)編碼側(cè)和解碼側(cè)均進(jìn)行測(cè)量,、標(biāo)定,為用于ATLAS 實(shí)驗(yàn)升級(jí)中對(duì)該線性編碼系統(tǒng)性能標(biāo)定和LOCic設(shè)計(jì)提供了依據(jù),。
1 線性編碼的幀定義
LOCic線碼數(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 線性編解碼傳輸系統(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)串行化后輸出到線纜,。
解碼側(cè)的所有功能模塊都是工作在串并轉(zhuǎn)化器產(chǎn)生的320 MHz時(shí)鐘下,。串并轉(zhuǎn)化器(DeSerializer)把串行數(shù)據(jù)流轉(zhuǎn)換成16 bit的并行數(shù)據(jù),。然后由同步器(syncontroller)通過一個(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)利用軟件邏輯分析儀通過波形時(shí)數(shù)來獲取延時(shí)時(shí)鐘周期數(shù)預(yù)估延時(shí)大小[9]。
(2)通過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過程需要一個(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ù)正好開始于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分開來,這樣在示波器上很容易觀察到數(shù)據(jù)界限,。測(cè)量的波形結(jié)果如圖5中示波器波形,,可以看出示波器測(cè)試的結(jié)果和Chipscope分析儀數(shù)據(jù)對(duì)應(yīng),從而得出粗略的串行器延時(shí)為14.96 ns,。
要得到準(zhǔn)確的串行器延時(shí)還要考慮到測(cè)量鏈路上通過DC block和差分盒引起的線路延時(shí)的不同,,因此要測(cè)量出其延時(shí)差。
(5)差分盒與DC block間延時(shí)測(cè)量,。通過Si5338(時(shí)鐘發(fā)生器)產(chǎn)生的兩路信號(hào)A,、B輸入差分盒和DC block 進(jìn)入示波器測(cè)量?jī)陕沸盘?hào)的相位差如式(1)所示, 兩路信號(hào)反過來接入,得相位差如式(2)所示,。
其中,,tA指Si5338 A通道延時(shí),tB指Si5338 B通道延時(shí),,由于兩通道線纜一樣長(zhǎng),,線纜延時(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],,通過多次測(cè)量可以得出全鏈路延時(shí)在66.0 ns~68.9 ns之間。
3.2.3 解碼器側(cè)延時(shí)測(cè)量
從圖6解碼器側(cè)延時(shí)測(cè)量結(jié)構(gòu)圖中可以得到線碼解碼各模塊的延時(shí)值,。數(shù)據(jù)提取器為3個(gè)時(shí)鐘周期(9.375 ns),,解擾器為1個(gè)時(shí)鐘周期(3.125 ns),CRC 檢測(cè)器為1個(gè)時(shí)鐘周期(3.125 ns),。在圖3中通過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í)仿真來預(yù)估的,。在ASIC+Kintex-7上實(shí)現(xiàn)的延時(shí)時(shí)間測(cè)得延時(shí)不超過57.9 ns。發(fā)編解碼側(cè)在Kintex-7上時(shí)不超過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ù)的方法,,以及通過在FPGA固件設(shè)計(jì)增加測(cè)量脈沖及對(duì)數(shù)據(jù)的設(shè)計(jì)使得采用示波器能夠準(zhǔn)確測(cè)量出鏈路相關(guān)模塊延時(shí)的方法,從而準(zhǔn)確地測(cè)得LOCic線碼光纖鏈路傳輸系統(tǒng)的延時(shí)值,,標(biāo)定了此線性編碼的關(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.