新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 針對FPGA優化的高分辨率時間數字轉換陣列電路

        針對FPGA優化的高分辨率時間數字轉換陣列電路

        作者: 時間:2017-06-05 來源:網絡 收藏

        數字時間轉換電路TDC(Time-to-Digital Converter)是精密時間測量中的核心模塊,在粒子物理、激光測距、遙感成像等方面有非常廣泛的應用。

        電路起源于20世紀60年代的核技術與航空航天領域,文獻[1]首次提出數字時間測量的概念。時間間隔測量的方法可以大致分為模擬測量與數字測量兩大類。模擬測量方法,包括時間幅度轉換TAC(Time-to-Amplitude Converter)法[2]與模擬時間放大法,都是通過電容充放電的特性把時間量轉換為可以測量的電壓量或者電荷量,從而達到測量時間的目的。但是在多數模擬測量方法中還需要進行模數(AD)轉換來進行數據的后續處理。此種方法通常由印制電路板上的不同分立元件與芯片構成,因此功耗面積較大,依賴環境溫度且易受電磁干擾,電路調試也相對比較困難[3]。隨著大規模集成電路技術的成熟,單個芯片集成的晶體管數量成倍增長,計算能力與處理能力也大大提高。文獻[5]首次采用CMOS工藝設計出了一種基于環形延遲線的全數字器,此外還有如延遲鎖定環[4]DLL(Delay Lock Loop)方法、高速計數器[7]方法、時間延遲線[8-13]方法等,都是利用器件本身的延遲來達到時間測量的目的。

        近年來,由于技術的迅猛發展,在低成本低設計周期方面,已經可以部分取代ASIC。它所特有的可重用性不僅增加了系統的靈活性、適應性,也大大減小了系統的規模,極具開發和研究的潛力。因此,針對進行優化的TDC設計方案成為研究人員關注的焦點。文獻[4]針對FPGA中延遲的一致性問題,提出了采用類似環形延時門設計的粗計數與細計數兩部分電路來完成,達到了3.3 ns的時鐘分辨率。文獻[6]通過對文獻[5]的方法進行改進,在CPLD上實現了時鐘分辨率達3.5 ns的TDC。本文針對解決FPGA延遲特性不確定的問題,提出了一種采用時鐘狀態譯碼的方法進行時間數字轉換的陣列電路CDTDC(Clock Decoder based TDC),陣列規模為16×16。在Altera公司的Cyclone II EP2C15上進行仿真測試,工作頻率50 MHz,時鐘分辨率可達1.73 ns。

        1 CDTDC陣列的工作原理

        1.1 CDTDC計數模塊

        由于FPGA的硬件結構限制,計數器在較高頻率下的工作不穩定,在狀態轉換過程中易產生毛刺、跳碼,影響正確的系統輸出,時間分辨率很難提高[14]。為了避免此類情況發生,加入結構簡單、占用資源少的細計數功能模塊來提高時間分辨率。本設計中采用二進制計數器與時鐘狀態譯碼分別完成粗計數與細計數,從而對時間間隔進行測量。

        CDTDC陣列中單元電路的原理框圖如圖1所示,每個單元電路具有獨立的時間間隔測量功能。為了減小電路規模,粗計數模塊采用10 bit線性反饋移位寄存器(LFSR)實現。LFSR對計數時鐘進行計數,后續再對LFSR進行狀態譯碼即可得到所計的時鐘數。計數時鐘來自片上(PLL)對外部時鐘的倍頻。當起始信號達到時,接入系統時鐘開始計數;當停止信號到達時,計數/讀出時鐘使能信號變為邏輯低,關閉連接LFSR時鐘輸入端的與門,達到停止計數的功能。計數時鐘的工作頻率為150 MHz,因而粗計數模塊可以達到的時間測量范圍為6.8 μs。

        細計數模塊由上升沿觸發的鎖存器1、鎖存器2、計數時鐘與移相時鐘組成。為了提高時鐘分辨率,將計數時鐘移相90°,通過鎖存器鎖存兩個時鐘在停止信號到達時的邏輯電平作為狀態碼,進而提高時間分辨率。具體過程是:當停止信號達到時,連接鎖存器時鐘輸入端的與門產生電平跳變,在上升沿把計數時鐘與移相時鐘的邏輯電平鎖存進鎖存器中,時序圖如圖2所示。鎖存器1保持了停止信號到達時計數時鐘的時鐘狀態,從而可將時鐘分辨率提高至時鐘周期的1/2;鎖存器2保持了移相時鐘在停止信號達到時的狀態,從而將時鐘分辨率提高至時鐘周期的1/4。故在計數時鐘為150 MHz的情況下,時間分辨率的理論值為1.667 ns。


        1.2 CDTDC讀出模塊

        本文引用地址:http://www.104case.com/article/201706/349198.htm

        當對記錄的時間進行數據讀出時,需要輸入讀出時鐘。時鐘切換模塊在系統進入讀出狀態時對移位寄存器的輸入時鐘進行切換,完成數據的正確讀出。為了節約邏輯資源,采用組合邏輯電路對時鐘信號進行切換控制。

        如圖1所示,當系統工作在讀出模式時,計數/讀出模式切換信號變為邏輯低,關閉輸入計數時鐘的與門,同時打開輸入讀出時鐘的或門,在計數/讀出使能信號允許的條件下,輸入讀出時鐘至LFSR的時鐘端口。多功能移位寄存器的時鐘切換同理。

        在計數/讀出模式切換信號允許的條件下,通過切換多路復用器斷開LFSR的反饋輸入端,將多功能移位寄存器的輸出輸入LFSR中。多功能移位寄存器會自動在并入串出與串入串出模式下進行切換,首先將時鐘狀態,即鎖存器的輸出移入,然后輸入前一個單元電路的輸出,如此每行相鄰的單元電路串聯直至數據輸出端。圖3為陣列電路結構圖,對于16×16的陣列,每行一個數據讀出鏈。每個單元電路的讀出數據為12 bit,故每行信號的數據量為192 bit。如果數據讀出時鐘為10 MHz,則讀出時間為1/10 MHz×192=19.2 μs。如果陣列規模增大,則可提高讀出時鐘頻率。


        1.3 CDTDC控制模塊

        鑒于系統需要自動在計數與讀出兩種模式下進行切換,并需復位相應寄存器,本設計采用狀態機來控制CDTDC的模式切換??刂颇K狀態機示意圖如圖4所示。

        系統上電復位后,處于復位(10)狀態。在此狀態下,進行移位寄存器的清零,同時復位所有控制信號至初始狀態。復位狀態持續4個時鐘周期,狀態跳轉到計數狀態。在計數(00)狀態下,計數/讀出模式切換信號禁止,系統工作在計數模式。接入計數時鐘,LFSR開始計數。同時,為使系統具有可配置性,在計數狀態中加入一個10 bit計數器來配置系統可以記錄的最大時間間隔。若屏蔽此計數器,則此狀態持續時間為系統可以達到的最大時間測量范圍,即6.8 μs。實際應用中可根據用戶實際需要對計數器進行配置來限制計數狀態的持續時間。計數狀態結束后跳轉到讀出(01)狀態,計數/讀出模式切換信號允許,啟動數據讀出模塊,完成記錄時間的讀出。如前所述,單行數據鏈需要的讀出時間約為20 μs。此后系統回到復位狀態準備下次計數。

        2 仿真測試與硬件實現

        2.1 仿真結果分析

        本設計采用Altera公司的Quartus II與Mentor Graphics公司的Modelsim作為主要的設計工具。Cyclone系列FPGA具有片上(PLL)模塊,可以對輸入時鐘進行精確的倍頻、分頻、相位偏移、可編程占空比等操作。系統外部時鐘輸入頻率為50 MHz,通過配置片上PLL,可獲得3倍頻的計數時鐘與移相時鐘,5分頻的讀出時鐘。

        圖5為單元電路計數狀態仿真結果。rst為系統復位信號,start為計數起始信號,stop為計數停止信號,cnt_clk為計數時鐘,shifted_clk為移相時鐘,state為狀態機狀態碼,shift_reg為多功能移位寄存器并行輸入端口,q為線性反饋移位寄存器輸出。在計數狀態下,當stop產生正脈沖時,LFSR停止計數,多功能移位寄存器并行輸入鎖存器1與鎖存器2輸出的時鐘邏輯電平,記錄時鐘狀態。圖6為單元電路數據讀出狀態仿真時序圖,rd_out為讀出引腳,在讀出時鐘作用下,數據從移位寄存器中依次移出。

        2.2 硬件測試

        時間數字轉換陣列在Cyclone II EP2C15芯片實現,系統外部時鐘50 MHz。由函數發生器提供頻率為F的脈沖信號,信號上升沿作為系統的起始信號,下降沿作為系統的停止信號,測得在不同頻率下的時鐘分辨率。測試數據表明時間分辨率的算術平均值為1.73 ns。

        通過仿真與硬件測試表明,本設計能夠準確進行時間數字轉換,各項功能均達到預期要求。以低密度低成本的Altera Cyclone II EP2C15作為目標芯片的綜合報告顯示,單元電路占用FPGA邏輯資源約為0.375%,具有極低的資源占用率。本設計時間分辨率最高可達1.73 ns,并且實現原理簡單,具有可行性。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 廊坊市| 格尔木市| 竹溪县| 错那县| 团风县| 湟源县| 南平市| 巴塘县| 吉木乃县| 哈尔滨市| 龙胜| 西贡区| 邮箱| 德令哈市| 黄龙县| 井研县| 新化县| 隆回县| 西平县| 遂昌县| 涞水县| 龙里县| 德州市| 怀宁县| 高台县| 新蔡县| 马边| 从化市| 昌黎县| 新田县| 柏乡县| 舞钢市| 永胜县| 临西县| 靖江市| 兴国县| 即墨市| 双桥区| 东乡族自治县| 曲阜市| 吉首市|