劉立巖(中國船舶重工集團公司第七二三研究所,江蘇 揚州 225101)
現(xiàn)場可編程門陣列(FPGA)作為一種高集成的可編程邏輯器件,具有設(shè)計靈活、周期短、開發(fā)費用低等特點,是數(shù)字系統(tǒng)電路設(shè)計中非常通用的器件,其重要性不言而喻[1]。隨著現(xiàn)代工藝的發(fā)展,F(xiàn)PGA芯片向高密度、高速度、高性能和系統(tǒng)化的方向發(fā)展,而且FPGA開發(fā)工具的智能化功能強大,隨時可以更改設(shè)計,便于配置更新,同時實現(xiàn)設(shè)計仿真,更便于及時優(yōu)化設(shè)計,減少了很多浪費,并降低了研發(fā)周期等風(fēng)險。在FPGA芯片的設(shè)計中,對時鐘管理電路的時間測量精度要求越來越高,使得時鐘管理受到更多的關(guān)注并蓬勃發(fā)展[2]?;贔PGA的時間數(shù)字管理電路具有靈活性、可重配性、開發(fā)周期短等優(yōu)點,日益優(yōu)化的時間測量精度可以滿足各測量領(lǐng)域的要求。
基于FPGA設(shè)計的時鐘管理電路的主要作用是實現(xiàn)倍頻,并通過設(shè)計語言進(jìn)行程序?qū)崿F(xiàn),主要的應(yīng)用流程如圖1所示[3]。
圖1 完整的FPGA/CPLD設(shè)計流程
為了適應(yīng)大規(guī)模FPGA設(shè)計中多時鐘、高速度、低實驗的要求,芯片選用Xilinx公司的Virtex-Ⅱ系列,其內(nèi)部最高運行時鐘為420 MHz,選用其中的xc2v1000-5。芯片內(nèi)提供了8個高精度數(shù)字時鐘管理器(DCM),可以保證芯片內(nèi)時鐘信號的零傳送延遲時間,并具有去不對稱性功能(De-skew),同時可以方便地實現(xiàn)對時鐘信號的常用控制,如移相、倍頻等[2]。在Virtex-Ⅱ系列器件中,DCM的標(biāo)準(zhǔn)原型如圖2所示[4]。
圖2 數(shù)字時鐘管理器
本文的數(shù)字時鐘電路是基于Xilinx公司推出的Virtex-II系列開發(fā)板進(jìn)行研發(fā)設(shè)計的,該開發(fā)板的主要芯片是xc2v1000。
開發(fā)板的實物圖如圖3所示。
圖3 Virtex-Ⅱ開發(fā)板實物圖
Virtex-Ⅱ是Xilinx公司推出的一項針對高性能可編程解決方案的首個平臺級FPGA器件,可為嵌入式系統(tǒng)提供高度靈活、加快上市時間的可編程應(yīng)用平臺。xc2v1000屬于Xilinx公司產(chǎn)品系列中的一款芯片,Virtex-Ⅱ產(chǎn)品的配置模式和下載流程如表1所示[2-5]。
表1 Virtex-Ⅱ系列器件下載配置模式設(shè)置表
Virtex-Ⅱ系列器件下載配置流程如圖4所示。
圖4 Virtex-Ⅱ系列器件下載配置流程圖
選用Virtex-Ⅱ系列器件的xc2v1000-5BG575,內(nèi)置資源如表2所示[5]。
通過仿真,移相后的各個時鐘及等效時鐘如圖5、圖6所示,其中clk00000~clk11111表示移相后的各個時鐘,clk表示等效時鐘,s00表示待測信號。
本文采用了200 MHz的計數(shù)時鐘,經(jīng)90°移相后,系統(tǒng)原理誤差Ts=1/(200 MHz×4)=1.25 ns;所采用的計數(shù)器計數(shù)原理是FPGA對恒溫晶體振蕩器提供的100 MHz時鐘進(jìn)行二倍頻得到200 MHz時鐘,再對200 MHz時鐘進(jìn)行4路移相,各路移相后的時鐘彼此相差90°。每一路200 MHz移相時鐘驅(qū)動一路計數(shù)器工作,同時保證計數(shù)時刻的一致性,再在信號前沿到達(dá)時刻將各路計數(shù)器的輸出鎖存相加,以達(dá)到800 MHz的計數(shù)精度[6-7]。造成系統(tǒng)測量誤差的來源主要有系統(tǒng)原理誤差Ts,時鐘相移誤差Tp,計數(shù)時鐘抖晃誤差Tc和信號延遲誤差Td[8]。
表2 xc2v1000-5BG575內(nèi)置資源
圖6 脈寬測量仿真圖
當(dāng)采用200 MHz的計數(shù)時鐘時,系統(tǒng)原理誤差Ts=1.25 ns,時鐘移相誤差Tp指4路時鐘信號之間本身的相位偏移,根據(jù)芯片提供的參數(shù),其最大值Tp為Tp=150 ps,計數(shù)時鐘抖晃是指DCM輸出時鐘信號本身周期的偏差,其最大值Tc為Tc=150 ps[2-10],芯片內(nèi)部的信號延遲誤差在設(shè)計時可以通過調(diào)整內(nèi)部元器件的放置和連線減至最小,或通過增減門電路使各信號延遲時間盡可能相同。
本文介紹了電子研發(fā)領(lǐng)域應(yīng)用FPGA芯片數(shù)字時鐘管理方法的流程和經(jīng)驗。首先由需求入手,將對數(shù)字時鐘管理的方法轉(zhuǎn)化為開發(fā)印制電路,再根據(jù)移相時鐘、等效時鐘分析不同的誤差,最終在脈寬測量用例中得到了數(shù)字時鐘管理流程的結(jié)論。以不同的角度描述數(shù)字時鐘管理在脈寬測量應(yīng)用的功能。通過實際的工程應(yīng)用,得出系統(tǒng)測量誤差為T=Ts+Tp+Tc+Td,其最大值小于2 ns,可以滿足高精度測量系統(tǒng)的要求,從而應(yīng)用于各高精度時間脈寬測量領(lǐng)域?;贔PGA的數(shù)字時鐘管理設(shè)計應(yīng)用具備了設(shè)計效率,達(dá)到了時間測量精度,能夠滿足各測量領(lǐng)域的設(shè)計要求,提高了設(shè)計質(zhì)量。
[1] 張振.FPGA內(nèi)數(shù)字時鐘管理模塊的研究與設(shè)計[M].西安:西安電子科技大學(xué),2014.
[2] 謝登科,徐端頤,齊國生,張啟程.基于數(shù)字移相的高精度脈寬測量系統(tǒng)及其FPGA實現(xiàn)[J].電子技術(shù)應(yīng)用,2004(1):27-29.
[3] 范歡歡.基于FPGA的時間轉(zhuǎn)換電路的若干關(guān)鍵技術(shù)的研究[M].合肥:中國科技大學(xué),2015.
[4] 任曉東,文博.CPLD/FPGA高級應(yīng)用開發(fā)指南[M].北京:電子工業(yè)出版社,2003.
[5] 孫航.Xilinx可編程邏輯器件的高級應(yīng)用與設(shè)計技巧[M].北京:電子工業(yè)出版社,2004.
[6] 唐海峰.基于FPGA的時間測量電路的研究[M].昆明:昆明理工大學(xué),2016.
[7] 鄭卉卉.高精度到達(dá)時間及脈寬測量[M].鎮(zhèn)江:江蘇科技大學(xué),2007.
[8] 王康,黃樂天,李廣軍.一種異步電路設(shè)計的FPGA全流程驗證方法[J].微電子學(xué)與計算機,2014,31(5):184-187.
[9] 史毅.FPGA在高精度脈寬測量系統(tǒng)中的應(yīng)用[J].科技創(chuàng)新與應(yīng)用,2014(28):290.
[10] 陳波,王鐵.FPGA在直接數(shù)字波形合成寬帶信號源中的應(yīng)用[J].艦船電子對抗,2010,33(3):77-79.