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