劉正陽,劉音華,3,李孝輝,3,4
(1.中國科學(xué)院 國家授時(shí)中心,西安 710600;2.中國科學(xué)院大學(xué),北京 100049;3.中國科學(xué)院 時(shí)間基準(zhǔn)頻率重點(diǎn)實(shí)驗(yàn)室,西安 710600;4.中國科學(xué)院大學(xué) 天文與空間科學(xué)學(xué)院,北京 101048)
TDC(time-to-digital converter)是將時(shí)間間隔模擬量轉(zhuǎn)換為數(shù)字量的一種時(shí)間數(shù)字轉(zhuǎn)換器[1]。隨著科技的高速發(fā)展,時(shí)間數(shù)字轉(zhuǎn)換器已廣泛應(yīng)用于高能物理實(shí)驗(yàn)、通信、衛(wèi)星導(dǎo)航等諸多領(lǐng)域,且根據(jù)不同的應(yīng)用場合,對(duì)其測量精度也提出了越來越高的要求。
為了提升時(shí)間數(shù)字轉(zhuǎn)換分辨率,當(dāng)前的主流方法大致分為兩種,一種是將待測時(shí)間“放大”,在現(xiàn)有的分辨率下進(jìn)行測量,比如時(shí)間延展法;另一種是尋找盡可能小的時(shí)間分度來測量時(shí)間間隔,比如時(shí)間內(nèi)插法。
利用延遲鏈技術(shù)的時(shí)間內(nèi)插方法,因其可以實(shí)現(xiàn)較高的時(shí)間精度,近些年來得到迅速的發(fā)展和應(yīng)用[2]。插值法將大步長計(jì)數(shù)和精密測量結(jié)合起來,既能獲得較大的動(dòng)態(tài)范圍,也能達(dá)到較高的時(shí)間精度。對(duì)于插值法,延時(shí)單元的一致性、精確度決定了TDC的時(shí)間分辨能力。
目前高分辨率的TDC主要是在ASIC芯片上實(shí)現(xiàn)的,但ASIC芯片價(jià)格昂貴,開發(fā)周期長。而基于FPGA(field-programmable gate array)芯片實(shí)現(xiàn)的TDC成本低,開發(fā)周期短,設(shè)計(jì)靈活,近年來受到廣泛關(guān)注[3]。
但是,基于FPGA芯片實(shí)現(xiàn)的TDC存在著較大的系統(tǒng)偏差,以基于FPGA加法進(jìn)位鏈的時(shí)間間隔測量系統(tǒng)為例,F(xiàn)PGA的工藝、儀器偏差、外部硬件電路的走線等都影響著測量結(jié)果。而這些偏差對(duì)于高精度時(shí)間間隔計(jì)數(shù)器而言,將會(huì)產(chǎn)生明顯的影響。
因此為了提高時(shí)間間隔測量系統(tǒng)的性能,對(duì)時(shí)間間隔測量系統(tǒng)的系統(tǒng)偏差進(jìn)行校準(zhǔn)是十分重要的,本文以Altera公司的Cyclone IV EP4CGX150DF31C7為實(shí)驗(yàn)芯片,通過實(shí)驗(yàn)分析得出了系統(tǒng)偏差修正的合理方案,并計(jì)算出不同參考時(shí)鐘下的系統(tǒng)偏差擬合模型,進(jìn)一步提高測量的準(zhǔn)確度。
本文所研究的計(jì)數(shù)器采用的時(shí)間間隔測量基本思路如圖1所示,為兼顧量程和測量分辨率,將測量分為粗測量和細(xì)測量兩部分。
首先,粗測量測量起始信號(hào)和截止信號(hào)的時(shí)間間隔,由起始信號(hào)開門,以截止信號(hào)關(guān)門,在此時(shí)間段內(nèi),時(shí)基脈沖進(jìn)入計(jì)數(shù)器,若時(shí)基脈沖周期為TP,計(jì)數(shù)器指示值為N,則待測時(shí)間間隔粗測量結(jié)果為NTP[4]。
待測時(shí)間間隔的細(xì)測量包括兩個(gè)部分,一是測量開始信號(hào)上升沿相對(duì)于下一個(gè)基準(zhǔn)時(shí)鐘上升沿之間的時(shí)間間隔ΔT1,另一個(gè)是測量截止信號(hào)上升沿相對(duì)于下一個(gè)基準(zhǔn)時(shí)鐘上升沿之間的時(shí)間間隔ΔT2,本文所設(shè)計(jì)基于FPGA內(nèi)部加法進(jìn)位延遲鏈資源實(shí)現(xiàn)時(shí)間的精密內(nèi)插,從而實(shí)現(xiàn)ΔT1和ΔT2的細(xì)測量[5]。
圖1 時(shí)間間隔測量基本思路
細(xì)測量的基本延遲單元由加法進(jìn)位延遲鏈構(gòu)成,通過對(duì)延遲單元的個(gè)數(shù)進(jìn)行計(jì)數(shù)再乘以平均延遲即可獲得測量結(jié)果。以測量起始信號(hào)上升沿相對(duì)于下一個(gè)基準(zhǔn)時(shí)鐘上升沿之間的時(shí)間間隔ΔT1為例,如圖2所示,在FPGA內(nèi)設(shè)計(jì)一個(gè)串行多位加法器將專用進(jìn)位鏈級(jí)聯(lián),第一級(jí)加法器的兩個(gè)輸入端分別接Start信號(hào)和一個(gè)高電平信號(hào),其他加法器的兩個(gè)輸入端一個(gè)接高電平,一個(gè)接低電平,當(dāng)Start信號(hào)上升沿到來,進(jìn)位信號(hào)就能在所構(gòu)建的進(jìn)位鏈中傳播,通過一組D觸發(fā)器捕捉時(shí)鐘CLK上升沿到來時(shí)刻進(jìn)位信號(hào)所在的位置。如果進(jìn)位鏈上每個(gè)延時(shí)單元的延時(shí)已知,就可以求得Start上升沿和下一個(gè)的CLK上升沿之間的時(shí)間間隔。本文所構(gòu)建的加法進(jìn)位鏈級(jí)數(shù)為96級(jí),各進(jìn)位單元時(shí)延不完全相等,每級(jí)時(shí)延在30~68 ps之間,平均延時(shí)為42 ps,因此可以實(shí)現(xiàn)100 ps以下的測量分辨率。
圖2 細(xì)測量的基本原理
在計(jì)算各級(jí)進(jìn)位鏈時(shí)延的過程中,CLK信號(hào)到每個(gè)D觸發(fā)器時(shí)延的影響主要集中在第一級(jí)進(jìn)位鏈,這是因?yàn)镃LK信號(hào)到每個(gè)D觸發(fā)器的時(shí)延相同,當(dāng)信號(hào)傳播到第N級(jí)(N>1)進(jìn)位鏈時(shí),可以通過與信號(hào)傳播到第N-1級(jí)進(jìn)位鏈的時(shí)延進(jìn)行計(jì)算,得到抵消了CLK信號(hào)到D觸發(fā)器時(shí)延的第N級(jí)進(jìn)位鏈的時(shí)延,而第一級(jí)中CLK信號(hào)到D觸發(fā)器時(shí)延則計(jì)入到第一級(jí)進(jìn)位鏈時(shí)延中。由于測量截止信號(hào)與時(shí)鐘上升沿之間ΔT2的時(shí)間間隔原理與起始信號(hào)相同[6],因此在計(jì)算時(shí)間間隔測量結(jié)果T=NTp+ΔT1-ΔT2時(shí),這部分時(shí)延也在計(jì)算ΔT1-ΔT2的過程中抵扣,因此CLK信號(hào)到每個(gè)D觸發(fā)器的時(shí)延對(duì)測量結(jié)果不會(huì)產(chǎn)生影響。
本文中提出的FPGA設(shè)計(jì)在友晶公司的DE2i-150開發(fā)板上實(shí)現(xiàn),系統(tǒng)程序采用Verilog HDL語言。如圖3為開發(fā)板正面圖示,所使用的Altera公司的Cyclone IV EP4CGX150DF31C7為圖中右側(cè)所圈注示意的。開發(fā)板上配有SMA連接件,可支持外部參考時(shí)鐘的輸入。
基于FPGA的時(shí)間間隔測量系統(tǒng)的設(shè)計(jì)構(gòu)架如圖4所示。工作時(shí)鐘由外部輸入或板載晶振產(chǎn)生的10 MHz參考時(shí)鐘進(jìn)行倍頻產(chǎn)生,輸入到FPGA開發(fā)板的數(shù)模轉(zhuǎn)換電路,選用高穩(wěn)定度的原子鐘可以有效地保證參考時(shí)鐘信號(hào)的頻率穩(wěn)定度。具體實(shí)現(xiàn)時(shí)采用鎖相環(huán)對(duì)輸入的10 MHz參考時(shí)鐘進(jìn)行倍頻,輸出穩(wěn)定的125 MHz系統(tǒng)工作主時(shí)鐘。同時(shí),鎖相環(huán)模塊還需產(chǎn)生250 MHz的粗計(jì)數(shù)時(shí)鐘。鎖相環(huán)所產(chǎn)生的本片F(xiàn)PGA工作所需的系統(tǒng)主時(shí)鐘,是所有模塊工作的基礎(chǔ)[7]。
在開始測量前,信號(hào)整形電路實(shí)現(xiàn)對(duì)待測的開始和截止信號(hào)進(jìn)行整形、濾波和模數(shù)轉(zhuǎn)換,轉(zhuǎn)換成穩(wěn)定的數(shù)字信號(hào)后送給FPGA的測量起始信號(hào)與截止信號(hào)引腳,組成兩路測試通道進(jìn)行時(shí)間間隔測量。
根據(jù)上節(jié)時(shí)間間隔測量原理,本文所設(shè)計(jì)的時(shí)間間隔測量系統(tǒng)的測量功能采用粗測量和細(xì)測量相結(jié)合的思路。粗測量的工作時(shí)鐘頻率為250 MHz,周期為4 ns,位寬為28 bit,可以滿足1 s的量程指標(biāo)要求,此時(shí)誤差在正負(fù)1個(gè)時(shí)鐘周期。分辨率主要由細(xì)測量模塊的加法進(jìn)位延遲單元的時(shí)延所決定,因此采用基于FPGA進(jìn)位鏈的細(xì)測量模塊來對(duì)1個(gè)時(shí)鐘周期內(nèi)的時(shí)間間隔進(jìn)行測量,把測量誤差控制在1個(gè)時(shí)鐘周期以內(nèi)。
圖3 開發(fā)板正面示意圖
圖4 基于FPGA的時(shí)間間隔測量系統(tǒng)設(shè)計(jì)架構(gòu)框圖
校準(zhǔn)模塊采用4 MHz晶振作為校準(zhǔn)信號(hào)的產(chǎn)生源,校準(zhǔn)晶振的輸出頻率為4 MHz,為加法進(jìn)位延遲鏈提供校準(zhǔn)信號(hào),產(chǎn)生相對(duì)于FPGA內(nèi)部工作時(shí)鐘的隨機(jī)脈沖信號(hào),采用碼密度測試方法對(duì)加法進(jìn)位延遲鏈進(jìn)行校準(zhǔn),減少細(xì)測量模塊的測量誤差。
時(shí)間間隔測量系統(tǒng)在工作時(shí),通過主控模塊實(shí)現(xiàn)與FPGA的通信[8]。根據(jù)不同情況下的功能所需,CPU采用兩種接口方式實(shí)現(xiàn)與FPGA的數(shù)據(jù)通信,一種為寄存器尋址方式,使FPGA和CPU均可以訪問、讀寫,存儲(chǔ)內(nèi)容包括FPGA時(shí)間間隔測量結(jié)果,CPU向FPGA發(fā)送的各項(xiàng)指令數(shù)據(jù)等等。CPU和FPGA另一種接口方式為信號(hào)管腳直連方式,包括各種中斷信號(hào)和FPGA的全局復(fù)位信號(hào)。FPGA片內(nèi)的各個(gè)模塊的測試,主要由Quartus II的邏輯分析儀SignalTap 來實(shí)現(xiàn)數(shù)據(jù)采集和分析,使用QuartusII軟件可以在任何時(shí)間重新配置FPGA。
為了進(jìn)一步減少基于FPGA加法進(jìn)位鏈的時(shí)間間隔測量系統(tǒng)的測量誤差,提高測量精度,故在得到測量結(jié)果后仍需對(duì)其進(jìn)行偏差校正,為得出有效的系統(tǒng)偏差校準(zhǔn)方案,搭建了如圖5所示的測試平臺(tái)。
圖5 時(shí)間間隔測量系統(tǒng)測試平臺(tái)連接示意圖
移相電路板用于產(chǎn)生待測時(shí)間間隔,其工作芯片為EPM240T100C5N,上電后通過運(yùn)行在通用計(jì)算機(jī)上的程序來控制產(chǎn)生不同的待測時(shí)間間隔。其最小步進(jìn)為100 ns,產(chǎn)生時(shí)間間隔范圍為100~999,999,900 ns。
測試開始時(shí)需首先對(duì)待測時(shí)間間隔進(jìn)行標(biāo)校,標(biāo)校所使用的儀器為美國斯坦福公司的SR620時(shí)間間隔計(jì)數(shù)器,SR620在時(shí)間間隔測量方式下單次時(shí)間分辨率為25 ps,最小有效數(shù)據(jù)為4 ps。因其是當(dāng)前國際主流時(shí)間間隔測量儀器,測量精確度高于所設(shè)計(jì)計(jì)數(shù)器,故將其測量輸出的結(jié)果作為待測時(shí)間間隔的測量參考真值。
標(biāo)校開始時(shí),首先使用移相電路板產(chǎn)生已知時(shí)間間隔,將待測通道的開始與截止信號(hào)分別接入SR620進(jìn)行測量,均取1 min的觀測平均值作為該時(shí)間間隔的參考值。
將待測信號(hào)接入FPGA板,為了消除毛刺防止誤檢,輸入信號(hào)首先需經(jīng)過信號(hào)整形模塊進(jìn)行預(yù)處理,然后將整形后的起始信號(hào)與截止信號(hào)輸入到粗測量模塊和細(xì)測量模塊,對(duì)計(jì)數(shù)器的各通道進(jìn)行測量,每個(gè)時(shí)間間隔采樣時(shí)間均為1 min。測量結(jié)果按照規(guī)定的格式經(jīng)串口程序輸出到通用計(jì)算機(jī)[9]。
通用計(jì)算機(jī)作為FPGA開發(fā)板和數(shù)據(jù)采集軟件等的運(yùn)行平臺(tái),每當(dāng)FPGA加電時(shí)就可以實(shí)現(xiàn)與FPGA的通信。運(yùn)行在計(jì)算機(jī)上的程序?qū)?shù)據(jù)進(jìn)行解算處理,按照測量原理得到實(shí)際測量結(jié)果,與參考值進(jìn)行比對(duì),分析系統(tǒng)偏差[10]。
對(duì)于基于FPGA加法進(jìn)位鏈的時(shí)間間隔測量系統(tǒng)來說,儀器偏差一個(gè)主要來源是延遲鏈的延遲單元,因FPGA中的進(jìn)位鏈或其他邏輯資源形成的延遲單元都不是十分穩(wěn)定,另外型號(hào)不同、速度等級(jí)不同也會(huì)影響延遲,除此之外,由于生產(chǎn)制造工藝的影響,即使是同一型號(hào)的器件的延遲也一定存在著差異。
除了FPGA芯片,外部電路的走線、測量過程的準(zhǔn)確性同樣影響著測量結(jié)果。例如開始信號(hào)、截止信號(hào)在外部硬件電路中的走線延遲不可能完全相等,測量和校準(zhǔn)過程等存在不確定性,這些都會(huì)在最后的測量結(jié)果中引入系統(tǒng)偏差。
硬件線路的走線延遲與進(jìn)位鏈引入的偏差屬于穩(wěn)定的系統(tǒng)差,可以通過測量已知時(shí)間間隔來修正。實(shí)驗(yàn)發(fā)現(xiàn)TDC工作時(shí)鐘漂移引入的偏差并不是一個(gè)常量,隨著待測時(shí)間間隔的變化而變化,這種現(xiàn)象在高精度的TDC工作時(shí)鐘下并不明顯,例如氫鐘、銫鐘,但是對(duì)于銣鐘或是晶振作為工作時(shí)鐘時(shí),隨著測量時(shí)間間隔增加將表現(xiàn)得非常明顯。
為了得到有效的偏差修正方案,在測量范圍0~1 s內(nèi)對(duì)一系列時(shí)間間隔進(jìn)行測試,對(duì)系統(tǒng)偏差進(jìn)行分析。
圖6為銫鐘作為TDC工作時(shí)鐘時(shí)的不同待測時(shí)間間隔的系統(tǒng)偏差圖,圖中所示為取雙對(duì)數(shù)坐標(biāo)后的結(jié)果,縱坐標(biāo)為系統(tǒng)偏差,橫坐標(biāo)為待測時(shí)間間隔。此時(shí)偏差主要分布在350~650 ps之間左右,偏差平均值為514 ps,由圖可看出二者之間存在著線性關(guān)系。
圖6 銫鐘作為TDC工作時(shí)鐘時(shí)的系統(tǒng)偏差
圖7為銣鐘作為TDC工作時(shí)鐘時(shí)的不同待測時(shí)間間隔的系統(tǒng)偏差雙對(duì)數(shù)坐標(biāo)圖,此時(shí)系統(tǒng)偏差分布在200~900 ps之間,系統(tǒng)偏差平均值為555 ps。可以看出相比于銫鐘,隨著待測時(shí)間間隔的增加,銣鐘系統(tǒng)偏差的增大趨勢更為明顯。
圖7 銣鐘作為TDC工作時(shí)鐘時(shí)的系統(tǒng)偏差
由此可知,TDC工作時(shí)鐘的準(zhǔn)確度對(duì)TDC測量偏差有直接貢獻(xiàn),為降低不同準(zhǔn)確度的工作時(shí)鐘對(duì)TDC系統(tǒng)偏差的影響,提出一種線性擬合校準(zhǔn)系統(tǒng)偏差的方法。在一次線性擬合中,對(duì)于硬件電路延遲等引起的系統(tǒng)偏差將在常數(shù)項(xiàng)中得以校正,TDC工作時(shí)鐘的影響主要由一次項(xiàng)系數(shù)進(jìn)行校正。
為驗(yàn)證校正方案的有效性進(jìn)行了以下3組實(shí)驗(yàn):首先以銫鐘作為工作時(shí)鐘在量程范圍內(nèi)選取不同時(shí)間間隔進(jìn)行測試并得出一次擬合模型,其次以銣鐘作為工作時(shí)鐘在量程范圍內(nèi)選取不同時(shí)間間隔進(jìn)行測試并得出一次擬合模型,最后選取任意時(shí)間間隔對(duì)不同工作時(shí)鐘下的一次擬合模型進(jìn)行驗(yàn)證。
根據(jù)所測得的樣本數(shù)據(jù)通過最小二乘的方法建立一次模型,對(duì)于銫鐘來說擬合的直線方程為y=7.38×10-11x+486,其斜率為7.38×10-11。根據(jù)方程求出擬合后的系統(tǒng)偏差修正量,得到修正后的系統(tǒng)偏差,表1為以銫鐘作為TDC工作時(shí)鐘時(shí)的0~1 s測量范圍內(nèi)不同待測時(shí)間間隔的系統(tǒng)偏差與修正后結(jié)果的對(duì)比,通過一次線性擬合,將系統(tǒng)偏差降至100 ps以下。整個(gè)區(qū)間所有測試值的系統(tǒng)偏差擬合修正后的結(jié)果如圖8所示,此時(shí)整個(gè)測量范圍所有測試值的系統(tǒng)偏差平均值為39 ps。本文中所有系統(tǒng)偏差均指實(shí)際測量值減去標(biāo)校真值的結(jié)果,在對(duì)數(shù)坐標(biāo)系中作圖時(shí)負(fù)值使用絕對(duì)值表示。
表1 以銫鐘作為TDC工作時(shí)鐘時(shí)擬合修正情況 ps
圖8 整個(gè)區(qū)間內(nèi)銫鐘作為TDC工作時(shí)鐘時(shí)的系統(tǒng)偏差
對(duì)于銣鐘來說擬合的直線方程為y=4.78×10-10x+310,其斜率為4.78×10-10。表2為以銣鐘作為TDC工作時(shí)鐘時(shí)的0~1 s測量范圍內(nèi)不同待測時(shí)間間隔的系統(tǒng)偏差與修正結(jié)果的對(duì)比,可以看出,通過一次線性擬合其結(jié)果同樣得到顯著改善,此時(shí)系統(tǒng)偏差平均值為49 ps。整個(gè)區(qū)間所有測試值的系統(tǒng)偏差擬合后的結(jié)果如圖9所示。
表2 以銣鐘作為TDC工作時(shí)鐘時(shí)擬合修正情況 ps
圖9 整個(gè)區(qū)間內(nèi)銣鐘作為TDC工作時(shí)鐘時(shí)的系統(tǒng)偏差
除此之外,另取測量區(qū)間內(nèi)由小到大任意10組時(shí)間間隔進(jìn)行驗(yàn)證,結(jié)果分別如表3及表4所示。
表3 以銫鐘作為TDC工作時(shí)鐘時(shí)任意間隔修正后結(jié)果 ps
表4 以銣鐘作為TDC工作時(shí)鐘時(shí)任意間隔修正后結(jié)果 ps
綜上所述,本文所建立的一次模型可以有效的將偏差修正到100 ps以下。
本文通過探究基于FPGA的TDC系統(tǒng)偏差的修正方法,對(duì)基于Cyclone IV EP4CGX150DF31C7的時(shí)間間隔測量系統(tǒng)在使用銫鐘及銣鐘為工作時(shí)鐘時(shí)的不同測量結(jié)果進(jìn)行了分析,根據(jù)系統(tǒng)在整個(gè)測量范圍內(nèi)的偏差呈線性化趨勢,設(shè)計(jì)了一次擬合校正方法,通過不同實(shí)驗(yàn)對(duì)校正值進(jìn)行了測量,利用校正后的計(jì)數(shù)器進(jìn)行了測試實(shí)驗(yàn),驗(yàn)證了系統(tǒng)偏差修正方案的正確性,使系統(tǒng)偏差控制在100 ps以下,在實(shí)際應(yīng)用中,可將一次線性擬合模型參數(shù)寫入CPU以實(shí)現(xiàn)系統(tǒng)偏差校正,提高時(shí)間間隔測量的準(zhǔn)確度,更好地發(fā)揮芯片的性能。