使用的FPGA邏輯 資源都是FPGA芯片內最小邏輯資源單位中的基本查找表。目前兩大主流FPGA(Xilinx和 Altera)內的基本查找表資源的具體結構形式不完全相同,主要區別在基本查找表的輸入 最大位寬和輸出信號數不同,例如本實施例所使用的Kintex-7FPGA的基本查找表結構如 圖4所不。它有6個輸入端,2個輸出端。該查找表可以被用作一個6輸入查找表(6-LUT), 也可以被用作2個5輸入查找表(5-LUT),此時15要被賦值為1。其它系列或其它公司的 FPGA的查找表和此類似。本實施例將圖4的查找表用作2個5-LUT,其中一個用于上升沿 的尋找電路,另一個用作下降沿尋找電路。變化沿的尋找原理如圖5所示。利用滑動窗結 構并行尋找窗內是否有感興趣的變化沿,每個滑動窗的寬度為5,它是基本查找表的輸入位 寬。最后一個窗的輸入若不足5位,則用"1"補齊。如果一個窗內發現到了感興趣的變化 沿,該窗的輸出為1,否則為0。這樣所有窗的輸出就將經過重排序了的TDL狀態碼變換為 "one-hot"碼。圖5中用C i表示上升沿的"one-hot"碼,用D i表示下降沿的"one-hot"碼, i為0或正整數。
[0058] 表1.變化沿尋找電路的真值表
[0059]
【主權項】
1. 一種基于FPGA的時間數字變換器,包括粗時鐘計數器、脈沖信號發生器、信號延遲 鏈、觸發器陣列、并行的信號上升沿尋找電路和下降沿尋找電路、并行的上升沿"one-hot" 編碼電路和下降沿"one-hot"編碼電路、標定電路和變換結果輸出電路,其中, 所述粗時鐘計數器由用于根據被測信號產生計數信號; 所述脈沖信號發生器用于在被測信號的觸發下產生一個負脈沖并饋入到所述信號延 遲鏈中; 所述信號延遲鏈用于對被測信號進行延時傳輸,由多個延遲單元組成,且在每個延遲 單元的前端具有抽頭; 所述觸發器陣列用于對信號延遲鏈的各抽頭狀態進行鎖存,在被測信號到來的前提 下,將鎖存的抽頭狀態同時傳遞給所述并行的上升沿尋找電路和下降沿尋找電路; 所述上升沿尋找電路和和下降沿尋找電路分別用于根據所述鎖存的抽頭狀態尋找在 信號延遲鏈中傳輸的負脈沖的上升沿和下降沿,分別生成用于表示上升沿和下降沿的位置 的 "one-hot" 碼; 所述并行的上升沿"one-hot"編碼電路和下降沿"one-hot"編碼電路分別用于將所述 表示上升沿和下降沿的位置的"one-hot"碼轉換為二進制碼; 所述標定電路用于將所述二進制碼轉換成時間內插值; 所述變換結果輸出電路用于根據所述時間內插值和所述粗時鐘計數器輸出的計數信 號一起換算成被測信號的到來時間。
2. 如權利要求1所述的基于FPGA的時間數字變換器,其特征在于,所述觸發器陣列將 所述鎖存的抽頭狀態傳遞給所述上升沿尋找電路和下降沿尋找電路的過程中,所述抽頭經 過一個重排序過程,該重排序是根據所述信號延遲鏈的各抽頭之間的延遲量的分布結果進 行的重排序。
3. 如權利要求2所述的基于FPGA的時間數字變換器,其特征在于,所述重排序的規則 是:將〇寬度延遲單元的抽頭和下一個延遲單元的抽頭位置互換。
4. 如權利要求3所述的基于FPGA的時間數字變換器,其特征在于,所述重排序重復 多次進行,在一次調整順序之后測量各延遲單元的延遲寬度,判斷〇寬度的延遲單元個數 是否超過一個閾值,如果是,則再次調整順序,直到〇寬度延遲單元的個數不超過該閾值為 止。
5. 如權利要求4所述的基于FPGA的時間數字變換器,其特征在于,在所述重排序的過 程中采用碼密度法測量各延遲單元的延遲寬度。
6. 如權利要求1所述的基于FPGA的時間數字變換器,其特征在于,所述信號上升沿尋 找電路和/或下降沿尋找電路通過一個逐位移動的窗口將所述溫度計碼切分得到2 N個窗 口值,2N= n,n為延遲單元的個數,所述窗口的位寬為m,m為自然數且2 < m < 2 N,并通過 依序排列所述窗口值所對應的真值得到與所述溫度計碼對應的"one-hot"碼。
7. 如權利要求6所述的基于FPGA的時間數字變換器,其特征在于,所有可能的窗口值 與對應的真值之間轉換的真值表存儲在FPGA中的基本邏輯單元LUT中。
8. 如權利要求7所述的基于FPGA的時間數字變換器,其特征在于,當所述上升沿尋找 電路用于尋找溫度計碼的上升沿時,在所述真值表中,只有第一位是0、其余位均為1的窗 口值對應的真值為1,其余窗口值對應的真值均為0 ;或者,只有第一位是0、其余位均為1 的窗口值對應的真值為0,其余窗口值對應的真值均為1 ; 當所述下降沿尋找電路用于尋找溫度計碼的下降沿時,在所述真值表中,只有最后一 位是0、其余位均為1的窗口值對應的真值為1,其余窗口值對應的真值均為0 ;或者,只有 最后一位是0、其余位均為1的窗口值對應的真值為0,其余窗口值對應的真值均為1。
9. 如權利要求1所述的基于FPGA的時間數字變換器,其特征在于,所述上升沿 "one-hot"編碼電路和下降沿"one-hot"編碼電路對于用" 1"表示的"one-hot"碼,通過計 算個"one-hot"碼字的邏輯"或"運算來得到二進制碼的每一位的編碼;對于用"0"表 示的"one-hot"碼,通過計算2 N4個"one-hot"碼字的邏輯"與"運算來得到二進制碼的每 一位的編碼。
10. 如權利要求9所述的基于FPGA的時間數字變換器,其特征在于,所述上升沿 "one-hot"編碼電路和下降沿"one-hot"編碼電路利用流水線結構組合使用FPGA的LUT實 現所述邏輯"或"運算或者邏輯"與"運算,流水線的每一級是一個或若干個并行的依靠LUT 而實現的邏輯"或"運算或邏輯"與"運算。
11. 如權利要求1所述的基于FPGA的時間數字變換器,其特征在于,所述標定電路具有 標定查找表,所述時間數字變換器還包括一個標定查找表更新電路,其用于對該標定查找 表進行更新。
12. 如權利要求11所述的基于FPGA的時間數字變換器,其特征在于,所述上升沿 "one-hot"編碼電路和下降沿"one-hot"編碼電路輸出的編碼相加后送給在線標定電路。
13. 如權利要求12所述的基于FPGA的時間數字變換器,其特征在于,所述標定表存儲 于FPGA內部的一塊雙端口存儲器中。
14. 如權利要求13所述的基于FPGA的時間數字變換器,其特征在于,所述標定表為兩 個,該兩個標定表乒乓工作。
【專利摘要】本發明公開了一種基于FPGA芯片的TDC,其包括脈沖信號發生器、多抽頭的信號延遲鏈、觸發器陣列、兩個并行的信號變化沿尋找電路、并行的上升沿“one-hot”編碼電路和下降沿“one-hot”編碼電路、標定電路和變換結果輸出電路。脈沖信號發生器產生一個負脈沖并饋入到信號延遲鏈,觸發器陣列對各抽頭狀態進行鎖存,所述抽頭經重排序后,所述抽頭狀態被傳遞給兩個信號變化沿尋找電路,以分別尋找該負脈沖的上升沿和下降沿,并生成對應的“one-hot”碼。本發明能夠最大限度地去除延遲鏈上的0延遲單元,減少鎖存狀態溫度計碼中的“冒泡”現象,使測量精度、測量死時間和資源占用量這三個方面的性能指標達到合理平衡,從而能夠實現高性能的TDC測量系統。
【IPC分類】G04F10-04, G04F10-00
【公開號】CN104597748
【申請號】CN201510076290
【發明人】王永綱, 劉沖
【申請人】中國科學技術大學
【公開日】2015年5月6日
【申請日】2015年2月12日