基于FPGA的高精度時(shí)間數(shù)字轉(zhuǎn)換電路的設(shè)計(jì)與實(shí)現(xiàn)
1.引言
時(shí)間數(shù)字轉(zhuǎn)換電路 TDC (Time to Digital Converter)廣泛應(yīng)用于高能物理中粒子壽命檢測(cè)、自動(dòng)檢測(cè)設(shè)備、激光探測(cè)、醫(yī)療圖形掃描、相位測(cè)量、頻率測(cè)量等研究領(lǐng)域[1]。如在醫(yī)療圖象掃描儀 PET中廣泛使用 TDC設(shè)備,其原理是檢測(cè)人體內(nèi)正電子對(duì)消失后產(chǎn)生的一對(duì) gamma射線光子,利用模擬電路將所釋放的 gamma射線光子與閾值比較,并在高于該閾值時(shí)產(chǎn)生一個(gè)觸發(fā)脈沖,數(shù)字 TDC電路測(cè)量該觸發(fā)脈沖到達(dá)的時(shí)間。早期該類設(shè)備中的 TDC的分辨率為 2.5ns,目前新型設(shè)備中分辨率已達(dá) 1.4ns [2]。在激光探測(cè)中,TDC電路用來測(cè)量 TOF(Time of Flight for Laser),即分辨從激光源到目標(biāo)后再返回到激光檢測(cè)器的時(shí)間[3]。另外,TDC也是間接實(shí)現(xiàn) ADC的手段之一。如果在模擬信號(hào)前加一個(gè) ATC(Analog to Time Conversion),加上后續(xù)的 TDC部分則可以完成 ADC過程。
早期 TDC電路通常由印刷線路板(PCB)上的分立元件組成,且通常是模擬-數(shù)字混合電路,因此功耗和體積較大、電路的一致性較差。超大規(guī)模集成電路(VLSI)工藝的進(jìn)步使TDC設(shè)計(jì)在保持高分辨率的前提下向高集成度、低成本、低功耗方向發(fā)展。同時(shí)全數(shù)字集成(All DIGItal Integration)電路設(shè)計(jì)因工藝簡(jiǎn)單、設(shè)計(jì)成本較低、設(shè)計(jì)難度較小、流片成功率高等因素而一直是電路設(shè)計(jì)人員追求的目標(biāo),全數(shù)字的 TDC也是研究人員關(guān)注的問題。
文獻(xiàn)[4]于 1993年報(bào)道了一種基于環(huán)形延時(shí)門的全數(shù)字 TDC設(shè)計(jì)。該設(shè)計(jì)以 1.5微米 CMOS工藝實(shí)現(xiàn)了 13位數(shù)字轉(zhuǎn)換輸出,芯片面積為 1.1mm 2,分辨率為 0.5ns。之后于 2003年,該作者在文獻(xiàn)[5]報(bào)道了一種全數(shù)字化的模數(shù)變換電路,該電路基于環(huán)形延時(shí)門的全數(shù)字TDC實(shí)現(xiàn)。文獻(xiàn)稱以 0.8微米 CMOS工藝在 0.45mm 2面積上實(shí)現(xiàn)了 18位全數(shù)字的 ADC。
隨著集成電路(IC)制造工藝的不斷進(jìn)步,以FPGA(Field Programmable Gate Array)和CPLD( Complex Programmable Logic Device)為代表可編程邏輯器件 PLD產(chǎn)業(yè)迅速發(fā)展,逐漸蠶食專用集成電路ASIC(Application Specific Integrated Circuit)所占市場(chǎng)份額。這一發(fā)展使得基于PLD的TDC設(shè)計(jì)成為可能。眾所周知,基于PLD的設(shè)計(jì)可以有效地縮短研制周期,
提高設(shè)計(jì)靈活性和可靠性,降低設(shè)計(jì)成本且無流片風(fēng)險(xiǎn)。成功設(shè)計(jì)的IP核(Intellectual Property Core )與工藝相對(duì)獨(dú)立,可靈活地移植到其他SOC,使設(shè)計(jì)重用變得十分方便。
本文借鑒文獻(xiàn)[4]和文獻(xiàn)[5]的環(huán)形延時(shí)門法提出一種基于 FPGA的高精度 TDC的設(shè)計(jì)方法,為了適應(yīng) FPGA設(shè)計(jì),對(duì)延時(shí)門法做了改造。如果簡(jiǎn)單移植延時(shí)門設(shè)計(jì),在 FPGA中實(shí)際是行不通的。因?yàn)榕c ASIC設(shè)計(jì)不同,在 FPGA里門電路是由 EDA軟件綜合后實(shí)現(xiàn),首先很難保證各門之間的延時(shí)一致性;其次,在時(shí)序上也很難保證和其他電路的配合。為了提高分辨率,與單純計(jì)數(shù)型 TDC不同,本設(shè)計(jì)中也采用類似環(huán)形延時(shí)門設(shè)計(jì)的粗計(jì)數(shù)和細(xì)計(jì)數(shù)兩部分電路對(duì)給定的時(shí)間量進(jìn)行測(cè)量,粗計(jì)數(shù)部分控制測(cè)量范圍,細(xì)計(jì)數(shù)部分則由環(huán)形移位寄存器代替環(huán)形延時(shí)門實(shí)現(xiàn)。本轉(zhuǎn)換電路以 QuartusII 4.2為軟件平臺(tái)在 Altera系列芯品上實(shí)現(xiàn),時(shí)序仿真表明昀高分辨率可達(dá) 3.3ns。
2.基本工作原理
基于環(huán)形延時(shí)門的 TDC系統(tǒng)的原理框圖如圖 1 所示,PA是起始脈沖,由非門組成的特定結(jié)構(gòu)延時(shí)鏈提供脈沖 PA的延時(shí)信息。在 PB上升沿,延時(shí)信息經(jīng)鎖存編碼電路鎖存并編碼后輸出,脈沖 PB與 PA之間的時(shí)間差即由編碼輸出的數(shù)字量表示。實(shí)驗(yàn)結(jié)果表明,該方法適用于 ASIC實(shí)現(xiàn),但不適用于 FPGA實(shí)現(xiàn)。原因是目前 EDA工具中綜合器的綜合結(jié)果是從設(shè)計(jì)對(duì)象的邏輯功能出發(fā),而不注重設(shè)計(jì)者所特定的電路結(jié)構(gòu),而根據(jù) FPGA電路的內(nèi)部電路特點(diǎn),文獻(xiàn)[2]提供的延時(shí)鏈結(jié)構(gòu)并不適于在 FGPA上實(shí)現(xiàn)。FPGA內(nèi)部布線延時(shí)的不確定性會(huì)大大增加各單元延時(shí)信息的離散性。文獻(xiàn)[6]介紹了該方法的 CPLD實(shí)現(xiàn),但該法針對(duì)具體芯片附加了許多約束條件,延時(shí)鏈中每個(gè)非門由片內(nèi)的一個(gè)邏輯宏單元 LE實(shí)現(xiàn),由于 CPLD容量相對(duì)較小,導(dǎo)致芯片資源利率低,芯片間的移植性差,且由于 FPGA與 CPLD結(jié)構(gòu)上的差異暫無法在 FPGA上實(shí)現(xiàn)。以下介紹一種全新的基于 FPGA的高精度 TDC設(shè)計(jì)方法。
基于 FPGA的 TDC電路原理如圖 2所示,該電路包括 16位環(huán)形移位寄存器 (Ring Shift Register)、16位輸入 4位輸出的編碼電路 (Encoder)、時(shí)鐘管理模塊(Clockmgr)、8位通用計(jì)數(shù)器單元(Counter)、復(fù)位邏輯(Reset Logic)和輸出邏輯部分(Out Logic)。其中環(huán)型移位寄存器和編碼器組成該電路的細(xì)計(jì)數(shù)器部分,用來控制電路測(cè)量精度;通用計(jì)數(shù)器作為粗計(jì)數(shù)部分,決定電路的時(shí)間測(cè)量范圍;時(shí)鐘管理模塊通過調(diào)用 FPGA內(nèi)部 PLL資源用來為移位寄存器提供合適的工作時(shí)鐘;復(fù)位邏輯控制整個(gè) TDC電路的復(fù)位動(dòng)作;輸出邏輯將轉(zhuǎn)換數(shù)字量的細(xì)計(jì)數(shù)和粗計(jì)數(shù)部分組合為昀終系統(tǒng)輸出。
16位移位寄存器構(gòu)成如圖 3,由 16個(gè)帶異步復(fù)位和置位端的 D觸發(fā)器組成,初始狀態(tài)或復(fù)位后電路節(jié)點(diǎn) p15被置位高電平,其他節(jié)點(diǎn)(p14至 p0)被復(fù)位至低電平;正常工作時(shí),在移位脈沖 clk上升沿時(shí)高電平在 16個(gè)電路節(jié)點(diǎn)中循環(huán)出現(xiàn),通過檢查某時(shí)刻電路節(jié)點(diǎn)的狀態(tài)(高電平的位置)可以判斷系統(tǒng)所經(jīng)歷的移位脈沖 clk的數(shù)量,電路的時(shí)間分辨率即為 clk的時(shí)鐘周期。編碼器對(duì)移位寄存器節(jié)點(diǎn)狀態(tài)編碼并作為測(cè)量電路細(xì)計(jì)數(shù)部分的 4位輸出。通用計(jì)數(shù)器工作在移位寄存器節(jié)點(diǎn) p15的上升沿,其計(jì)數(shù)周期為移位脈沖周期的 16倍,完成低位到高位的進(jìn)位計(jì)數(shù),并作為測(cè)量電路的粗計(jì)數(shù)部分的 8位輸出。復(fù)位邏輯負(fù)責(zé)環(huán)形移位寄存器和通用計(jì)數(shù)器的復(fù)位操作。輸出邏輯分別將粗計(jì)數(shù)和細(xì)計(jì)數(shù)輸出的 8位和 4位數(shù)據(jù)組合為測(cè)量電路的昀終輸出,并完成數(shù)據(jù)的校驗(yàn)。
基于 FPGA的單計(jì)數(shù)器脈寬測(cè)量電路采用在脈沖寬度對(duì)應(yīng)的時(shí)間內(nèi)記數(shù)的方法,因高頻工作時(shí)計(jì)數(shù)器會(huì)出現(xiàn)跳碼或漏計(jì)現(xiàn)象,造成系統(tǒng)錯(cuò)誤輸出,所以分辨率很難提高 [7]。與單計(jì)數(shù)器脈寬測(cè)量電路相比采用結(jié)構(gòu)簡(jiǎn)單的細(xì)計(jì)數(shù)電路能大大提高電路的時(shí)間分辨率,并避免了通用計(jì)數(shù)器極限工作頻率下的跳碼現(xiàn)象,且細(xì)計(jì)數(shù)電路占用極少的片上資源。
3系統(tǒng)實(shí)現(xiàn)及優(yōu)化
Altera公司提供的 Stratix和 Cyclone系列 FPGA芯片具有嵌入式鎖相環(huán)( PLL)模塊,該模塊可對(duì)外部時(shí)鐘進(jìn)行倍頻分頻及相移操作,可編程占空比和外部時(shí)鐘輸出,進(jìn)行系統(tǒng)級(jí)的時(shí)鐘管理和偏移控制,常用于同步內(nèi)部器件時(shí)鐘和外部時(shí)鐘,使內(nèi)部工作的時(shí)鐘頻率比外部時(shí)鐘更高,時(shí)鐘延遲和時(shí)鐘偏移昀小,減小或調(diào)整時(shí)鐘到輸出(TCO)和建立(TSU)時(shí)間,從而提供完整的時(shí)鐘管理方案。使用 Altera Quartus? II軟件無需任何外部器件,就可以調(diào)用芯片內(nèi)部的 PLL來實(shí)現(xiàn)相應(yīng)功能。
該系統(tǒng)時(shí)鐘管理模塊調(diào)用 FPGA內(nèi)部 PLL實(shí)現(xiàn),通過 QuartusII設(shè)置參數(shù)為:Ratio為倍頻/分頻因子(Ratio)為 4,輸出時(shí)鐘相移 (Ph) 為 0,輸出時(shí)鐘占空比 (DC)為 50%。
該 TDC電路的時(shí)間分辨率取決于環(huán)形移位寄存器和編碼電路組成的細(xì)計(jì)數(shù)部分,要得到正確的測(cè)量數(shù)據(jù)必須保證對(duì)移位寄存器輸出狀態(tài)的正確編碼。與 ASIC設(shè)計(jì)不同,設(shè)計(jì)者很難預(yù)料 EDA軟件布局布線(Layout)后的情況,而且各種不同結(jié)構(gòu)和性能的可編程器件布局布線的結(jié)果也不盡相同,而且構(gòu)成移位寄存器的 D觸發(fā)器的時(shí)鐘到輸出時(shí)間(TCO)和 D觸發(fā)器輸入在金屬連線上穩(wěn)定建立的時(shí)間(TSU)也存在一定離散性,使得高頻移位脈沖(納秒級(jí))工作下的移位寄存器在狀態(tài)轉(zhuǎn)換時(shí)出現(xiàn)毛刺現(xiàn)象,影響編碼正確輸出,同時(shí)編碼器的固有延時(shí)特性也限制系統(tǒng)的時(shí)間分辨率。該脈寬測(cè)量電路系統(tǒng)采用的優(yōu)化的編碼算法,使得高頻移位狀態(tài)下編碼輸出能準(zhǔn)確反映環(huán)形移位寄存器上各節(jié)點(diǎn)狀態(tài),從而保證了該系統(tǒng)的測(cè)量精度;移位時(shí)鐘為 333MHz(周期 3ns)時(shí)在 Altera公司 Stratix和 Cyclone系列芯片上實(shí)現(xiàn)了編碼器的正常工作。
該系統(tǒng)包含了粗記數(shù)和細(xì)記數(shù)兩部分電路,粗記數(shù)電路在細(xì)記數(shù)字電路高位輸出(圖 3中 p15)的上升沿工作。但是由于粗記數(shù)電路的延時(shí)在被測(cè)脈沖( clks)上升沿時(shí)可能會(huì)造成對(duì)輸出數(shù)據(jù)的誤讀。
為解決誤讀現(xiàn)象,在輸出邏輯模塊里加入糾錯(cuò)電路。對(duì)被測(cè)脈沖 clks延時(shí) clk周期后產(chǎn)生新時(shí)鐘 clks1,在 clks和 clks1的上升沿同時(shí)對(duì) q1和 q0取樣并對(duì)取樣數(shù)據(jù)進(jìn)行處理后作為昀終數(shù)據(jù)輸出,從而有效地解決了誤讀現(xiàn)象。
移位脈沖工作頻率即為該測(cè)量電路的時(shí)間分辨率,通過時(shí)鐘管理單元可采用不高的外部時(shí)鐘便可得到很高的測(cè)量精度。
3仿真結(jié)果和測(cè)試數(shù)據(jù)
為測(cè)試該系統(tǒng)的時(shí)間分辨率,為基本時(shí)間數(shù)字轉(zhuǎn)換電路附加特定功能電路,使其具有連續(xù)測(cè)量時(shí)鐘脈沖寬度的功能,測(cè)試對(duì)象是 clks的高電平延續(xù)時(shí)間。通過改變時(shí)鐘脈沖源的頻率來記錄該電路對(duì)應(yīng)的測(cè)量數(shù)據(jù),從而得到該 TDC電路的時(shí)間分辨率。
本文以 QuartusII Web Edition 4.2為軟件平臺(tái),實(shí)驗(yàn)表明,本 TDC設(shè)計(jì)在 Altera各主流芯品上的時(shí)序仿真均能順利通過。適配 Cyclone EP1C3Q240C8芯片的時(shí)序仿真表明,移位時(shí)鐘為 333M(即分辨率為 3ns),所得到的測(cè)試數(shù)據(jù)輸出正確地反映了被測(cè)脈沖的寬度,被測(cè)脈沖下降沿到測(cè)量數(shù)據(jù)建立的延時(shí)為 5ns。
由該 TDC構(gòu)成的脈寬測(cè)量電路在 Cyclone EP1C3Q240C8芯片實(shí)現(xiàn),系統(tǒng)外部時(shí)鐘 25Mhz,PLL設(shè)置倍頻因子 8,由 SP1641B信號(hào)發(fā)生器提供固定的被測(cè)脈沖頻率 F,時(shí)間分辨率 Res的分布如圖 4所示,測(cè)試數(shù)據(jù)表明 Res在 4.9-5.1ns之間,理論值為 5ns。
測(cè)量和仿真數(shù)據(jù)表明該電路能達(dá)到納秒級(jí)時(shí)間分辨率,邏輯資源占用少,可在低密度芯片上實(shí)現(xiàn)作為專用測(cè)量電路使用,或在高密度芯片上作為功能模塊嵌入到特定功能的片上系統(tǒng)(SOC)中;該 TDC電路的轉(zhuǎn)換速度也在納秒級(jí),使該電路適用于實(shí)時(shí)數(shù)據(jù)采集及高速數(shù)據(jù)處理系統(tǒng)。精度可調(diào)也是該設(shè)計(jì)一大特點(diǎn),移位脈沖的工作頻率決定了該轉(zhuǎn)換系統(tǒng)的轉(zhuǎn)換精度,通過時(shí)鐘管理單元可以產(chǎn)生不同頻率的移位時(shí)鐘,從而測(cè)量精度可以根據(jù)具體需要進(jìn)行適當(dāng)調(diào)整。
3結(jié)束語
本基于 FPGA的時(shí)間數(shù)字轉(zhuǎn)換電路設(shè)計(jì)在占用較少芯片資源的前提下,實(shí)現(xiàn)了很高的測(cè)量精度,工作時(shí)數(shù)據(jù)轉(zhuǎn)換速度也在納秒級(jí);本設(shè)計(jì)電路接口簡(jiǎn)單可作為獨(dú)立的功能電路使用,亦可作為功能模塊 IP核[8]方便地嵌入到其他系統(tǒng)實(shí)現(xiàn)特定功能?;?Altera芯片的時(shí)序仿真和硬件測(cè)試表明了該方法的可行性和準(zhǔn)確性。
評(píng)論