劉琛昊,金革
(1.中國(guó)科學(xué)技術(shù)大學(xué) 微電子學(xué)院,安徽 合肥 230026;2.中國(guó)科學(xué)技術(shù)大學(xué) 近代物理系,安徽 合肥 230026)
科學(xué)實(shí)驗(yàn)中許多信息是以時(shí)間信息方式存在于探測(cè)器的輸出信號(hào)中,典型的例子如飛行時(shí)間測(cè)量(Time of Flight,TOF):發(fā)射端發(fā)射信號(hào)到待測(cè)物體后,被反射回探測(cè)器,通過(guò)對(duì)往返時(shí)間間隔進(jìn)行分析,可以得到距離信息,而所測(cè)得時(shí)間精度也就決定了TOF 系統(tǒng)的精度[1]。而時(shí)間數(shù)字轉(zhuǎn)換器則是在時(shí)間分析中使用較多的測(cè)量手段[1-2]。在傳統(tǒng)的實(shí)驗(yàn)中,若存在多個(gè)待測(cè)物體,探測(cè)器會(huì)收到多個(gè)信號(hào),需進(jìn)行多次測(cè)量,增加實(shí)驗(yàn)的復(fù)雜度,且無(wú)形中增加實(shí)驗(yàn)成本。針對(duì)這一情況,本文設(shè)計(jì)了在一次測(cè)試中,一個(gè)“開始”信號(hào)可以對(duì)應(yīng)多個(gè)“停止”信號(hào)進(jìn)行測(cè)量的時(shí)間數(shù)字轉(zhuǎn)換系統(tǒng)。
數(shù)字型時(shí)間數(shù)字轉(zhuǎn)換相對(duì)模擬型的轉(zhuǎn)換方法具有穩(wěn)定性高、調(diào)試方便等優(yōu)勢(shì);而數(shù)字器件中FPGA 相對(duì)ASIC 具有制造周期短、成本低、調(diào)試方便等優(yōu)勢(shì),同時(shí)是可編程的邏輯列陣,能夠有效地解決原有的器件門電路數(shù)較少的問(wèn)題。它能夠滿足幾乎所有應(yīng)用門陣列和中小規(guī)模的集成電路,編程靈活同時(shí)開發(fā)方便,可以實(shí)現(xiàn)在線、實(shí)時(shí)驗(yàn)證的要求[3-4]。本文以FPGA 為核心器件,根據(jù)TDC 的基本原理,以實(shí)現(xiàn)時(shí)間間隔測(cè)量為最終目的搭建系統(tǒng),同時(shí)完成多脈沖時(shí)間間隔測(cè)量的功能,可以滿足實(shí)驗(yàn)中更多樣性的測(cè)量需求,也在其他高精度時(shí)間測(cè)量場(chǎng)合中具備應(yīng)用前景。
系統(tǒng)框架如圖1 所示。系統(tǒng)工作時(shí),外部?jī)陕反郎y(cè)時(shí)間間隔信號(hào)輸入前端電路,其作用是濾除噪聲,同時(shí)可以將輸入信號(hào)與上位機(jī)設(shè)置的閾值電壓進(jìn)行比較,閾值由數(shù)模轉(zhuǎn)換器 (Digital-to-Analog Converter,DAC)給出,若大于上位機(jī)所設(shè)閾值,輸入信號(hào)被認(rèn)定有效,前端電路的比較器出現(xiàn)有效輸出進(jìn)入FPGA,F(xiàn)PGA 對(duì)其進(jìn)行處理。在整個(gè)系統(tǒng)中,F(xiàn)PGA 起到的作用是接收前端甄別器輸出的信號(hào)、與接口進(jìn)行通信、功能算法邏輯的實(shí)現(xiàn)、控制DAC 輸出等。處理后的結(jié)果通過(guò)上位機(jī)控制,進(jìn)行保存或?qū)崟r(shí)處理等操作。
時(shí)間數(shù)字轉(zhuǎn)換的方法多種多樣,例如直接計(jì)數(shù)法、游標(biāo)卡尺法、延時(shí)單元內(nèi)插法等[5],這些方法各具優(yōu)劣。本文采用“粗計(jì)數(shù)”結(jié)合“細(xì)計(jì)數(shù)”的測(cè)量方法,其原理如圖2 所示。“粗計(jì)數(shù)”模塊通過(guò)構(gòu)造一個(gè)計(jì)數(shù)器實(shí)現(xiàn),可以擴(kuò)展很大的量程;“細(xì)計(jì)數(shù)”模塊通過(guò)延時(shí)很短的內(nèi)插單元,把粗計(jì)數(shù)的最小時(shí)鐘周期進(jìn)行細(xì)致分割,提升了測(cè)量精度,兩種方法結(jié)合可以在保證測(cè)量精度的前提下同時(shí)可以擴(kuò)展出很大的量程。
FPGA 中的進(jìn)位鏈延時(shí)一般都在皮秒量級(jí),且各級(jí)延時(shí)均勻性較好,是實(shí)現(xiàn)設(shè)計(jì)的關(guān)鍵資源[6-7]。EP3C55-F484C6 芯片進(jìn)位鏈通過(guò)Timequest 仿真后的延時(shí)結(jié)果如圖3 所示,每一級(jí)進(jìn)位延時(shí)為58 ps。
時(shí)間測(cè)量部分采用如圖4所示結(jié)構(gòu)。Start 信號(hào)和Stop信號(hào)送入由系統(tǒng)時(shí)鐘驅(qū)動(dòng)的粗計(jì)數(shù)器,負(fù)責(zé)控制粗計(jì)數(shù)器的同步起停;另創(chuàng)建兩個(gè)帶有Carry-In 輸入端口的加法器作為細(xì)計(jì)數(shù)器。兩個(gè)細(xì)計(jì)數(shù)器同樣使用時(shí)鐘Clock 進(jìn)行驅(qū)動(dòng),Start 信號(hào)和Stop 信號(hào)就通過(guò)Carry-In 端口送入加法器構(gòu)成的第一級(jí)進(jìn)位鏈,當(dāng)輸入信號(hào)在進(jìn)位鏈上傳播到某個(gè)位置時(shí),此時(shí)Clock 上升沿到來(lái),會(huì)將細(xì)計(jì)數(shù)器各位查找表(Look Up Table,LUT)的輸出值打入對(duì)應(yīng)的D觸發(fā)器中。最終細(xì)計(jì)數(shù)器輸出的格式是溫度計(jì)碼,譯碼結(jié)果代表了細(xì)計(jì)數(shù)ΔT1和ΔT2的值。Start 溫度計(jì)碼和Stop溫度計(jì)碼被送入轉(zhuǎn)碼單元轉(zhuǎn)換為二進(jìn)制碼,并與粗計(jì)數(shù)結(jié)果結(jié)合進(jìn)行計(jì)算得出時(shí)間間隔ΔT 對(duì)應(yīng)的時(shí)間碼[4,8]。
上位機(jī)軟件提供了人機(jī)交互的渠道,它與下位機(jī)之間的通信是通過(guò)USB(Universal Serial Bus)接口芯片實(shí)現(xiàn)的,上位機(jī)軟件基于LabVIEW 編寫。USB 芯片內(nèi)部配置了一個(gè)輸入緩沖區(qū)和輸出緩沖區(qū)。上位機(jī)要讀取下位機(jī)的數(shù)據(jù)時(shí),F(xiàn)PGA 數(shù)據(jù)總線上的數(shù)據(jù)被寫入輸出緩沖區(qū)。NI 公司提供的NI-VISA 驅(qū)動(dòng)完成與USB 接口的對(duì)接。上位機(jī)被該驅(qū)動(dòng)程序識(shí)別為一個(gè)NI-VISA 設(shè)備,LabVIEW可以訪問(wèn)該設(shè)備[9]。上位機(jī)軟件支持比較器電壓閾值的設(shè)置、測(cè)量時(shí)間的設(shè)置、測(cè)量模式選擇、實(shí)時(shí)顯示輸入信號(hào)以及輸出信號(hào)計(jì)數(shù)等功能,界面直觀,功能齊全。
當(dāng)系統(tǒng)實(shí)現(xiàn)了與上位機(jī)進(jìn)行相互通信以后,系統(tǒng)可以接收到上位機(jī)下發(fā)的數(shù)據(jù)命令,是多脈沖功能實(shí)現(xiàn)的基礎(chǔ)。首先,上位機(jī)下發(fā)指令,設(shè)置測(cè)試中開始信號(hào)對(duì)應(yīng)停止信號(hào)的個(gè)數(shù)N(N 為正整數(shù));接下來(lái)在FPGA 中構(gòu)造一個(gè)計(jì)數(shù)器,用于統(tǒng)計(jì)進(jìn)入系統(tǒng)中的停止信號(hào)的個(gè)數(shù),初始值為0,每當(dāng)有一個(gè)有效停止信號(hào)進(jìn)入,計(jì)數(shù)cnt+1,使能一次時(shí)間測(cè)量功能,直到超出了上位機(jī)預(yù)設(shè)的數(shù)量時(shí),給出一個(gè)復(fù)位信號(hào)。此外,由于多個(gè)停止脈沖之間可能存在間隔時(shí)間較長(zhǎng)的現(xiàn)象,為避免等待時(shí)間超出最大量程,還需設(shè)置一個(gè)強(qiáng)制停止測(cè)量的復(fù)位端。多脈沖功能流程圖如圖5 所示。
系統(tǒng)對(duì)延時(shí)單元標(biāo)定采用了碼密度法[10-11]。對(duì)系統(tǒng)輸入大量隨機(jī)脈沖后測(cè)試所得結(jié)果如圖6 所示。
從圖6 中可以看出,從第1 道開始有計(jì)數(shù),到第221道為止,有效道數(shù)為220 道。故分辨率可以由式(1)簡(jiǎn)單估算:
但是從圖6 中可以明顯看出,測(cè)試結(jié)果的奇偶性非常明顯,相鄰道的計(jì)數(shù)存在很大差距,甚至有的BIN 出現(xiàn)了計(jì)數(shù)為0 的情況。道與道之間的計(jì)數(shù)差異過(guò)大,無(wú)疑會(huì)給系統(tǒng)的線性造成極大的影響[12]。對(duì)數(shù)據(jù)進(jìn)行線性分析,其微分非線性為-1 LSB~+1.47 LSB,積分非線性為-0.68 LSB~+1.44 LSB,LSB=45.4 ps。顯然,這是一種失碼的現(xiàn)象,這樣的線性度不能滿足設(shè)計(jì)需要。
通過(guò)查閱大量論文及資料,發(fā)現(xiàn)基于Cyclone III 和Cyclone IV 系列FPGA 在進(jìn)行碼密度測(cè)試時(shí)均存在這一情況。出現(xiàn)這一現(xiàn)象的原因是加法器輸出的進(jìn)位結(jié)果在輸入解碼單元之前還需先輸入觸發(fā)器鎖存,保證加法器輸出能夠被同時(shí)鎖存并且采集,直到下一個(gè)全局時(shí)鐘到來(lái)才會(huì)進(jìn)入解碼單元進(jìn)行解碼。在理想情況下,每一級(jí)加法器的延時(shí)單元到觸發(fā)器之間的延時(shí)都完全相同,可以認(rèn)為各級(jí)進(jìn)位單元到觸發(fā)器這段走線延時(shí)相互“抵消”,最終輸入到解碼單元的數(shù)據(jù)時(shí)間差僅和延時(shí)單元本身有關(guān)。但實(shí)際上加法器的延時(shí)單元到觸發(fā)器是存在延時(shí)的,而且延時(shí)的時(shí)間甚至遠(yuǎn)大于進(jìn)位延時(shí)時(shí)間,如圖7所示。不同進(jìn)位單元對(duì)應(yīng)的觸發(fā)器輸入端延時(shí)不是一致的,觸發(fā)器內(nèi)部的傳輸延時(shí)也不一致[13-14]。
雖然相鄰LE 中進(jìn)位單元到觸發(fā)器的輸入端延時(shí)以及觸發(fā)器傳輸延時(shí)不一致,但是從第一級(jí)起的奇數(shù)BIN和偶數(shù)BIN 的結(jié)構(gòu)是一致的,若將相鄰奇偶道計(jì)數(shù)合并相加,可以得到較好的BIN 寬一致性。故本文采用了并道的方法處理。并道處理數(shù)據(jù)后的碼密度測(cè)試統(tǒng)計(jì)結(jié)果如圖8 所示。
通過(guò)上面的統(tǒng)計(jì)結(jié)果可以對(duì)進(jìn)位鏈進(jìn)行逐級(jí)標(biāo)定,得到信號(hào)落在各級(jí)延時(shí)單元的累計(jì)時(shí)間,如圖9 所示。根據(jù)數(shù)據(jù)擬合出的一次函數(shù)斜率為0.900 8,故可認(rèn)為本設(shè)計(jì)的分辨率為90.08 ps。
如圖10、圖11 所示,并道處理前,系統(tǒng)的微分非線性為-1 LSB~+1.47 LSB,積分非線性為-0.68 LSB~+1.44 LSB,每個(gè)LSB=45.4 ps,轉(zhuǎn)化為時(shí)間得微分非線性為-45.4 ps~+66.73 ps,積分非線性為-30.87 ps~+65.38 ps。
并道處理后,系統(tǒng)的微分非線性和積分非偶性如圖12、圖13 所示。系統(tǒng)的積分非線性范圍是-0.34 LSB~+0.27 LSB,微分非線性范圍是-0.28 LSB~0.31 LSB,LSB=90.08 ps,轉(zhuǎn)化為時(shí)間得微分非線性為-25.2 ps~+27.92 ps,積分非線性為-30.63 ps~+24.32 ps,微分非線性降低了52.6%,積分非線性降低了42.9%。
對(duì)系統(tǒng)輸入時(shí)間間隔相同的一組脈沖信號(hào),然后對(duì)結(jié)果進(jìn)行高斯擬合,以45 ps 為一個(gè)BIN,計(jì)算其標(biāo)準(zhǔn)差,可以反映出TDC 系統(tǒng)的精度。采用Keysight 33600A信號(hào)發(fā)生器的輸入周期信號(hào)作為輸入信號(hào)測(cè)試,結(jié)果如圖14 所示,計(jì)算后可以得到標(biāo)準(zhǔn)差std=33.54 ps。
測(cè)試方法是采用Keysight 33600A 信號(hào)發(fā)生器的輸入作為輸入信號(hào)測(cè)試。Start 信號(hào)和Stop 都設(shè)置為固定周期的周期性方波脈沖,在測(cè)試時(shí)間固定后,只會(huì)在某些固定的時(shí)間道上有大量計(jì)數(shù)。可知每個(gè)Stop 信號(hào)之間的時(shí)間間隔相同,設(shè)Start 和第一個(gè)有效Stop 信號(hào)之間間隔為△T,Stop 信號(hào)的周期為Tstop,則Start 信號(hào)與第n 個(gè)Stop 信號(hào)之間的間隔Tn可以由式(2)計(jì)算:
以上位機(jī)設(shè)置脈沖數(shù)為5 和9 時(shí)為例進(jìn)行測(cè)試,輸入隨機(jī)個(gè)數(shù)的周期脈沖后測(cè)試結(jié)果如圖15、圖16 所示??梢钥吹椒謩e在5 個(gè)道和9 個(gè)道上存在明顯計(jì)數(shù)值,與預(yù)設(shè)相符。
本設(shè)計(jì)完成了一個(gè)基于Altera Cyclone III EP3C55-F484C6 FPGA 的皮秒級(jí)時(shí)間數(shù)字轉(zhuǎn)換系統(tǒng),通過(guò)上位機(jī)可以配置實(shí)現(xiàn)多時(shí)間間隔測(cè)量。本文首先介紹了設(shè)計(jì)原理,然后介紹了技術(shù)路線。經(jīng)過(guò)實(shí)物測(cè)試,系統(tǒng)功能完備,動(dòng)態(tài)范圍可以通過(guò)粗計(jì)數(shù)單元擴(kuò)展。通過(guò)基于碼密度法的測(cè)試,結(jié)合并道處理,系統(tǒng)最終分辨率為90.08 ps,測(cè)量精度可以達(dá)到33.54 ps,積分非線性范圍是-0.34 LSB~+0.27 LSB,微分非線性范圍是-0.28 LSB~0.31 LSB,微分非線性降低了52.6%,積分非線性降低了42.9%。該系統(tǒng)可以應(yīng)用于高精度多待測(cè)目標(biāo)的時(shí)間信息檢出實(shí)驗(yàn)中。