蔡?hào)|東,何在民,劉正陽(yáng),樊戰(zhàn)友,武文俊
基于碼密度法的FPGA進(jìn)位鏈時(shí)延標(biāo)定
蔡?hào)|東1,2,3,何在民1,2,3,劉正陽(yáng)1,2,3,樊戰(zhàn)友1,武文俊1,2,3
(1. 中國(guó)科學(xué)院 國(guó)家授時(shí)中心,西安 710600;2. 中國(guó)科學(xué)院 時(shí)間頻率基準(zhǔn)重點(diǎn)實(shí)驗(yàn)室,西安 710600;3. 中國(guó)科學(xué)院大學(xué),北京 100049)
現(xiàn)場(chǎng)可編程門陣列(FPGA)內(nèi)部專用進(jìn)位鏈資源可應(yīng)用于時(shí)間數(shù)字轉(zhuǎn)換(TDC)的高精度測(cè)量。各級(jí)專用進(jìn)位鏈的延遲時(shí)間很小,一般量級(jí)為數(shù)十皮秒至一百多皮秒?;贔PGA實(shí)現(xiàn)TDC精密測(cè)量要解決的一個(gè)核心問題是如何精確標(biāo)定各級(jí)進(jìn)位鏈的延遲時(shí)間,碼密度法是實(shí)現(xiàn)延遲時(shí)間標(biāo)定行之有效的手段之一?;贓P2S60F1020C4芯片,通過向進(jìn)位鏈輸入基準(zhǔn)時(shí)鐘周期范圍內(nèi)大量的隨機(jī)脈沖,經(jīng)統(tǒng)計(jì)處理得到每一級(jí)進(jìn)位鏈單元的延遲時(shí)間。測(cè)試表明,延遲時(shí)間測(cè)量的分辨率為42.6 ps。
現(xiàn)場(chǎng)可編程門陣列;時(shí)間數(shù)字轉(zhuǎn)換;碼密度法;時(shí)間間隔測(cè)量;專用進(jìn)位鏈
精密時(shí)間間隔測(cè)量技術(shù)在激光測(cè)距,核醫(yī)學(xué)影像,衛(wèi)星授時(shí)和高能物理實(shí)驗(yàn)等領(lǐng)域意義重大且應(yīng)用廣泛。為滿足上述領(lǐng)域的需求,時(shí)間間隔的測(cè)量分辨率需要達(dá)到亞納秒,甚至數(shù)十皮秒的量級(jí)[1]?,F(xiàn)場(chǎng)可編程門陣列(field-programmable gate array,F(xiàn)PGA)具有設(shè)計(jì)靈活、集成度高和門延遲小等優(yōu)點(diǎn)[2],使得基于FPGA的時(shí)間數(shù)字轉(zhuǎn)換(time-to-digital converter,TDC)電路的實(shí)現(xiàn)方法變得越來(lái)越通用[3-4]。
FPGA中相鄰位置的專用進(jìn)位鏈延遲很小,借助于一個(gè)多位加法器可以獲得均值小于100 ps的時(shí)間刻度,基于此,利用專用進(jìn)位鏈可以實(shí)現(xiàn)分辨率優(yōu)于百皮秒的精密時(shí)間測(cè)量,因此精確得到各級(jí)專用進(jìn)位鏈的延遲時(shí)間是實(shí)現(xiàn)精密時(shí)間測(cè)量技術(shù)的前提和關(guān)鍵?;贔PGA特定的物理結(jié)構(gòu),跨越LAB和半個(gè)LAB之間的進(jìn)位鏈延遲時(shí)間要遠(yuǎn)大于LE之間的延遲,其次,進(jìn)位鏈單元的延遲時(shí)間除了隨其位置的變化而變化,還受到供電電源電壓和所處環(huán)境溫度的影響而發(fā)生變化。對(duì)于相應(yīng)的影響,可以引入相關(guān)的校正系數(shù)來(lái)補(bǔ)償其影響,但是這種方法無(wú)疑會(huì)增加設(shè)計(jì)的復(fù)雜度和FPGA資源的占用[5-6]。筆者采用碼密度法來(lái)通過對(duì)延遲單元進(jìn)行測(cè)試,標(biāo)定出各個(gè)延遲單元的延遲時(shí)間,進(jìn)而可以實(shí)時(shí)校準(zhǔn)測(cè)量結(jié)果。
圖1 脈沖計(jì)數(shù)法的原理圖
顯而易見,基準(zhǔn)時(shí)鐘的頻率越高,脈沖計(jì)數(shù)法的測(cè)量越準(zhǔn)確,但是亞納秒級(jí)周期的基準(zhǔn)時(shí)鐘需要達(dá)到數(shù)GHz的頻率。由于技術(shù)和成本的限制,這種方法絕非上策?;贔PGA的TDC方法可以利用FPGA內(nèi)部的專用進(jìn)位延遲作為基本延遲單元,每個(gè)延遲單元的延遲時(shí)間在數(shù)十皮秒至一百多皮秒不等,可以大幅提高時(shí)間測(cè)量的分辨率。
圖2 基于FPGA進(jìn)位鏈的TDC方法
進(jìn)位鏈下方的一組D觸發(fā)器在Clock上升沿來(lái)臨后把各級(jí)加法器的輸出結(jié)果鎖存,通過確認(rèn)輸出結(jié)果中1—0跳變的位置即可判斷進(jìn)位信號(hào)在進(jìn)位鏈的位置。
因?yàn)榈讓游锢斫Y(jié)構(gòu)的關(guān)系,F(xiàn)PGA內(nèi)部專用進(jìn)位鏈的時(shí)延并非一成不變的。以設(shè)計(jì)采用的Stratix II系列器件為例,其最小邏輯單元稱為自適應(yīng)邏輯模塊(adaptive logic module,ALM),每個(gè)ALM可以進(jìn)行功能自適應(yīng)“等同于”兩個(gè)邏輯單元(logic element,LE),每8個(gè)ALM組成1個(gè)邏輯陣列塊(logic array blocks,LAB)。由于制造工藝的限制,LAB與LAB之間的信號(hào)延遲時(shí)間遠(yuǎn)遠(yuǎn)大于LAB內(nèi)部LE與LE之間的時(shí)延,這就從根本上決定了多級(jí)進(jìn)位鏈延遲時(shí)間的收斂性不一致。實(shí)際的測(cè)量結(jié)果也表明,每8個(gè)LE會(huì)產(chǎn)生一個(gè)較大的延遲時(shí)間,且跨越LAB的延遲也略大于半個(gè)LAB的延遲。LAB的構(gòu)成如圖3(a)所示。各個(gè)延遲單元的延遲時(shí)間可以通過查看Quartus II軟件中的Timequest得到,如圖3(b)跨越LAB的延遲時(shí)間為231 ps,半個(gè)LAB之間的為111 ps,其余LAB內(nèi)部的為41 ps。然而,實(shí)際延遲時(shí)間受到溫度和電壓的影響,軟件提供的只是理論上的參考值。每一級(jí)延遲單元的理論參考延遲時(shí)間和實(shí)際延遲時(shí)間的微小差異,都可能會(huì)因?yàn)槔奂佣糯髮?dǎo)致最終計(jì)算的累計(jì)時(shí)間產(chǎn)生較大的偏差。因此,準(zhǔn)確、實(shí)時(shí)的標(biāo)定各個(gè)延遲單元實(shí)際的延遲時(shí)間對(duì)TDC測(cè)量時(shí)間間隔意義重大。
圖3 LAB的構(gòu)成及其內(nèi)部進(jìn)位鏈的延遲時(shí)間
圖4 碼密度法的原理示意圖
由式(4)可得下式:
碼密度法是基于輸入大量隨機(jī)脈沖而精確標(biāo)定各級(jí)延遲單元的延遲時(shí)間的方法,隨機(jī)脈沖和采樣時(shí)鐘的非相關(guān)性越大,各個(gè)延遲單元的延遲時(shí)間的標(biāo)定越準(zhǔn)確。為盡可能地滿足上述條件,應(yīng)使兩者的頻率不成整數(shù)倍的關(guān)系[7],應(yīng)選用抖動(dòng)和頻率漂移較大的頻率源作為隨機(jī)脈沖的輸入,應(yīng)使分頻后的測(cè)試時(shí)鐘有足夠長(zhǎng)的時(shí)間發(fā)生隨機(jī)變化,即測(cè)試時(shí)鐘頻率盡可能得小。
如圖5所示,質(zhì)量“較差”的頻率10 MHz恒溫晶振分頻出的0.07 MHz作為隨機(jī)脈沖的輸入,銣鐘產(chǎn)生10 MHz倍頻的125 MHz的時(shí)鐘作為TDC采樣信號(hào),TDC模塊測(cè)得兩者的延時(shí)結(jié)果由內(nèi)部邏輯分析儀采集和輸出。邏輯分析儀的采樣時(shí)鐘由銣鐘產(chǎn)生的10 MHz分頻的0.07 MHz提供,這樣確保了邏輯分析儀在每一個(gè)采樣時(shí)間輸出不同的采樣結(jié)果。內(nèi)部邏輯分析儀輸出的數(shù)據(jù)樣本個(gè)數(shù)為53 004個(gè),大于理論上的40 000個(gè)。
圖5 碼密度法時(shí)延校準(zhǔn)設(shè)計(jì)框圖
本實(shí)驗(yàn)選用的是Altera公司的Stratix II系列的EP2S60F1020C4芯片,其內(nèi)部的專用進(jìn)位的平均延遲時(shí)間略大于40 ps。由于采用的采樣時(shí)鐘周期為8 ns,盡可能使得進(jìn)位鏈占用整數(shù)個(gè)LAB,即進(jìn)位鏈的個(gè)數(shù)為16的整數(shù)倍,因此本實(shí)驗(yàn)設(shè)計(jì)選用192個(gè)進(jìn)位鏈。
在設(shè)計(jì)中,尤其要注意:①為避免每次編譯導(dǎo)致進(jìn)位鏈的位置發(fā)生變化,應(yīng)使用“LogicLock”對(duì)進(jìn)位鏈的位置進(jìn)行固定,如圖6所示,設(shè)計(jì)將串行多位進(jìn)位鏈邏輯鎖定在(X26,Y27~X26,Y38)這12個(gè)LAB內(nèi);②為避免Quartus II對(duì)加法器專用進(jìn)位鏈的優(yōu)化,以至于延遲信號(hào)未通過專用進(jìn)位鏈傳輸,對(duì)Optimization Technique的設(shè)置必須要勾選“Area”,如圖7所示,進(jìn)位鏈信號(hào)在專用進(jìn)位鏈上逐級(jí)傳遞。
圖6 底層邏輯資源圖
圖7 利用到專用進(jìn)位鏈的ALM
對(duì)53 004個(gè)數(shù)據(jù)樣本進(jìn)行處理,統(tǒng)計(jì)落在各個(gè)延遲單元的跳變的個(gè)數(shù),起始信號(hào)從輸入端口至進(jìn)位鏈起始段的延遲較大,導(dǎo)致落在第一級(jí)延遲單元的跳變個(gè)數(shù)高達(dá)4 672個(gè)。第二級(jí)的延遲時(shí)間很小且樣本數(shù)量不夠多又導(dǎo)致了落在該級(jí)延遲單元的跳變個(gè)數(shù)為0,其余各級(jí)的如圖8所示。跳變?cè)谘舆t鏈上最多傳遞了176級(jí),且第16,32,64,80等延遲單元的長(zhǎng)度略大于第8,24,40,56等延遲單元的長(zhǎng)度,第8,16,24,32級(jí)的長(zhǎng)度遠(yuǎn)大于其余各級(jí),這也和FPGA內(nèi)部的特性相符。
圖8 跳變落在各級(jí)延遲單元的個(gè)數(shù)
文章基于Altera的Stratix II系列芯片采用Quartus II軟件進(jìn)行開發(fā)設(shè)計(jì),采用多級(jí)加法器在FPGA內(nèi)部構(gòu)建了192級(jí)專用進(jìn)位鏈,使用碼密度法對(duì)各級(jí)進(jìn)位鏈延遲單元進(jìn)行測(cè)試分析,得到隨機(jī)脈沖在每一級(jí)延遲單元的延遲時(shí)間,完成了各級(jí)延遲單元的標(biāo)定。測(cè)試的結(jié)果符合理論預(yù)期,表明基于FPGA內(nèi)部專用進(jìn)位鏈級(jí)聯(lián)可以用于實(shí)現(xiàn)高精度時(shí)間測(cè)量。
[1] 安琪. 粒子物理實(shí)驗(yàn)中的精密時(shí)間間隔測(cè)量[J]. 核技術(shù), 2006, 29(6): 453-462.
[2] PAN W B, GONG G H, LI J M. A 20-ps time-to-digital converter (TDC) implemented in field-programmable gate array (FPGA) with automatic temperature correction[J]. IEEE Transactions on Nuclear Science, 2014, 61(3): 1468-1473.
[3] WU J Y. Several key issues on implementing delay line based TDCs using FPGAs[J]. IEEE Transactions on Nuclear Science, 2014, 57(3): 1543-1548.
[4] 賈云飛, 鐘志鵬, 許孟強(qiáng), 等. 基于碼密度法的時(shí)間數(shù)字轉(zhuǎn)換器非線性校正方法研究[J]. 測(cè)控技術(shù), 2015, 34(1): 142-145.
[5] 潘維斌. LHAASO實(shí)驗(yàn)高精度時(shí)間測(cè)量系統(tǒng)研究[D]. 北京: 清華大學(xué), 2014.
[6] 沈奇. 量子通信中的精密時(shí)間測(cè)量技術(shù)研究[D]. 合肥: 中國(guó)科學(xué)技術(shù)大學(xué), 2013.
[7] 黃海艦. 基于FPGA時(shí)間內(nèi)插技術(shù)的TDC設(shè)計(jì)[D]. 武漢: 華中師范大學(xué)物理科學(xué)與技術(shù)學(xué)院, 2013.
[8] 許孟強(qiáng). 基于FPGA進(jìn)位鏈的高精度測(cè)時(shí)儀研制[D]. 南京: 南京理工大學(xué), 2014.
[9] 方穗明, 王占倉(cāng). 碼密度法測(cè)量模數(shù)轉(zhuǎn)換器的靜態(tài)參數(shù)[J]. 北京工業(yè)大學(xué)學(xué)報(bào), 2006, 32(11): 977-981.
Calibration of FPGA carry chain delay based on code density method
CAI Dong-dong1,2,3, HE Zai-min1,2,3, LIU Zheng-yang1,2,3, FAN Zhan-you1, WU Wen-jun1,2,3
(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China;2. Key Laboratory of Time and Frequency Primary Standards, Chinese Academy of Sciences, Xi’an 710600, China;3. University of Chinese Academy of Sciences, Beijing 100049, China)
The dedicated carry chain resources inside the field-programmable gate array (FPGA) can be applied for the high-precision measurement of time-to-digital conversion (TDC). The delay time for dedicated carry chains at all levels is very tiny, typically ranging from a few tens of picoseconds to one hundred picoseconds. One of the key issues to be solved in FPGA based TDC precision measurement is how to calibrate the delay time in all stages of the carry chain accurately. The code density method is one of the most effective ways to implement the delay time calibration. Based on the EP2S60F1020C4 chip, a large number of random pulses within a certain period of time are input into the carry chain, and the delay time at each level of carry chain unit is obtained by statistical processing. Tests have shown that the resolution of the delay time measurement is 42.6 ps.
field-programmable gate array (FPGA);time-to-digital conversion (TDC); code density method; time interval measurement; dedicated carry chain
10.13875/j.issn.1674-0637.2019-03-0240-08
2019-01-20;
2019-03-22
中國(guó)科學(xué)院“西部之光”人才培養(yǎng)計(jì)劃西部青年學(xué)者A類資助項(xiàng)目(XAB2017A05);國(guó)家自然科學(xué)基金資助項(xiàng)目(11703030)
蔡?hào)|東,男,碩士,主要從事精密時(shí)間測(cè)量研究。