?

一種基于FPGA的48通道高精度時間測量系統

2023-03-11 10:23周二瑞楊少華李斌康郭明安
現代應用物理 2023年4期
關鍵詞:粗粒度細粒度溫度計

周二瑞,李 剛,楊少華,李斌康,嚴 明,劉 璐,郭明安

(強脈沖輻射環境模擬與效應全國重點實驗室;西北核技術研究所:西安710024)

高精度時間測量在高能物理實驗和核醫學成像等領域有著廣泛應用[1-5]。高精度時間測量既可使用專用集成電路(application specific integrated circuit,ASIC)芯片實現,也可使用現場可編程邏輯門陣列(field programmable gate array,FPGA)實現。使用ASIC芯片可達到更高的時間測量精度、更高的能效及更優的面積效率,但開發周期長、開發成本高,不利于快速迭代與應用[6-9]。使用FPGA實現具有開發周期短、開發成本低、易移植及可大規模擴展的優點,隨著FPGA工藝的發展,能達到的時間測量精度也越來越高[10-17]。

利用FPGA實現時間測量的主流方法有進位鏈法和時鐘相移法。FPGA中具有豐富的進位鏈資源,可形成高精度時間測量所需的延遲線,使用進位鏈實現是研究的一個重要方向。Wang等[12]基于Kintex-7 FPGA,使用多邊沿檢測方法實現了均方根(root mean square,RMS)精度為3.0 ps,采樣率為277 MHz的時間數字轉換器。Song等[13]基于Kintex-7 FPGA,使用時間抽樣結構實現了RMS精度為5.3 ps,采樣率為350 MHz的時間數字轉換器。Kuang等[14]使用環形振蕩器多次測量結構基于Kintex-7 FPGA實現了RMS精度為5.76 ps的時間數字轉換器。張孟翟等[15]基于Kintex-7 FPGA進位鏈設計了一款RMS精度為36.8 ps的8通道時間數字轉換器。王巍等[16]基于Virtex-5 FPGA進行布局布線,優化實現了RMS精度為25 ps的時間數字轉換器。

使用進位鏈進行時間測量雖可獲得高時間精度,但易受溫度等因素的影響,而使用時鐘相移法進行時間測量則不易受這些因素的影響。Palani等[17]提出了一種面積高效的時間數字轉換器,該方法使用寄存器時鐘相移法和多種溫度計碼編碼方法,時間精度為2.2 ns且受溫度變化影響很小。Sano等[18]基于4相時鐘采樣在Kintex-7 FPGA上實現了時間分辨率為0.28 ns的時間數字轉換器。王巍等[19]基于16相時鐘采樣在Virtex-5 FPGA上實現了RMS精度為64 ps的時間數字轉換器,且資源使用率更高。

本文提出一種基于FPGA的48通道高精度時間測量系統。該測量系統在PC端對溫度計碼進行處理,設計了基于對數取整的溫度計碼時間轉換方法。系統的每個輸入通道都具有閾值可編程設置,一方面能實現不同閾值下脈沖時間的測量,另一方面可多通道對多脈沖同時測量實現多脈沖時間關聯,還可多通道多閾值同時對一個脈沖測量實現對脈沖形狀的繪制。系統使用粗粒度與細粒度結合的方式進行時間測量,使用4相800 MHz時鐘進行細粒度時間測量,使用100 MHz時鐘進行粗粒度時間測量。該系統還具有遠程傳輸功能,因此該系統可用于遠程多通道多閾值時間測量等應用中,如高能物理實驗中的輻射探測等。

1 時間測量

本文的時間測量系統采用粗粒度與細粒度測量結合的方式進行時間測量,圖1為時間測量示意圖。圖1中,Fine time為溫度計碼,表示細粒度時間;黑色虛線框為細粒度測量模塊。粗粒度測量使用二進制計數器實現,可達到很大的時間量程。與文獻中微秒或毫秒量級的時間量程相比,本文的時間測量系統在100 MHz時鐘下量程可達到10 min,能滿足大量程應用的需求。細粒度測量使用4相時鐘(0°,90°,180°,270°)實現,時鐘頻率為800 MHz。由于粗粒度測量和細粒度測量的時鐘頻率差8倍,因此細粒度測量的傳播鏈上有8級寄存器。4相時鐘和8級寄存器將一個粗粒度時鐘周期分為32份,則理論上細粒度測量的時間分辨率可達312.5 ps,若增加時鐘的相位數則可獲得更高的時間分辨率。在每個粗粒度時鐘的上升沿分別對細粒度傳播鏈的寄存器和粗粒度二進制計數器進行采樣,若檢測到輸入則將采樣值存入通道buffer中。

圖1 時間測量示意圖

1.1 溫度計碼產生

