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