《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動態(tài) > 基于高速串行BCD碼除法的數(shù)字頻率計的設(shè)計

基于高速串行BCD碼除法的數(shù)字頻率計的設(shè)計

2008-08-18
作者:徐 輝 王祖強(qiáng) 王照君

??? 摘?要: 介紹了在FPGA芯片上實(shí)現(xiàn)數(shù)字頻率計" title="數(shù)字頻率計">數(shù)字頻率計的原理。對各種硬件除法進(jìn)行了比較,提出了高速串行" title="高速串行">高速串行BCD碼除法的硬件算法,并將其應(yīng)用在頻率計設(shè)計中。
??? 關(guān)鍵詞: 頻率測量? 周期測量? FPGA? VHDL? 狀態(tài)機(jī)

?

??? 數(shù)字頻率計是計算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。采用VDHL編程設(shè)計實(shí)現(xiàn)的數(shù)字頻率計,除被測信號的整形部分、鍵輸入部分和數(shù)碼顯示部分以外,其余全部在一片F(xiàn)PGA芯片上實(shí)現(xiàn),整個系統(tǒng)非常精簡,而且具有靈活的現(xiàn)場可更改性。在不更改硬件電路的基礎(chǔ)上,對系統(tǒng)進(jìn)行各種改進(jìn)還可以進(jìn)一步提高系統(tǒng)的性能。該數(shù)字頻率計具有高速、精確、可靠、抗干擾性強(qiáng)和現(xiàn)場可編程等優(yōu)點(diǎn)。
??? 在設(shè)計中,所有頻段均采用直接測頻法對信號頻率進(jìn)行測量,克服了逼近式換擋速度慢的缺點(diǎn);采用了門控" title="門控">門控信號和被測信號對計數(shù)器的使能端進(jìn)行雙重控制,提高了測量的精確度;在運(yùn)算單元采用了高速串行BCD碼除法,不僅提高了運(yùn)算速度,而且減小了資源消耗。
1 系統(tǒng)結(jié)構(gòu)及基本設(shè)計原理
??? 以一個8位十進(jìn)制、測量范圍為1Hz~100MHz的數(shù)字頻率計為例,采用100MHz的標(biāo)準(zhǔn)頻率信號,說明設(shè)計的基本原理及實(shí)現(xiàn)。設(shè)計的數(shù)字頻率計由測量頻率模塊、計算模塊和譯碼模塊組成,如圖1所示。測頻模塊采用兩個十進(jìn)制計數(shù)器分別測出門控時間內(nèi)的標(biāo)準(zhǔn)信號和被測信號的周期數(shù)Ns和Nx。計算模塊則根據(jù)公式Fx/Nx=Fs/Ns算出Fx,通過譯碼即可得到被測信號頻率的7段數(shù)碼顯示。

?


??? 數(shù)字頻率計的設(shè)計原理實(shí)際上是測量單位時間內(nèi)的周期數(shù)。這種方法免去了實(shí)測以前的預(yù)測,同時節(jié)省了劃分頻段的時間,克服了原來高頻段采用測頻模式而低頻段采用測周期模式的測量方法存在換擋速度慢的缺點(diǎn)。
??? 為克服低頻段測量的不準(zhǔn)確問題,采用門控信號和被測信號對計數(shù)器的使能信號進(jìn)行雙重控制,大大提高了準(zhǔn)確度,如圖2所示。

?


