《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 全同步數(shù)字頻率計的 VHDL設(shè)計與仿真
全同步數(shù)字頻率計的 VHDL設(shè)計與仿真
摘要: 1引言頻率測量不僅在工程應(yīng)用中有非常重要的意義,而且在高精度定時系統(tǒng)中也處于核心地位,±1個計數(shù)誤差通常是限制頻率測量精度進(jìn)一步提高的重要原因。由于測頻技術(shù)的重要性,使測頻方法也有了很大的發(fā)展,
關(guān)鍵詞: FPGA 數(shù)字頻率計 VHDL
Abstract:
Key words :
 

1 引 言

頻率測量不僅在工程應(yīng)用中有非常重要的意義,而且在高精度定時系統(tǒng)中也處于核心地位,±1個計數(shù)誤差通常是限制頻率測量精度進(jìn) 一步提高的重要原因。由于測頻技術(shù)的重要性,使測頻方法也有了很大的發(fā)展,常用數(shù)字頻率測量方法有M法,T法,和M/T(等精度測量法)法。M法,T法, 和M/T法都存在±1個計數(shù)誤差問題:M法存在被測閘門內(nèi)±1個被測信號的脈沖個數(shù)誤差,T法或M/T法也存在±1個字的計時誤差,這個問題成為限制測量 精度提高的一個重要的原因。全同步頻率測量法[1],從根本上消除了限制測量精度提高的±1個計數(shù)誤差問題,從而使頻率測量的精度和性能大為改善。

基于對FPGA器件和EDA技術(shù)以及全同步測頻方法的研究[2,3],介紹一種利用FPGA實現(xiàn)DC~100 MHz全同步數(shù)字頻率計的實現(xiàn)方法,并給出VHDL實現(xiàn)代碼和仿真波形。整個系統(tǒng)在研制的FPGA/CPID實驗開發(fā)系統(tǒng)上調(diào)試通過。本設(shè)計采用了高集成度的現(xiàn)場可編程門陣列(Field Program-mable Gata Array,F(xiàn)PGA)Flex EPF10k20TCl44-4芯片[4],通過軟件編程對目標(biāo)器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時對設(shè)計進(jìn)行調(diào)整,使得本設(shè)計具有集成度高、結(jié)構(gòu)靈活、開發(fā)周期短、可靠性高的優(yōu)點(diǎn)。

在文獻(xiàn)[2,5]中所描述的等精度頻率測量方法中,其測頻原理如圖1所示。



其 誤差與閘門時間和標(biāo)準(zhǔn)時鐘頻率有關(guān),閘門時間越長,標(biāo)準(zhǔn)時鐘頻率越高,誤差越小。因此,用等精度測頻法時所取的標(biāo)準(zhǔn)時鐘頻率比較高(10 MHz以上),因此±1計數(shù)誤差相對很小。標(biāo)準(zhǔn)時鐘頻率不可能無限制提高,并且隨著頻率提高,產(chǎn)品成本成倍增加,對于生產(chǎn)應(yīng)用沒有意義。因此本設(shè)計用改進(jìn) 的等精度頻率測量方法--全同步測量來實現(xiàn)數(shù)字頻率計的設(shè)計。在全同步的情況下,閘門信號不僅與被測信號同步,還與標(biāo)準(zhǔn)時鐘同步。其原理圖如圖2所示。

2 全同步測頻原理簡述
由文獻(xiàn)[1,6]可知:設(shè)開啟閘門時脈沖同步時間差為△t1,關(guān)閉閘門時脈沖同步時間差為△t2,脈沖同步檢測最大誤差為△t,則有:△t1≤△t,△t2≤△t。頻率測量的相
對誤差如式(2)所示:

由式(1)可知,誤差只與脈沖檢測電路準(zhǔn)確度有關(guān),顯然,控制△t來提高頻率測量精度是有效的,而且實現(xiàn)走來比提高標(biāo)準(zhǔn)時鐘頻率更容易。




在以上分析的基礎(chǔ)上,本設(shè)計采用FPGA來實現(xiàn)全同步數(shù)字頻率計。其系統(tǒng)原理框圖如圖3所示。由圖3可知,設(shè)計的絕大部分由FPGA完成,只有脈沖同步檢測電路由74LS系列與非門來實現(xiàn),以及顯示部分由數(shù)碼管構(gòu)成。


3 全同步數(shù)字頻率計模塊設(shè)計
由系統(tǒng)原理框圖3,則其FPGA內(nèi)部模塊電路設(shè)計原理如圖4所示。



設(shè) 計原理圖主要由以下幾部分組成:脈沖同步檢測電路、2個計數(shù)器、2個鎖存器、控制器、乘法器、除法器、澤碼電路等組成。工作原理如下:被測頻率與標(biāo)準(zhǔn)時鐘 分別送給脈沖同步檢測電路與2個計數(shù)器,當(dāng)脈沖同步檢測電路檢測到被測頻率與標(biāo)準(zhǔn)時鐘相位同步時,脈沖同步檢測電路發(fā)出同步信號,2個計數(shù)器開始計數(shù),當(dāng) 脈沖同步檢測電路再次檢測到間步信號時,義發(fā)出同步信號,計數(shù)器停止計數(shù)。同時計數(shù)器的計數(shù)值鎖存到鎖存器,時序乘法器從鎖存器中取得被測頻率的計數(shù)值與 標(biāo)準(zhǔn)時鐘頻率進(jìn)行乘法運(yùn)算,然后再將乘法器運(yùn)算所得的值與標(biāo)準(zhǔn)時鐘的計數(shù)值送給除法器,乘法器的結(jié)果為被除數(shù),標(biāo)準(zhǔn)時鐘的計數(shù)值為除數(shù),運(yùn)算所得結(jié)果就是 被測信號的頻率,然后冉經(jīng)過二卜進(jìn)制轉(zhuǎn)換變成BCD碼,送給數(shù)碼管顯示。本設(shè)計采用10 MHz的標(biāo)準(zhǔn)時鐘,由于乘法器輸入是27位二進(jìn)制,相當(dāng)于9位10進(jìn)制數(shù),而10 MHz的標(biāo)準(zhǔn)時鐘為107Hz,因此用被測頻率的計數(shù)值乘以108可得到一位小數(shù)點(diǎn)。
3.1 脈沖同步檢測電路