實現細粒度測量的關鍵是獲取每相時鐘下的溫度計碼。寄存器在細粒度時鐘上升沿對輸入進行采樣并向下傳播,當輸入為低電平時,寄存器的采樣值為0,當輸入為高電平時,寄存器的采樣值為1。在粗粒度時鐘的上升沿對每條傳播鏈上的8個寄存器進行采樣,獲得溫度計碼,圖2為溫度計碼產生示意圖。

圖2 溫度計碼產生示意圖

1.2 溫度計碼時間轉換

獲得溫度計碼后需將其轉換成時間。大部分時間數字轉換器直接在FPGA內實現溫度計碼到二進制數的轉換,為此要設計相應的轉換電路。由于溫度計碼在采樣時易產生“氣泡”問題,還需設計除“氣泡”電路。當溫度計碼無須在FPGA內直接轉換成二進制數時,則可在PC端采取更靈活的轉換方式。本文的時間測量系統在PC端通過對數取整法實現對溫度計碼的時間轉換。當溫度計碼中存在“氣泡”時,正常的“00011111”可能會變成“00010111”等形式,但實現正確轉換的關鍵是找到最高位的“1”。對數取整法可表示為

(1)

其中:Bn為溫度計碼中最高位“1”的位置;Mn為溫度計碼;n=1,2,3,4分別對應0°,90°,180°,270°的相移時鐘?!皻馀荨币部赡軙绊懽罡呶弧?”,因此需對Bn進行修正。由圖2可見,在不同相位細粒度時鐘下,寄存器鏈最高位“1”的位置最多相差一位,因此對Bn的修正方法可表示為

(2)

其中:Bmax為Bn中的最大值。修正完后,將溫度計碼轉換成輸入信號上升沿的測量時間t1,表示為

(3)

其中:P為粗粒度計數器的值;T為粗粒度時鐘周期。

為實現對輸入信號下降沿時間的測量,將輸入信號取反后接入與上升沿同樣的測量電路。輸入型號的脈沖寬度tw可表示為

tw=t2-t1

(4)

其中,t2分別為下降沿的測量時間。

2 多閾值比較

本文的時間測量系統能實現3種功能:(1)不同閾值下脈沖時間測量;(2)多通道對多脈沖同時測量,實現多脈沖時間關聯;(3)多通道多閾值同時對一個脈沖測量,實現對脈沖形狀的繪制。實現這些功能的基礎是每個通道的閾值可編程。圖3為多閾值測量示意圖。由圖3(a)可見,電壓比較器的參考電壓(即閾值)可編程,當輸入的模擬信號電壓高于閾值時,輸出為高電平;當電壓低于閾值時,輸出為低電平。由圖3(b)可見,實現不同閾值下脈沖時間測量,同一通道可設置不同的閾值,測量出輸入信號在達到該閾值時的時間。由圖3(c)可見,多通道多脈沖同時測量,實現多脈沖時間關聯,將多個通道的閾值設置為相同值,測量出多脈沖之間的時間關系。由圖3(d)可見,多通道多閾值同時對一個脈沖測量實現對脈沖形狀的估計,將多個通道的閾值設置成階梯分布,分別測量同一輸入信號達到相應閾值的時間,再根據閾值和對應的時間完成對輸入信號的估計。

(a)Threshold voltage setting

(b)Single-channel with multi-threshold-voltage

(c)Multi-channel with the same threshold voltage

(d)Multi-channel with multi-threshold-voltage

3 測量系統總體設計

測量系統框架如圖4所示,包括獲取端、傳輸端和PC端。獲取端完成時間信息的獲取;傳輸端完成時間信息及獲取端指令的傳輸;PC端完成時間信息的轉換與指令發送。

獲取端共有48路輸入,每路輸入均通過電壓比較器(CAP)與FPGA相連。FPGA對數字模擬轉換器(DAC)進行控制并接收CAP輸出的信號,實現時間信息的獲取。主控模塊與獲取端的其他模塊進行交互并控制其狀態。電壓控制模塊通過輸出SPI指令控制DAC的輸出電壓,DAC的輸出電壓作為CAP的參考電壓,CAP的輸出作為FPGA的輸入信號。時鐘模塊提供100 MHz時鐘作為粗粒度時鐘,提供4相800 MHz時鐘作為細粒度時鐘。時間轉換模塊接收輸入信號并獲取對應的溫度計碼和二進制計數器值,該模塊的內部結構對應圖1。獲取的溫度計碼和二進制計數器值經過FIFO初步緩存與時鐘域轉換后由傳輸模塊進行遠程傳輸。

