針對FPGA優(yōu)化的高分辨率時間數(shù)字轉(zhuǎn)換陣列電路
數(shù)字時間轉(zhuǎn)換電路TDC(Time-to-Digital Converter)是精密時間測量中的核心模塊,在粒子物理、激光測距、遙感成像等方面有非常廣泛的應用。
時間數(shù)字轉(zhuǎn)換電路起源于20世紀60年代的核技術與航空航天領域,文獻[1]首次提出數(shù)字時間測量的概念。時間間隔測量的方法可以大致分為模擬測量與數(shù)字測量兩大類。模擬測量方法,包括時間幅度轉(zhuǎn)換TAC(Time-to-Amplitude Converter)法[2]與模擬時間放大法,都是通過電容充放電的特性把時間量轉(zhuǎn)換為可以測量的電壓量或者電荷量,從而達到測量時間的目的。但是在多數(shù)模擬測量方法中還需要進行模數(shù)(AD)轉(zhuǎn)換來進行數(shù)據(jù)的后續(xù)處理。此種方法通常由印制電路板上的不同分立元件與芯片構(gòu)成,因此功耗面積較大,依賴環(huán)境溫度且易受電磁干擾,電路調(diào)試也相對比較困難[3]。隨著大規(guī)模集成電路技術的成熟,單個芯片集成的晶體管數(shù)量成倍增長,計算能力與處理能力也大大提高。文獻[5]首次采用CMOS工藝設計出了一種基于環(huán)形延遲線的全數(shù)字時間數(shù)字轉(zhuǎn)換器,此外還有如延遲鎖定環(huán)[4]DLL(Delay Lock Loop)方法、高速計數(shù)器[7]方法、時間延遲線[8-13]方法等,都是利用器件本身的延遲來達到時間測量的目的。
近年來,由于FPGA技術的迅猛發(fā)展,在低成本低設計周期方面,FPGA已經(jīng)可以部分取代ASIC。它所特有的可重用性不僅增加了系統(tǒng)的靈活性、適應性,也大大減小了系統(tǒng)的規(guī)模,極具開發(fā)和研究的潛力。因此,針對FPGA進行優(yōu)化的TDC設計方案成為研究人員關注的焦點。文獻[4]針對FPGA中延遲的一致性問題,提出了采用類似環(huán)形延時門設計的粗計數(shù)與細計數(shù)兩部分電路來完成時間數(shù)字轉(zhuǎn)換,達到了3.3 ns的時鐘分辨率。文獻[6]通過對文獻[5]的方法進行改進,在CPLD上實現(xiàn)了時鐘分辨率達3.5 ns的TDC。本文針對解決FPGA延遲特性不確定的問題,提出了一種采用時鐘狀態(tài)譯碼的方法進行時間數(shù)字轉(zhuǎn)換的陣列電路CDTDC(Clock Decoder based TDC),陣列規(guī)模為16×16。在Altera公司的Cyclone II EP2C15上進行仿真測試,工作頻率50 MHz,時鐘分辨率可達1.73 ns。
1 CDTDC陣列的工作原理
1.1 CDTDC計數(shù)模塊
由于FPGA的硬件結(jié)構(gòu)限制,計數(shù)器在較高頻率下的工作不穩(wěn)定,在狀態(tài)轉(zhuǎn)換過程中易產(chǎn)生毛刺、跳碼,影響正確的系統(tǒng)輸出,時間分辨率很難提高[14]。為了避免此類情況發(fā)生,加入結(jié)構(gòu)簡單、占用資源少的細計數(shù)功能模塊來提高時間分辨率。本設計中采用二進制計數(shù)器與時鐘狀態(tài)譯碼分別完成粗計數(shù)與細計數(shù),從而對時間間隔進行測量。
CDTDC陣列中單元電路的原理框圖如圖1所示,每個單元電路具有獨立的時間間隔測量功能。為了減小電路規(guī)模,粗計數(shù)模塊采用10 bit線性反饋移位寄存器(LFSR)實現(xiàn)。LFSR對計數(shù)時鐘進行計數(shù),后續(xù)再對LFSR進行狀態(tài)譯碼即可得到所計的時鐘數(shù)。計數(shù)時鐘來自片上鎖相環(huán)(PLL)對外部時鐘的倍頻。當起始信號達到時,接入系統(tǒng)時鐘開始計數(shù);當停止信號到達時,計數(shù)/讀出時鐘使能信號變?yōu)檫壿嫷?,關閉連接LFSR時鐘輸入端的與門,達到停止計數(shù)的功能。計數(shù)時鐘的工作頻率為150 MHz,因而粗計數(shù)模塊可以達到的時間測量范圍為6.8 μs。
細計數(shù)模塊由上升沿觸發(fā)的鎖存器1、鎖存器2、計數(shù)時鐘與移相時鐘組成。為了提高時鐘分辨率,將計數(shù)時鐘移相90°,通過鎖存器鎖存兩個時鐘在停止信號到達時的邏輯電平作為狀態(tài)碼,進而提高時間分辨率。具體過程是:當停止信號達到時,連接鎖存器時鐘輸入端的與門產(chǎn)生電平跳變,在上升沿把計數(shù)時鐘與移相時鐘的邏輯電平鎖存進鎖存器中,時序圖如圖2所示。鎖存器1保持了停止信號到達時計數(shù)時鐘的時鐘狀態(tài),從而可將時鐘分辨率提高至時鐘周期的1/2;鎖存器2保持了移相時鐘在停止信號達到時的狀態(tài),從而將時鐘分辨率提高至時鐘周期的1/4。故在計數(shù)時鐘為150 MHz的情況下,時間分辨率的理論值為1.667 ns。
1.2 CDTDC讀出模塊
當對記錄的時間進行數(shù)據(jù)讀出時,需要輸入讀出時鐘。時鐘切換模塊在系統(tǒng)進入讀出狀態(tài)時對移位寄存器的輸入時鐘進行切換,完成數(shù)據(jù)的正確讀出。為了節(jié)約邏輯資源,采用組合邏輯電路對時鐘信號進行切換控制。
如圖1所示,當系統(tǒng)工作在讀出模式時,計數(shù)/讀出模式切換信號變?yōu)檫壿嫷停P閉輸入計數(shù)時鐘的與門,同時打開輸入讀出時鐘的或門,在計數(shù)/讀出使能信號允許的條件下,輸入讀出時鐘至LFSR的時鐘端口。多功能移位寄存器的時鐘切換同理。
在計數(shù)/讀出模式切換信號允許的條件下,通過切換多路復用器斷開LFSR的反饋輸入端,將多功能移位寄存器的輸出輸入LFSR中。多功能移位寄存器會自動在并入串出與串入串出模式下進行切換,首先將時鐘狀態(tài),即鎖存器的輸出移入,然后輸入前一個單元電路的輸出,如此每行相鄰的單元電路串聯(lián)直至數(shù)據(jù)輸出端。圖3為陣列電路結(jié)構(gòu)圖,對于16×16的陣列,每行一個數(shù)據(jù)讀出鏈。每個單元電路的讀出數(shù)據(jù)為12 bit,故每行信號的數(shù)據(jù)量為192 bit。如果數(shù)據(jù)讀出時鐘為10 MHz,則讀出時間為1/10 MHz×192=19.2 μs。如果陣列規(guī)模增大,則可提高讀出時鐘頻率。
1.3 CDTDC控制模塊
鑒于系統(tǒng)需要自動在計數(shù)與讀出兩種模式下進行切換,并需復位相應寄存器,本設計采用狀態(tài)機來控制CDTDC的模式切換??刂颇K狀態(tài)機示意圖如圖4所示。
系統(tǒng)上電復位后,處于復位(10)狀態(tài)。在此狀態(tài)下,進行移位寄存器的清零,同時復位所有控制信號至初始狀態(tài)。復位狀態(tài)持續(xù)4個時鐘周期,狀態(tài)跳轉(zhuǎn)到計數(shù)狀態(tài)。在計數(shù)(00)狀態(tài)下,計數(shù)/讀出模式切換信號禁止,系統(tǒng)工作在計數(shù)模式。接入計數(shù)時鐘,LFSR開始計數(shù)。同時,為使系統(tǒng)具有可配置性,在計數(shù)狀態(tài)中加入一個10 bit計數(shù)器來配置系統(tǒng)可以記錄的最大時間間隔。若屏蔽此計數(shù)器,則此狀態(tài)持續(xù)時間為系統(tǒng)可以達到的最大時間測量范圍,即6.8 μs。實際應用中可根據(jù)用戶實際需要對計數(shù)器進行配置來限制計數(shù)狀態(tài)的持續(xù)時間。計數(shù)狀態(tài)結(jié)束后跳轉(zhuǎn)到讀出(01)狀態(tài),計數(shù)/讀出模式切換信號允許,啟動數(shù)據(jù)讀出模塊,完成記錄時間的讀出。如前所述,單行數(shù)據(jù)鏈需要的讀出時間約為20 μs。此后系統(tǒng)回到復位狀態(tài)準備下次計數(shù)。
2 仿真測試與硬件實現(xiàn)
2.1 仿真結(jié)果分析
本設計采用Altera公司的Quartus II與Mentor Graphics公司的Modelsim作為主要的設計工具。Cyclone系列FPGA具有片上鎖相環(huán)(PLL)模塊,可以對輸入時鐘進行精確的倍頻、分頻、相位偏移、可編程占空比等操作。系統(tǒng)外部時鐘輸入頻率為50 MHz,通過配置片上PLL,可獲得3倍頻的計數(shù)時鐘與移相時鐘,5分頻的讀出時鐘。
圖5為單元電路計數(shù)狀態(tài)仿真結(jié)果。rst為系統(tǒng)復位信號,start為計數(shù)起始信號,stop為計數(shù)停止信號,cnt_clk為計數(shù)時鐘,shifted_clk為移相時鐘,state為狀態(tài)機狀態(tài)碼,shift_reg為多功能移位寄存器并行輸入端口,q為線性反饋移位寄存器輸出。在計數(shù)狀態(tài)下,當stop產(chǎn)生正脈沖時,LFSR停止計數(shù),多功能移位寄存器并行輸入鎖存器1與鎖存器2輸出的時鐘邏輯電平,記錄時鐘狀態(tài)。圖6為單元電路數(shù)據(jù)讀出狀態(tài)仿真時序圖,rd_out為讀出引腳,在讀出時鐘作用下,數(shù)據(jù)從移位寄存器中依次移出。
2.2 硬件測試
時間數(shù)字轉(zhuǎn)換陣列在Cyclone II EP2C15芯片實現(xiàn),系統(tǒng)外部時鐘50 MHz。由函數(shù)發(fā)生器提供頻率為F的脈沖信號,信號上升沿作為系統(tǒng)的起始信號,下降沿作為系統(tǒng)的停止信號,測得在不同頻率下的時鐘分辨率。測試數(shù)據(jù)表明時間分辨率的算術平均值為1.73 ns。
通過仿真與硬件測試表明,本設計能夠準確進行時間數(shù)字轉(zhuǎn)換,各項功能均達到預期要求。以低密度低成本的Altera Cyclone II EP2C15作為目標芯片的綜合報告顯示,單元電路占用FPGA邏輯資源約為0.375%,具有極低的資源占用率。本設計時間分辨率最高可達1.73 ns,并且實現(xiàn)原理簡單,具有可行性。
評論