??? 當(dāng)門控信號為1時,使能信號并不為1,只有被測信號的上升沿到來時,使能端才開始發(fā)送有效信號,兩個計數(shù)器同時開始計數(shù)。當(dāng)門控信號變?yōu)?時,使能信號并不是立即改變,而是當(dāng)被測信號的下一個上升沿到來時才變?yōu)?,計數(shù)器停止計數(shù)。因此測量的誤差最多為一個標(biāo)準(zhǔn)時鐘周期" title="時鐘周期">時鐘周期。當(dāng)采用100MHz的信號作為標(biāo)準(zhǔn)信號時,誤差最大為0.01μs。
2 高速串行BCD碼除法運(yùn)算原理
??? 利用FPGA實(shí)現(xiàn)二進(jìn)制除法運(yùn)算,一種方法是采用逼近法,這種方法速度低、準(zhǔn)確性不高。另一種方法是采取被除數(shù)與除數(shù)的倒數(shù)相乘的方法,即將除數(shù)作為寄存器的地址,其倒數(shù)的小數(shù)部分作為寄存器的內(nèi)容,通過一次寄存器尋址來計算除數(shù)的倒數(shù)。這種方法在一個時鐘周期內(nèi)即可完成一個完整的除法運(yùn)算,雖然速度較高,但對于多字節(jié)除法運(yùn)算,不僅程序復(fù)雜,而且占用資源較多。根據(jù)頻率計的實(shí)際情況,本設(shè)計采用串行除法運(yùn)算,利用多個時鐘周期完成一個完整的除法運(yùn)算,從而兼顧了頻率計對速度和資源兩方面的要求。
2.1 多位串行BCD碼減法原理
??? 在數(shù)字串行除法運(yùn)算中,減法運(yùn)算是必不可少的部分。數(shù)字串行BCD碼的減法運(yùn)算是將P位的BCD碼分為P個寬為4的二進(jìn)制數(shù),然后從低位開始相減,在P個時鐘周期內(nèi)完成減法操作。如果輸入的操作數(shù)位數(shù)為8,那么串行BCD碼減法器可以在8個時鐘周期內(nèi)完成8位BCD碼減法運(yùn)算。
??? 數(shù)字串行減法的控制也比較簡單,1位BCD碼減法運(yùn)算完成,進(jìn)行移位操作,并且移位次數(shù)加1,然后通過采用start信號指示新計算周期。當(dāng)移位次數(shù)為n時,輸出移位寄存器完成串/并轉(zhuǎn)換,輸出結(jié)果。設(shè)計者可以根據(jù)實(shí)際情況,通過選擇不同的n,提高設(shè)計的靈活性。本設(shè)計選擇n=8。
??? 該設(shè)計在提高速度的同時,節(jié)省了資源。實(shí)驗(yàn)證明,采用100MHz的工作頻率" title="工作頻率">工作頻率,實(shí)現(xiàn)一個8位BCD碼串行減法運(yùn)算,耗用的資源卻小于實(shí)現(xiàn)2位BCD碼并行減法運(yùn)算所耗用的資源。
2.2? 多位串行BCD碼除法原理
??? 本設(shè)計采用循環(huán)式除法運(yùn)算,循環(huán)原理可以用下面的公式表示[1]
??? ω[j+1]=rω[j]-dqj+1
式中,ω[j]為第j步的余數(shù),ω[0]為被除數(shù);d為除數(shù);qj+1為第j+1步所得的商;r為與移位步長有關(guān)的常數(shù),在此取為16。
??? 除法運(yùn)算循環(huán)圖表如圖3所示。

?


