文獻標識碼: 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.