傳輸端完成遠程傳輸功能,與獲取端通過光纖連接,進行時間信息的傳輸與相關指令的發送。傳輸端對接收的時間信息進行緩存,并通過USB接口與PC端進行交互。傳輸端具有遠程傳輸功能,適用于需遠程獲取時間信息的應用。

PC端接收傳輸端發送的時間信息,將溫度計碼和二進制計數器值轉換成時間,進行顯示與下一步應用。同時PC端發送指令設置獲取端的閾值電壓及對時間獲取模塊進行初始化。

4 系統實現與測試結果

本文選用符合條件的FPGA及其他器件實現48通道高精度時間測量系統,圖5為測量系統實物圖。外部晶振給FPGA提供時鐘,FPGA內部時鐘管理模塊對時鐘進行分頻,得到粗粒度計時和細粒度計時所需時鐘。使用碼密度法測試每個延時單元的延時時間,測試信號由FPGA內部LUT組成的環形振蕩器給出。由于粗粒度計時的每個時鐘周期被細粒度計時分為32份,因此共有32個延時單元。通道1每個延時單元的延時時間,即Bin寬分布如圖6所示。由圖6可見,每個延時單元的延時約為0.312 5 ns,與設計基本一致。

圖4 測量系統框架

圖5 測量系統實物圖

圖6 Bin寬分布

使用脈沖信號發生器產生兩路脈沖信號分別提供給通道1和通道2,通過電纜延遲調整兩路脈沖信號的時間間隔,得到RMS精度隨時間間隔的變化關系,如圖7所示。

圖7 RMS精度隨時間間隔的變化關系

由圖7可見,RMS精度最大約為0.27 ns,最小約為0.18 ns且RMS精度隨兩個通道間的時間間隔有一定周期性的變化,周期為10 ns,與粗粒度計時的時鐘周期相同。原因為延時單元的延時時間分布不均勻。

使用脈沖信號發生器產生脈沖信號給通道1和通道2~8,時間間隔通過電纜延遲設置為2 ns,得到不同通道的RMS精度,如圖8所示。由圖8可見,不同通道的RMS精度為0.12~0.27 ns之間,其他通道也基本在此范圍內。

圖8 不同通道的RMS精度

本系統的一個重要特色是可進行多閾值比較,從而測量一個或多個輸入脈沖信號到達不同閾值時的時間。將測量系統不同通道閾值設置為不同值,對同一脈沖信號到達不同閾值電壓的時間進行測量,得到多閾值測量結果,如圖9所示。

圖9 多閾值測量結果

由圖9可見,輸入的脈沖信號從0變化到3.3 V時間為2 ns,變化趨勢為中間快,前后慢;當閾值電壓較低時,測量的波形與實際輸入的吻合度較差;當閾值電壓較高時,測量的波形與實際輸入吻合得較好,原因為閾值電壓較低時受外部噪聲影響大。閾值電壓較低時,波形吻合度雖不是很好,但總體時間關系均正確,在不適合高頻示波器的場景下可用于估計輸入脈沖的形狀。圖9也可作為多脈沖時間關聯的測試結果,此時不同通道的脈沖一致,但閾值不同,從而可測量出不同通道脈沖信號到達相應閾值先后關系。

表1為不同時間測量系統的對比。表1中,時間測量系統均基于時鐘相移法,因此,影響測量精度的主要因素為細粒度時鐘頻率與相位數。

表1 不同時間測量系統的對比

由表1可知,當使用4相時鐘進行細粒度測量時,本文時間測量系統的測量精度略高于文獻[18],明顯高于文獻[17]。由于文獻[19]采用了16相時鐘,因此,在400 MHz時鐘下獲得了更高的性能。但本文時間測量系統具有多閾值測量和遠程測量功能,能用于更多特殊場景。

5 結論

本文提出了一種48通道高精度時間測量系統,在FPGA上進行了實現和測試。提出了一種基于對數取整的溫度計碼轉換方法,在PC端實現溫度計碼與時間的快速轉換。測量系統設計了多閾值設置功能,從而能實現對脈沖達到不同電壓的時間的測量。測試結果表明測量系統的時間分辨率約為0.31 ns,RMS精度優于0.27 ns,能實現多閾值脈沖時間測量。同時測量系統具有遠程數據傳輸和閾值設置功能,適用于遠程多通道多閾值時間測量等場景中。

猜你喜歡
粗粒度細粒度溫度計
一種端到端的加密流量多分類粗粒度融合算法*
融合判別性與細粒度特征的抗遮擋紅外目標跟蹤算法
正確認識溫度計
各種各樣的溫度計
細粒度的流計算執行效率優化方法
溫度計的『一二三』
基于卷積神經網絡的粗粒度數據分布式算法
三招搞定溫度計
在線評論情感分析研究綜述
基于雙線性卷積網絡的細粒度圖像定位
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合