??? 循環(huán)步驟如下:
?? ?·將ω[j]左移四位,構(gòu)成rω[j]。
??? ·通過多次BCD碼減法運(yùn)算,求得部分商 qj+1,得到部分余數(shù)。
??? ·部分余數(shù)、部分商移位,準(zhǔn)備下次循環(huán)。
??? 高速串行BCD碼除法是建立在BCD碼減法運(yùn)算基礎(chǔ)上的循環(huán)運(yùn)算。用被除數(shù)減除數(shù)得到部分余數(shù)的BCD碼,如果夠減,則使商加1;否則,余數(shù)和商同時左移四位,并記錄移位的次數(shù)m,根據(jù)對有效位數(shù)的不同要求,可以對m進(jìn)行賦值,如果要求保留8位有效數(shù)字,則m=8。
??? 在這種循環(huán)除法運(yùn)算中,減少循環(huán)的次數(shù)是提高運(yùn)算速度比較有效的方法。在一般循環(huán)式除法運(yùn)算中,是從低位開始進(jìn)行循環(huán)相減,循環(huán)次數(shù)等于商。如果是8位除法運(yùn)行,則得到一個8位的商,要進(jìn)行8位次的BCD碼減法循環(huán),例如:56895230/8=7111903.8,要進(jìn)行7111903.8次循環(huán),計算的速度可想而知。
??? 在本設(shè)計中借鑒了一般十進(jìn)制除法的運(yùn)算方法,從高位開始相減,大大減少了循環(huán)次數(shù)。下面以一個例子說明它的原理:
??? ·將被除數(shù)和除數(shù)移位,使其第一位BCD碼不為0000,并記錄移位的次數(shù)p(例如:56895230/80000000,p=8)。
??? ·比較最高位的大小,如果除數(shù)的最高位大于被除數(shù)的最高位,則將除數(shù)右移4位,同時將p減1(即:56895230/08000000,且p=7)。
??? ·得到的數(shù)p為小數(shù)點(diǎn)的位置(p=7說明小數(shù)點(diǎn)的位置在第七位數(shù)后)。
??? ·循環(huán)相減。當(dāng)部分余數(shù)小于08000000,再將部分余數(shù)左移四位,繼續(xù)進(jìn)行相減。循環(huán)m次后即可得到m個有效數(shù)字的結(jié)果,然后根據(jù)p可以確定小數(shù)點(diǎn)的位置。
??? 使用這種方法計算一個8位數(shù)的除法運(yùn)算,循環(huán)減法次數(shù)最大為80次,每次循環(huán)使用時間為8個時鐘周期。如果工作頻率為100MHz,則最長的運(yùn)算時間為6.4μs,運(yùn)算速度大大提高。
3 設(shè)計實(shí)現(xiàn)
??? 采用VHDL語言設(shè)計一個復(fù)雜的電路系統(tǒng),運(yùn)用自頂向下的設(shè)計思想[2],將系統(tǒng)按功能逐層分割的層次化設(shè)計方法進(jìn)行設(shè)計。在頂層對內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系進(jìn)行了描述,而功能塊的邏輯功能和具體實(shí)現(xiàn)形式則由下一層模塊來描述。根據(jù)頻率計的系統(tǒng)原理框圖(圖1),運(yùn)用自頂向下的設(shè)計思想,設(shè)計的系統(tǒng)頂層電路圖如圖4所示。各功能模塊采用VHDL語言來描述。

?


??? 在計數(shù)模塊中,通過譯碼完成的信號COMP和標(biāo)準(zhǔn)信號計數(shù)器的溢出信號ov2對門控信號CL進(jìn)行控制??梢愿鶕?jù)不同的情況選擇門控信號的時間范圍,使設(shè)計具有一定的靈活性。采用門控信號CL和被測信號BSN對兩個8位十進(jìn)制計數(shù)器進(jìn)行同步控制[3]。根據(jù)D觸發(fā)器的邊沿觸發(fā)的特點(diǎn),可以將輸入的門控信號CL作為D觸發(fā)器的輸入信號,而將被測信號BSN作為D觸發(fā)器的脈沖控制信號,使觸發(fā)器的輸出端只有在被測信號BSN上升沿時才發(fā)生變化,實(shí)現(xiàn)了對使能信號的雙重控制。
??? 本設(shè)計比較重要的一部分是運(yùn)算單元。由于在運(yùn)算單元中采用的是串行運(yùn)算,因此其工作頻率必須足夠高。在FPGA中實(shí)現(xiàn)時,如何提高串行BCD碼除法運(yùn)算的速度是比較關(guān)鍵的問題。
??? BCD碼減法運(yùn)算采用行波進(jìn)位方法,因此必須盡量減小進(jìn)位邏輯上的延遲。ACEX 1K系列的每個LE中都提供了一個專用的進(jìn)位鏈和級聯(lián)鏈,充分利用這些資源可以提高多位串行BCD碼減法的性能。根據(jù)ACEX1K系列周期約束,其延時為:
??? Tclk=Tco+B+Tsu-(E-C)
??? 式中,Tco為clock-output的延時,Tsu為建立時間,兩個時間均可達(dá)到1~2ns;B表示數(shù)據(jù)延時,為0.6ns;(E-C) 表示時鐘傾斜[4]。因此,總時鐘延時為4.6ns,即工作頻率可以達(dá)到200MHz以上。本文采用100MHz的工作頻率,提高了運(yùn)算速度。為了減小延時、提高工作效率,在對布局布線進(jìn)行精確控制以后,把BCD碼減法運(yùn)算做成模塊,在除法運(yùn)算過程反復(fù)調(diào)用,達(dá)到了模塊復(fù)用效果,大大提高了資源的利用率。
??? 在整個BCD碼除法運(yùn)算單元,首先通過輸入數(shù)據(jù)決定信號是否超出測量范圍。
??? ·當(dāng)ov1為1時,該信號的頻率大于1Hz;
??? ·當(dāng)NS??? ·當(dāng)NS=NX,該信號的頻率為1Hz;
??? ·當(dāng)NS>NX,該信號頻率在測量范圍內(nèi)。
?? ?根據(jù)輸入的NS和NX計算輸入信號的頻率。
??? 除法運(yùn)算通過雙狀態(tài)機(jī)的設(shè)計控制一個BCD碼減法運(yùn)算。所有狀態(tài)用同一時鐘進(jìn)行控制,實(shí)現(xiàn)了系統(tǒng)的同步設(shè)計,消除了異步邏輯中存在的種種險象。各個狀態(tài)之間的關(guān)系如圖5所示。當(dāng)計數(shù)模塊完成計數(shù)時,則將數(shù)輸入除法模塊,開始移位以確定輸入的值;然后發(fā)clrs信號到BCD碼減法運(yùn)算單元開始運(yùn)算,循環(huán)相減。當(dāng)循環(huán)結(jié)束時,發(fā)回一個FINS信號,部分余數(shù)開始移位,進(jìn)行下一輪的循環(huán)。最終輸出FOUT,即運(yùn)算單元結(jié)束。

