鄧彬偉,劉崇漢
(1.湖北理工學(xué)院 電氣與電子信息工程學(xué)院,湖北 黃石435003;2.南方衛(wèi)理公會大學(xué) 物理系,德克薩斯州 達(dá)拉斯75275)
在高輻射下的高速傳輸問題則是目前國內(nèi)外,特別是高能物理實驗方面要解決的關(guān)鍵問題之一[1-3]。歐洲核子中心的LHC (大型強(qiáng)子對撞機(jī))項目正面臨這一挑戰(zhàn)[4,5]。LOC即芯片鏈路 (link-on-chip)是針對LHC ATLAS項目中更新的每FEB2 100Gbps數(shù)據(jù)帶寬的光纖鏈路設(shè)計項目的一個概念[6,7]。其中,LOCic是針對ATLAS液氬量能器前端電子單元的一個兩通道耐輻射低功耗高速串行傳輸器[8]。它針對前端系統(tǒng)的AD 采樣數(shù)據(jù)進(jìn)行組幀,接著通過高速串行化單元后使用光纖進(jìn)行每通道高達(dá)5Gpbs的傳輸。由于在強(qiáng)微粒子輻射環(huán)境下發(fā)送數(shù)據(jù)時,數(shù)據(jù)流中會發(fā)生數(shù)據(jù)位上的連續(xù)多位差錯和數(shù)據(jù)流位滑動錯誤,因而在后端需通過解碼和數(shù)據(jù)恢復(fù)處理。針對以上情況,本文基于Stratix II GX FPGA 設(shè)計了模擬以上差錯現(xiàn)象的差錯注入器,用于后端數(shù)據(jù)解碼和恢復(fù)系統(tǒng)的設(shè)計與測試。整個差錯注入器通過按鍵控制和模擬可預(yù)置突發(fā)的數(shù)據(jù)流中1位和多位差錯、數(shù)據(jù)流的1次和多次1位左或右移位滑動。在Stratix II GX FPGA開發(fā)板上采用高可靠的SignalTapII[9,10]進(jìn)行大量測試和實驗,結(jié)果表明差錯注入器有效可行。
圖1給出了LOCic FPGA 系統(tǒng)總圖。LOCic FPGA 整體系統(tǒng)由ADC 數(shù)據(jù)產(chǎn)生器、數(shù)據(jù)幀生成和數(shù)據(jù)差錯注入器、高速串行器組成數(shù)據(jù)編碼端,通過高速光纖進(jìn)入數(shù)據(jù)解碼端,由高速解串行器、解幀器和差錯檢測器等組成。本文專門針對數(shù)據(jù)差錯注入器部分的設(shè)計與實現(xiàn)及測試過程進(jìn)行介紹。全文將從LOCic數(shù)據(jù)幀格式、模擬數(shù)據(jù)生成原理與設(shè)計,F(xiàn)PGA在板測試、SignalTapII測試結(jié)果分析等幾方面展開。圖2給出帶差錯注入器的數(shù)據(jù)編碼端在FPGA中實現(xiàn)的RTL。
圖1 LOCic FPGA 系統(tǒng)總圖
圖2 FPGA 數(shù)據(jù)編碼端RTL
圖3給出了差錯注入器功能總圖。差錯注入器包括原始數(shù)據(jù)流產(chǎn)生器、數(shù)據(jù)流n位差錯產(chǎn)生器、1~15位數(shù)據(jù)左移滑動1位產(chǎn)生器、1~15位數(shù)據(jù)右移滑動1位產(chǎn)生器、數(shù)據(jù)左移滑動16位產(chǎn)生器、數(shù)據(jù)右移滑動16位產(chǎn)生器和差錯控制按鍵組成。
圖3 差錯注入器功能
開發(fā)板采用Stratix II GX EP2SGX90EF1152C3FPGA,LE有90960個,16個傳輸器通道,傳輸速率可高達(dá)6.375Gbps,PLLs 8個,用戶IO口650個,板上25MHz和156.25MHz時鐘上,6個用戶定義的S1-S6按鍵式開關(guān)等功能[11]。
LOCic數(shù)據(jù)幀格式如圖4 所示。其中幀頭由固定的1010定界并后跟H4-H7相關(guān)偽隨機(jī)碼進(jìn)行同步,然后是八路14位AD 數(shù)據(jù),最后是8位CRC幀尾。因而一幀由8位幀頭、112位數(shù)據(jù)和8位CRC幀尾的128位組成。
為便于在ALTERA的SignalTap II中分析數(shù)據(jù)流,采用了4位二進(jìn)制數(shù)從0b0000~0b1111組成的64位數(shù)據(jù)序列從中每次取112位做為數(shù)據(jù)循環(huán)產(chǎn)生,這112位加上8位header和8位CRC值構(gòu)成一個數(shù)據(jù)幀每一個時鐘產(chǎn)生16bits。
采用如上的模擬數(shù)據(jù)是基于以下三點:
(1)在進(jìn)行數(shù)據(jù)解碼端設(shè)計、調(diào)試和測試時需要對二進(jìn)制位流進(jìn)行分析,需要有一定的數(shù)據(jù)規(guī)律便于狀態(tài)機(jī)的設(shè)計與實現(xiàn)。
(2)當(dāng)沒有采用scrambler時,以高達(dá)5Gpbs的速率在GTX 中傳輸如果出現(xiàn)過多的連續(xù)的1或0,高速串行傳輸不能工作。
(3)每7個字中插入幀頭和CRC 組成的幀使得幀中的數(shù)據(jù)有一定長度并有周期變化也有利于幀界區(qū)分進(jìn)行調(diào)試。
(1)產(chǎn)生1-128bit差錯
直接根據(jù)按鍵設(shè)置值對源幀數(shù)據(jù)流的數(shù)據(jù)相應(yīng)位取反實現(xiàn)。
(2)1~15位數(shù)據(jù)左、右移滑動1位產(chǎn)生器
圖4 LOCic的數(shù)據(jù)幀格式
從一個時鐘16位位寬數(shù)據(jù)構(gòu)造成一個時鐘為32位位寬的數(shù)據(jù)。實現(xiàn)在一個時鐘內(nèi)1~15位中任意位的1位滑動。構(gòu)造32位數(shù)據(jù)是因為在產(chǎn)生數(shù)據(jù)左或右移時需要預(yù)測前1~15位數(shù)據(jù)。
(3)通過對時鐘上的數(shù)據(jù)延時實現(xiàn)數(shù)據(jù)的16 位右移滑動。
(4)通過對產(chǎn)生數(shù)據(jù)流的提前操作和控制實現(xiàn)數(shù)據(jù)流16位左移滑動。
(1)拼接32位位寬數(shù)據(jù)
data32[31:00]<={data[15:0],data32[31:16]};(2)1-128bit差錯產(chǎn)生
通過S3,S4按鈕設(shè)置StartCnt寄存器值和PosCnt寄存器值產(chǎn)生需在數(shù)據(jù)流中產(chǎn)生差錯的起始位和結(jié)束位置,并通過S6 按鈕觸發(fā)操作。在代碼實現(xiàn)上通過2 個嵌套的case語句來實現(xiàn)。
(3)1位左或右移滑動
通過S2和S3按鈕來分別產(chǎn)生左、右移觸發(fā),每按一次數(shù)據(jù)流就發(fā)生一次1位移位。并使用ShiftCnt寄存器記錄移位值。相應(yīng)操作采用case語句針對ShiftCnt的值來確定從data32中那一位的數(shù)據(jù)開始取16位做為數(shù)據(jù)輸出。
(4)數(shù)據(jù)16位右移滑動
時鐘上的數(shù)據(jù)延時在實現(xiàn)上實際就是在ShiftCnt值出現(xiàn)從0xf到0x0變化時,保持上一操作不變即相當(dāng)于在2個時鐘上執(zhí)行了一次操作,來實現(xiàn)數(shù)據(jù)16右移滑動。如表1所示當(dāng)在數(shù)據(jù)D1發(fā)生16位右移滑動時,在第1,2這2個時鐘均出現(xiàn)D1,這樣在相同時鐘時刻數(shù)據(jù)流中的數(shù)據(jù)相對原數(shù)據(jù)右移16位。
表1 數(shù)據(jù)16位右移滑動時數(shù)據(jù)流情況
(5)數(shù)據(jù)16位左移滑動
為簡單起見把連續(xù)7個16位數(shù)據(jù)及幀界 (即8位CRC和后一幀的8位幀頭)看成一個整體128位每個16位對應(yīng)一個時鐘。表2 給出了數(shù)據(jù)16 位左移滑動時的數(shù)據(jù)流情況。由數(shù)據(jù)流的變化,需要在組幀時,提前給出下一個域的數(shù)據(jù),同時在填加幀界時刻也需要提前。在FPGA 實現(xiàn)上通過組幀計數(shù)寄存器和控制域寄存器的變化來實現(xiàn)16位超前前移。
表2 數(shù)據(jù)16位左移滑動時的數(shù)據(jù)流情況
硬件:Stratix II GX 開 發(fā) 板。軟 件:Quartus II 12.1 64位。
未按鍵注入差錯時的LOCic FPGA 系統(tǒng)的SignalTapII波形如圖5 所示。未移位之前因電路時序原因原始數(shù)據(jù)source-data與差錯注入后將送入GTX 進(jìn)行串行化處理的數(shù)據(jù)流sdata相差5個時鐘。
SignalTapII:波形圖中寄存器說明如下:
Source_data:按數(shù)據(jù)幀格式生成的原始數(shù)據(jù)流
Sdata:差錯注入后將送入GTX 進(jìn)行串行化處理的數(shù)據(jù)流
圖5 未按鍵注入差錯時的LOCic FPGA 系統(tǒng)的SignalTapII波形
StartCnt:由S4按鍵設(shè)置的產(chǎn)生差錯的起始位置位。
PosCnt:由S5按鍵設(shè)置的產(chǎn)生差錯的結(jié)束位置位。
ShiftCnt:左移或右移滑動操作后顯示的數(shù)據(jù)移位變化值。
Shift_counter:接收端移位控制寄存器。
Synch_status:接收端系統(tǒng)工作狀態(tài) (數(shù)值2 表示數(shù)據(jù)同步)。
Dataout:解碼并恢復(fù)后的數(shù)據(jù)流。
左移滑動前的數(shù)據(jù)情況如圖6 (a)、 (b)所示。圖6(b)中,1153 時鐘source_data 為1100010010000000,5個時鐘后的1158時鐘的sdata也為1100010010000,其它相應(yīng)位的source_data與sdata相一致,此時ShiftCnt為2h。當(dāng)發(fā)生數(shù)據(jù)1位左移滑動后的SignalTapII波形如圖6 (c)、(d) 所 示。 在 1153 時 鐘 時 刻 source _data 為1101010110010001,5個時鐘后的1158 時鐘位的sdata為110101011001000,ShiftCnt為1h,sdata數(shù)據(jù)流從原來的相對source_data滯后2bit,變?yōu)闇?bit,即相對原sdata數(shù)據(jù)流左移滑動了1bit。
圖6 數(shù)據(jù)1位左移滑動測試
右移滑動前的數(shù)據(jù)情況如圖5所示。1bit右移滑動后的SignalTapII波形如圖7所示。
圖7 (b)中1153 時 鐘 時 的 數(shù) 據(jù)source_data 是1001111010100000,后5個時鐘的sdata即1158 時鐘時的數(shù)據(jù)為1100111101010000,其第一位來自1157時鐘中的數(shù)據(jù)最后一位,自身的最后位進(jìn)入到1159時鐘的數(shù)據(jù)中的第1位??梢韵鄳?yīng)比較source_data和sdata數(shù)據(jù)流,可看到sdata相對應(yīng)的source_data在串行時間上遲滯了1位。
采用按鍵S6觸發(fā)捕獲方式來觀察。圖8 (a)中source_data在-6時鐘時的數(shù)據(jù)是89AB,觸發(fā)0-1位兩位錯(StartCnt=0,PosCnt=1)時,在5個時鐘后的sdata的數(shù)據(jù)為89A8,在圖8 (b)中對應(yīng)S6_down下降沿到達(dá)的第一個時鐘 (-1時鐘)時的對應(yīng)的sdataLSB 的2進(jìn)制顯示的確0-1位發(fā)生了變化。
圖9中給出了在FPGA LOCic中加入差錯注入器后在20GHz帶寬的DSA72004數(shù)字示波器上通過高速串行器高速串行輸出的5G 眼圖。
通過基于Stratix II GX FPGA 實現(xiàn)了模擬因電子輻射引起的差錯的狀況,采用SignalTapII驗證了差錯注入器設(shè)計的正確性,并為后端同步系統(tǒng)設(shè)計提供了支持,為整個的LOCic系統(tǒng)及解碼的開發(fā)打下了基礎(chǔ)。
圖7 數(shù)據(jù)1位右移滑動測試
圖8 位差錯測試
圖9 系統(tǒng)運行時的高速串行輸出的眼圖
基于FPGA 的高速數(shù)據(jù)流差錯注入器的設(shè)計,通過針對高輻射環(huán)境下引起的高速傳輸中數(shù)據(jù)發(fā)送端位差錯和位滑現(xiàn)象的FPGA 實現(xiàn),為LHC的ATLAS的液氬量能器的前端數(shù)據(jù)讀出系統(tǒng)的數(shù)據(jù)恢復(fù)和解碼設(shè)計提供了設(shè)計、測試與調(diào)試基礎(chǔ)。通過基于硬件的SignalTapII進(jìn)行驗證差錯注入器設(shè)計充分證明了差錯注入器電路設(shè)計的正確和可行性。目前其LOCic有關(guān)ASIC 部分即將流片,其接收解碼端也初步完成[12]。由于在差錯注入器部分設(shè)計重點放在差錯的注入方面,在FPGA 資源利用率、代碼結(jié)構(gòu)及優(yōu)化方面還需進(jìn)一步改進(jìn)。
[1]YANG Zhengjia,LIU Yingjie.Design and implementation of high-speed signal acquisition and storage and optical fiber transmission system [J].Application of Electronic Technique 2012(9):8-11 (in Chinese).[楊振家,劉穎杰.高速信號采集存儲及傳輸系統(tǒng)的設(shè)計與實現(xiàn) [J].電子技術(shù)應(yīng)用,2012 (9):8-11.]
[2]ZHOU Nan,WANG Zhigang.Design of fibre optic high-speed transmit-receive module of data acquisition card [J].Optical Communication Technology,2011 (12):28-31 (in Chinese).[周楠,王志剛.數(shù)據(jù)采集卡光纖高速收發(fā)模塊的設(shè)計 [J].光通信技術(shù)2011 (12):28-31.]
[3]Liang Futian,Chen Jinghong,Deng Binwei,et al.A 65-nm-CMOS-process-based 10-Gbps VCSEL driver [C]//Topical Workshop on Electronics for Particle Physics Perugia,2013.
[4]Moreira P,Christansen J,Wyllie K.The GBTX Link interface ASIC V1.7draft [EB/OL]. [2011-10-26].http://cern.ch/proj-gbt.
[5]Chen Hucheng.Readout electronics for the ATLAS LAR calorimeter at HL-LHC [C]//Technology and Instrumentation in Particle Physics,2011.
[6]Ye Jingbo.A serializer ASIC at 5Gbps for detector front-end electronics readout[J].Journal of Physics:Conference Series,2011,293 (1):1-6.
[7]Gong D.A 16:1serializer ASIC for data transmission at 5Gbps[C]//Presented at the Topical Workshop on Electronics for Particle Physics,2010:20-24.
[8]Liu Tiankuan,Gong Datao,He Mengxun,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,2012.
[9]YING Fangqin.Research of real-time monitoring method of internal signal in FPGA [J].China Modern Educational Equipment,2011 (1):70-71 (in Chinese).[應(yīng)芳琴.基于FPGA的內(nèi)部信號實時監(jiān)測方法研究 [J].中國現(xiàn)代教育裝備2011(1):70-71.]
[10]GUO Baofeng,HAN Zhuangzhi.Research of system debugging technology based on embedded logic analyzer SignalTapII[J].Microcomputer Applications,2011 (10):53-47 (in Chinese).[郭寶鋒,韓壯志.基于嵌入式邏輯分析儀Signal-TapII的系統(tǒng)調(diào)試技術(shù)研究 [J].微計算機(jī)應(yīng)用,2011 (10):53-57.]
[11]Cao T,Chang J.Design and verification of a bit error rate tester in Altera FPGA for optical link developments [J].Journal of Instrumentation,2010,5:1-5.
[12]Li Xiaoting,Chen Jinghong,Deng Binwei,et al.Optical data transmission ASIC for the ATLAS liquid argon calorimeter upgrade[C]//Topical Workshop on Electronics for Particle Physics Perugia,2013.