張青松,徐光輝,李 娜
(陸軍工程大學 研究生院,江蘇 南京 210007)
對時間精度測量的要求廣泛存在于通信工程、激光測距、醫(yī)學成像、科學計量等實際應(yīng)用中[1-3]。目前,時間數(shù)字轉(zhuǎn)換器(Time-to-digital Converter,TDC)是時間精準測量的一種基本方法,它通過將表示時間間隔的模擬信號轉(zhuǎn)換為數(shù)字信號這一途徑,實現(xiàn)對時間間隔的精確測量[4]。
由于時間測量技術(shù)自身高度依賴于所在系統(tǒng)的參考時鐘的特點,也就必然導致其測量分辨率由系統(tǒng)時鐘所限制。隨著分辨率的提高,無可避免的會提高系統(tǒng)的時鐘頻率,時間測量的分辨率如果提高到50 ps,那么相應(yīng)的時鐘頻率就要達到20 GHz的標準,這無疑會給硬件設(shè)計帶來巨大挑戰(zhàn)。此外,在高分辨率的工程應(yīng)用下,系統(tǒng)自身所帶有的非線性也會愈發(fā)的明顯,在測量設(shè)備的設(shè)計和使用中必須考慮到這一點。
目前,現(xiàn)下流行的時間數(shù)字轉(zhuǎn)換器系統(tǒng)的實現(xiàn)方式有兩種:利用CMOS實現(xiàn)的全定制ASIC-TDC和可編程邏輯門陣列實現(xiàn)的FPGA-TDC。其中,可編程邏輯門陣列實現(xiàn)的FPGA-TDC憑借其開發(fā)周期短、研發(fā)成本低、靈活性高的優(yōu)點,逐漸成為當下此類系統(tǒng)的首選方案。因此,本文采用主流Xilinx工具平臺(Vivado)在7系列FPGA(Field-Programmable Gate Array)芯片上構(gòu)建抽頭延遲線結(jié)構(gòu),從而實現(xiàn)高精度的TDC系統(tǒng)。
盡管通過延遲單元來構(gòu)建進位鏈結(jié)構(gòu)有其自身的優(yōu)勢,但與此同時也不可避免的帶來一些其他方面的問題。首先要面對的就是編譯工具本身[5]的特定屬性,使得底層硬件難以實現(xiàn)穩(wěn)定的進位鏈結(jié)構(gòu)。其次,可編程邏輯器件中最小延時單元的時間是不可控的,并且會根據(jù)溫度、電源電壓等實際外部因素[6]進行變化,這一問題可以通過對TDC系統(tǒng)進行偏差校準來加以解決。
本文將該系統(tǒng)分為粗測量部分和精測量部分,粗測量部分用來滿足系統(tǒng)對測量量程的要求,精細測量部分來保證對分辨率要求的設(shè)計。實際應(yīng)用中,針對粗測量部分的要求,普遍采用時鐘脈沖計數(shù)法,這是最簡單的測量方法。而精密測量部分則利用底層硬件搭建的延遲鏈,通過測量起始和結(jié)束信號的邊緣與基準時鐘邊緣之間的間隔來實現(xiàn)。
本文采用現(xiàn)下已經(jīng)很成熟的時間內(nèi)插技術(shù),通過7系列芯片中Slice單元中專用進位鏈CARRY4進行級聯(lián)來構(gòu)造抽頭延遲鏈結(jié)構(gòu),每個CARRY4器件內(nèi)部分布著18個端口(10個輸入和8個輸出端口)。其中,CYINIT成為開始信號的輸入端口,上一個器件的CIN口用來與下一級的CARRY4器件的CI輸入端口進行級聯(lián),通過這種方法,就可以在在底層硬件中固化成為足夠使用的延遲鏈結(jié)構(gòu)。CARRY4模塊內(nèi)部的具體構(gòu)造,如圖1所示。CARRY4的內(nèi)部由4個MUXCY和1個MUX組成,最多能引出4個由MUXCY作為基本延遲單元的抽頭端口。
圖1 CARRY4結(jié)構(gòu)
當start信號和stop信號的上升沿到來時,所發(fā)出的開始信號就能在構(gòu)造的延遲鏈中傳播,系統(tǒng)通過設(shè)立的多級觸發(fā)器來準確的捕捉信號的傳播位置,一旦某一級的觸發(fā)器輸出變?yōu)?,則說明輸入信號已傳播到此處。其中每級進位鏈的具體延時可由器件本身工藝來確定,于是就可求得開始信號與結(jié)束信號的時間間隔。TDC測量時序圖如圖2所示。
圖2 TDC測量時序
在系統(tǒng)的設(shè)計與實現(xiàn)的過程中,針對時間測量,有兩個非常重要的關(guān)鍵指標:數(shù)據(jù)精度的最小時間間隔和系統(tǒng)量程的最大時間間隔。通常為了達到設(shè)計需要,我們要求測量精度要達到皮秒級別的水平。另外,可以通過擴展Gray碼的位數(shù)來進行擴展量程。但是,實現(xiàn)細計數(shù)精度的提高則是一個相對復雜的過程,也是實際應(yīng)用中需要重點關(guān)注的地方。
根據(jù)實際要求,細測模塊的量程要達到5 ns(現(xiàn)有條件下的最高的時鐘參考頻率達到200 MHz),整個系統(tǒng)的時間分辨率應(yīng)小于100 ps。為測量信號留下10 ps的抖動空間。本文分析并結(jié)合現(xiàn)有實際,采用Xilinx工具在7系列FPGA芯片中實現(xiàn)TDC系統(tǒng),以滿足系統(tǒng)的實際要求。
本文設(shè)計的TDC系統(tǒng)如圖3所示,主要由延遲鏈模塊、兩級觸發(fā)器鎖存模塊、校準系統(tǒng)和編碼模塊等構(gòu)成。使用系統(tǒng)時鐘為200 MHz的底層硬件,通過配置255個延遲單元以滿足系統(tǒng)的實際需要。由于底層硬件的物理原因,導致各級器件的參考時鐘可能并不同步,一旦數(shù)據(jù)的0-1跳變發(fā)生在時鐘上升沿周圍,那么抽頭數(shù)據(jù)信號便無法滿足觸發(fā)器的建立和保持時間,就會出現(xiàn)亞穩(wěn)態(tài)現(xiàn)象。一旦出現(xiàn)亞穩(wěn)態(tài),就會造成系統(tǒng)測量錯誤甚至導致系統(tǒng)在短時內(nèi)無法正常工作,所以要盡可能避免此類情況發(fā)生的概率。
圖3 四通道TDC結(jié)構(gòu)
為了保證系統(tǒng)正常穩(wěn)定工作,文章通過將兩個觸發(fā)器級聯(lián)在一起的方式,充分利用了兩級觸發(fā)器特有的鎖存功能,可以有效的降低系統(tǒng)出現(xiàn)不穩(wěn)定狀態(tài)的概率。因為只要系統(tǒng)在第二級觸發(fā)器建立的時間前達到穩(wěn)定狀態(tài),即使前一級觸發(fā)器出現(xiàn)亞穩(wěn)態(tài),第二級觸發(fā)器鎖存的數(shù)據(jù)就依然是穩(wěn)定的。同時,采用觸發(fā)器鎖存技術(shù),還能夠靈活控制與之相關(guān)的溫度計編碼模塊的保持時間,使之不受系統(tǒng)時鐘頻率的制約,從而降低編碼電路的處理速度。
與此同時,為了進一步的提高了系統(tǒng)的測量精度,本文分別配有4條延遲鏈同時對待測信號進行測量,最后通過求平均值的方式來獲得最終的測量結(jié)果。
雖然編譯軟件的后仿可以大概模擬進位鏈的延遲數(shù)據(jù),但這只是一個估計值。實際研究表明,受底層硬件的物理特性的影響,各級延遲單元的延遲時間并不相同。隨著電壓和溫度等外部環(huán)境的變化,延遲單元也會隨之發(fā)生改變[7-8]。因此,實現(xiàn)數(shù)字系統(tǒng)轉(zhuǎn)換器的首要問題是怎樣實現(xiàn)和固化器件內(nèi)部的基本單元,并保持系統(tǒng)各個操作的一致性。另外,受頻率漂移和底層硬件布局布線的影響,會給測量數(shù)據(jù)帶來一定的誤差,必須加以校正,以提高系統(tǒng)的測量精度。
進位鏈的校準方式平均延遲校準和碼密度校準兩種。其中,前者是以各個延遲單元延遲時間相同為前提。然而,該方法是高度假設(shè)的,并且不對每個延遲單元執(zhí)行更精確的校準。當延遲單元的大小發(fā)生很大變化時,會導致較大的測量誤差,并大大降低系統(tǒng)的靈敏度。當進位鏈中的信號經(jīng)過LAB邊界或者半邊界時會導致該級延遲增大,從而影響最終的測量精度。因此,文章選擇第2種方式進行在線校準。
碼密度法是一種逐位校準的方法,用于測量每一個延遲單元的真實延遲時間。首先,使用大量均勻分布在一個時鐘周期內(nèi)的隨機脈沖作為TDC系統(tǒng)中要測量的輸入信號。由于輸入信號是隨機的,所以信號在落在一個周期內(nèi)任何一點上的概率是相等的。然后,記錄落在各級延遲單元上的次數(shù),并且當隨機事件的數(shù)量足夠大時,延遲時間會與事件的數(shù)量成正比,從而可以得出每個延遲單元的具體大小,計算公式如下:
第m個延遲單元采樣得到的實際次數(shù)為M,N為隨機事件的數(shù)量,Tm為第m個延遲單元的延遲時間。
利用碼密度法對系統(tǒng)進行校準的一個關(guān)鍵問題,就是確定隨機事件的具體數(shù)量N。雖然從數(shù)學的角度看,樣本數(shù)量當然是越多越好,但是數(shù)量太多會導致較長的校準時間。對于有限的隨機數(shù)N,實際計數(shù)值nq服從二項分布,其平均值為:
標準偏差為:
假設(shè)樣本都是隨機的,得出:
最后,根據(jù)測量精度和進位鏈級數(shù)就可以估算出最小樣本數(shù)量。在本文中,要求誤差小于10 ps,則可以計算出:
通過以上分析,本文設(shè)計的校準電路結(jié)構(gòu)框圖如圖4所示。校準電路主要由隨機信號產(chǎn)生電路、保持電路以及查找表存儲電路等幾個部分組成。隨機信號產(chǎn)生電路是利用環(huán)形振蕩器產(chǎn)生隨機信號,而校準電路則是通過對實際存儲的校準結(jié)果建立累加查找表的方式進行工作。
通過統(tǒng)計結(jié)果分析,可以得到每個延時單元的具體延時,如圖5所示。
圖4 校準電路結(jié)構(gòu)
圖5 延遲單元測量
分辨率一般用最低有效位(Least Significant Bit,LSB)來表示,代表系統(tǒng)能識別的最小時間間隔。分辨率越高,也就是bit數(shù)值越大,信號范圍被分割成的區(qū)間數(shù)目越多,因此,能探測到的信號變量就越小,測量也就越精確。在本文中,由于延遲單元的不一致性,實際上使用的是平均LSB,表示為:
式中,Q為實際內(nèi)插的延遲單元個數(shù)。根據(jù)統(tǒng)計結(jié)果分析得到平均LSB為30 ps左右。
通過之前的分析可知,由于各個延遲單元的不一致性,導致了系統(tǒng)的非線性。非線性(Non-Linearity,NL)通常用:微分非線性(Differential Non-Linearity,DNL)和積分非線性(Integral Non-Linearity,INL)這兩個參數(shù)來衡量。
差分非線性(DNL)可以理解為刻度間的差值,即對每個模擬數(shù)據(jù)按點量化,由于量化產(chǎn)生的誤差。文章中用來表示碼寬與最低有效位(LSB)之間的偏移值,微分非線性實際上是反映了時間碼寬之間的不均勻程度,嚴重的微分非線性會導致失碼??杀硎緸椋?/p>
式中,LSB′為各個延遲單元的實際延時;LSB則為各個延遲單元的平均延時。
積分非線性(INL)可以理解為單值數(shù)據(jù)誤差,對應(yīng)模擬數(shù)據(jù)由于元器件及結(jié)構(gòu)不能精確測量而產(chǎn)生的誤差。相當于微分非線性(DNL)的累加運算,可以表示為:
根據(jù)結(jié)果統(tǒng)計,微分非線性和積分非線性的仿真結(jié)果如圖6、圖7所示??梢钥闯鲅舆t鏈微分非線性(DNL)為(-1,2)LSB,積分非線性(INL)為(-1,6.5)LSB,說明使用該方法有較好的穩(wěn)定性和線性度。
圖6 INL
圖7 DNL
本文采用近年來應(yīng)用廣泛的Xilinx 7系列FPGA芯片,借助主流軟件設(shè)計了一種高精度時間數(shù)字轉(zhuǎn)換器系統(tǒng),由延遲鏈、兩級觸發(fā)器、校準模塊和編碼模塊等構(gòu)成。通過碼密度法可以得到每個延遲單元的具體延遲時間,并且可以分析其中的不一致性。在抽頭延遲線的數(shù)據(jù)鎖存過程中,采用了兩級觸發(fā)器級聯(lián)的方式,有效的降低了系統(tǒng)的亞穩(wěn)態(tài)性。該方法適用于目前Xilinx公司的主流芯片,填補了該公司在主流器件上利用時間內(nèi)插技術(shù)實現(xiàn)時間數(shù)字轉(zhuǎn)換器系統(tǒng)的技術(shù)空白,有利于該方法在各個電子應(yīng)用領(lǐng)域的推廣使用。