?


??? 本頻率計設(shè)計采用8位的十進(jìn)制計數(shù)器,隨后應(yīng)用狀態(tài)機(jī)實(shí)現(xiàn)了高速串行BCD碼除法運(yùn)算,計算出頻率值。對BCD碼減法模塊的復(fù)用,減小了資源的利用。
??? 當(dāng)今VLSI的發(fā)展日新月異,F(xiàn)PGA的容量和速度成倍地增長,而價格卻逐年下降,這將使得基于FPGA設(shè)計的數(shù)字頻率計優(yōu)勢更加明顯。相信這一技術(shù)必將得到更加廣泛的應(yīng)用。
參考文獻(xiàn)
1 Behrooz Parhami.Computer Arithmetic-Algorithms and hardware designs. New York: Oxford University Press, 2000
2 James R.Armstrong F.Gail Gray .VHDL設(shè)計、表示和綜合.北京:機(jī)械工業(yè)出版社,2003.3
3 候伯亨,顧 新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計.西安:西安電子科技大學(xué)出版社,1999.1
4 ACEX 1K Programmable Logic Device Family Data Sheet.www.altera.com

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产偷国产偷亚洲高清97cao| 亚洲精品黄色| 欧美精品久久一区二区| 久久久之久亚州精品露出| 亚洲综合电影| 一区二区三区精品| 99热这里只有成人精品国产| 亚洲日本成人在线观看| 亚洲激情第一区| 亚洲国产精品成人久久综合一区| 欧美在线亚洲| 亚洲大片精品永久免费| 久久精品一区二区| 久久精精品视频| 亚洲电影免费观看高清完整版| 欧美在线高清| 久久成人久久爱| 亚洲高清久久久| 亚洲国产精品毛片| 亚洲另类在线一区| 在线综合视频| 亚洲欧美国产制服动漫| 午夜伦欧美伦电影理论片| 午夜免费在线观看精品视频| 香蕉久久a毛片| 久久精品视频在线看| 久久久久久成人| 免费一级欧美在线大片| 欧美精品成人一区二区在线观看 | 国产精品男gay被猛男狂揉视频| 国产精品久久一区主播| 国产女主播在线一区二区| 国产亚洲午夜| 亚洲第一福利社区| 亚洲六月丁香色婷婷综合久久| 99国产精品久久久| 亚洲自拍偷拍一区| 亚洲丰满在线| 夜夜精品视频| 欧美一区二区免费观在线| 久久久久国产精品厨房| 欧美肥婆bbw| 国产精品v欧美精品v日韩精品| 国产精品一区二区三区免费观看| 国产伊人精品| 亚洲日本va午夜在线影院| 一本色道久久88精品综合| 羞羞视频在线观看欧美| 亚洲国产日韩一级| 亚洲一区二区精品视频| 欧美在线免费观看| 欧美不卡高清| 欧美视频在线观看免费| 国产视频一区在线观看一区免费| 亚洲成色777777女色窝| 一区二区三区高清| 欧美在线观看一区二区三区| 亚洲人成欧美中文字幕| 亚洲欧美另类综合偷拍| 另类人畜视频在线| 国产精品久久久久久久免费软件 | 欧美一区二区三区啪啪| 亚洲精品婷婷| 性欧美18~19sex高清播放| 鲁大师影院一区二区三区| 欧美日韩一视频区二区| 国产一区二区三区高清| 亚洲精品久久久久久久久久久久| 亚洲欧美综合另类中字| 日韩亚洲视频| 久久久精品一区| 欧美三区美女| 在线视频观看日韩| 亚洲欧美国产va在线影院| 亚洲精品日韩一| 欧美一区在线直播| 欧美日韩国产综合在线| 国产一区二区三区视频在线观看| 亚洲麻豆国产自偷在线| 亚洲第一免费播放区| 午夜久久久久久久久久一区二区| 欧美精品久久99| 极品少妇一区二区三区| 亚洲小视频在线观看| 亚洲三级毛片| 久久久亚洲人| 国产美女一区二区| 99视频国产精品免费观看| 亚洲国产经典视频| 久久国产精品久久w女人spa| 国产精品v日韩精品| 亚洲国产女人aaa毛片在线| 欧美在线国产精品| 性做久久久久久久免费看| 欧美日韩色婷婷| 亚洲第一主播视频| 欧美专区在线| 欧美在线free| 国产精品美腿一区在线看| 亚洲精品一区二区在线| 亚洲人成在线播放| 玖玖精品视频| 国产揄拍国内精品对白| 亚洲一区日韩在线| 亚洲免费一在线| 欧美午夜精品一区| 亚洲精品一级| 亚洲美女视频在线观看| 欧美高清视频| 亚洲国产一区二区三区a毛片| 欧美在线日韩在线| 久久精品国产91精品亚洲| 国产精品网站在线播放| 亚洲一级二级在线| 亚洲免费在线观看视频| 欧美午夜精品久久久久久久| 日韩一级大片在线| 99国产精品99久久久久久粉嫩| 欧美国产日韩精品| 91久久精品国产91性色tv| 亚洲日本久久| 欧美黑人一区二区三区| 亚洲国产日韩欧美| 99国产精品国产精品久久| 欧美成人免费全部| 亚洲高清久久网| 亚洲日本欧美日韩高观看| 欧美极品色图| 日韩亚洲视频在线| 亚洲欧美日韩国产一区二区| 国产精品国产亚洲精品看不卡15| 中文网丁香综合网| 欧美一级大片在线观看| 国产亚洲观看| 亚洲激情在线视频| 欧美黄色一区| 一区二区三区精品视频在线观看| 亚洲性感美女99在线| 国产精品www网站| 亚洲欧美日韩一区二区三区在线| 欧美一区二区在线播放| 国产亚洲精品bv在线观看| 久久国产日本精品| 欧美99久久| 日韩亚洲欧美一区二区三区| 亚洲综合色在线| 国产午夜亚洲精品理论片色戒| 亚洲二区三区四区| 欧美精品一卡二卡| 国产精品99久久不卡二区| 欧美一区不卡| 一区在线免费观看| 一区二区三区你懂的| 国产精品乱码久久久久久| 亚洲欧美99| 免费视频久久| 99亚洲精品| 欧美在线二区| 亚洲高清三级视频| 亚洲在线播放| 国产一区二区三区高清| 亚洲美女色禁图| 国产精品亚洲视频| 最新国产乱人伦偷精品免费网站 | 韩日午夜在线资源一区二区| 亚洲精品三级| 国产精品推荐精品| 亚洲激情校园春色| 国产精品久久久久久久电影 | 国产精品―色哟哟| 亚洲第一搞黄网站| 欧美午夜久久| 亚洲高清在线播放| 欧美日韩免费| 欧美在线亚洲综合一区| 欧美日韩成人精品| 欧美一区二区视频网站| 欧美精品一卡二卡| 性亚洲最疯狂xxxx高清| 欧美日韩播放| 久久成人精品一区二区三区| 欧美日韩1234| 亚洲东热激情| 国产精品视频一| 亚洲久色影视| 国产日韩高清一区二区三区在线| 亚洲精品一区二区三| 国产日韩亚洲欧美| 欧美精品乱人伦久久久久久| 国产一区二区0| 中文在线一区| 亚洲成色777777在线观看影院| 亚洲欧美日韩精品久久久久| 亚洲高清二区| 久久久久国色av免费观看性色| 99精品欧美一区| 欧美成ee人免费视频| 欧美一级视频| 国产精品成人在线| 亚洲裸体视频|