脈沖同步檢測電路 沒計原理圖如圖5所示。U1~U8為74LS系列與非門,同步檢測電路利用門電路的延時來構(gòu)成。當(dāng)被測信號及標(biāo)準(zhǔn)時鐘都處在低電平時,U1,U2輸出為高 電平,U3,U4的輸出為高電平,U5,U6輸出為低電平,則U8輸出為低電平。當(dāng)被測信號(Fx)及標(biāo)準(zhǔn)時鐘的上升沿同時到來時,由于門電路具有延時特 性,因此U1,U2并不馬上變?yōu)榈碗娖剑且?jīng)過一個延時才變?yōu)榈碗娖?。于是U3,U4的輸入端都是高電平,則U3,U4
輸出為低電平,U5,U6的輸出為高電平,則U8輸出為高電平。但是當(dāng)且儀當(dāng)Fx與CLK的上升沿在在延時時間內(nèi)同時到達(dá)時U8才會輸出高電平。74LS系列與非門的延時最小為4 ns,最大為15 ns,因此最大誤差為11ns。根據(jù)公式(2)得:



當(dāng)T0為1 s時,其精度可達(dá)到10-7,如再減小相位誤差,則可提高頻率計的精確度。

3.2 FPGA芯片內(nèi)部模塊電路設(shè)計和仿真結(jié)果
FPGA芯片內(nèi)部模塊電路設(shè)計和仿真結(jié)果如圖6到圖9所示。


3.2.1 計數(shù)器
此 計數(shù)播為27位二進(jìn)制,具有計數(shù)使能端(ena)、異步清零端(clr)、時鐘輸入端(clk)、進(jìn)位輸出端(ov)等。當(dāng)異步清零端(clr)為高電平 時,不管計數(shù)使能端是否有效,時鐘上升沿是否到來,計數(shù)器都立即清零,即q=0。只有異步清零端(clr)為低電平,并且汁數(shù)使能端為高電平,有上升沿到 來時,計數(shù)器才開始計數(shù),當(dāng)計數(shù)器計滿時,進(jìn)位輸出為高電平。計數(shù)器VHDL程序仿真圖如圖6所示。




3.2.2 乘法器
由 于本設(shè)計所用的乘法器位數(shù)較寬,而組合邏輯乘法器位數(shù)越多耗用的硬件資源成倍增長,并且本設(shè)計不需要有很高的運(yùn)算速度,考慮到硬件資源與運(yùn)算速度,因此采 用時序電路來實現(xiàn)乘法器,其原理是通過逐項移位相乘相加來實現(xiàn)。他是一種犧牲運(yùn)算時間換取硬件資源的方案。乘法器的VHDL程序仿真圖如圖7所示。




3.2.3 除法器

除法器則可通過移位相減相除來實現(xiàn),其工作原理與剩法器是一樣的,其VHDL程序仿真圖如圖8所示。




3.2.4 控制器

控 制器工作時序如下:當(dāng)同步信號(clk)上升沿到來時,計數(shù)使能信號(cp)立即變成高電平,鎖存信號(creg)及清零信號(clr)變成低電平,同步 信號(clk)的上升沿再次到來時,除清零信號(clr)外,其余信號均取反,當(dāng)同步信號(clk)的下降沿到來時,清零信號(clr)變成高電平。當(dāng)同 步信號又到來時,重復(fù)上述過程,其仿真結(jié)果如圖9所示。




3.2.5 頂層設(shè)計

由 模塊電路設(shè)計原理圖4,經(jīng)過VHDL編程,得到各模塊的VHDL設(shè)計實體,然后對各模塊的設(shè)計實體在Max+PlusⅡ中進(jìn)行仿真,驗證各模塊的正確性。 最后再設(shè)計一個頂層文件把各模塊按圖4連接起來,便構(gòu)成了一個全同步數(shù)字頻率計的FPGA內(nèi)部硬件電路。下面給出頂層文件的仿真結(jié)果,由仿真圖10可看 出:124×108/93=13 333 333,由于使用的是10 MHz的晶振,因此還有一位小數(shù)點(diǎn)最終顯示的結(jié)果應(yīng)該是1 333 333.3Hz。由仿真圖11知,小數(shù)位在數(shù)碼管的第二位上有效,其余位均無效。仿真結(jié)果與期望結(jié)果一致。至此,本設(shè)計得到成功驗證。





4 結(jié) 語

本 文利用Altear公司的FPGA芯片F(xiàn)lexEPF10k20TC144-4 [5],使用VHDL語言設(shè)計了全同步數(shù)字頻率計,在Max+PlusⅡ中進(jìn)行了各模塊的仿真,達(dá)到了預(yù)期結(jié)果。全同步數(shù)字頻率計是目前精度最高的頻率計 之一。在高速時鐘隨處可見的現(xiàn)代電子系統(tǒng),有著非常廣泛的研究價值。從某種程度上說他是以犧牲時間來換取精確度的,但一般情況下測頻系統(tǒng)對時間的要求并不 高,并且由于電子系統(tǒng)對系統(tǒng)時鐘的準(zhǔn)確度越來越高,因此全同步數(shù)字頻率計有著廣泛的應(yīng)用空間。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。