新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于高速串行BCD碼除法的數字頻率計的設計

        基于高速串行BCD碼除法的數字頻率計的設計

        作者: 時間:2012-07-05 來源:網絡 收藏

        2.2 多位串行BCD碼除法原理

        本設計采用循環式除法運算,循環原理可以用下面的公式表示[1]:

        ω[j+1]=rω[j]-dqj+1

        式中,ω[j]為第j步的余數,ω[0]為被除數;d為除數;qj+1為第j+1步所得的商;r為與移位步長有關的常數,在此取為16。

        除法運算循環圖表如圖3所示。

        循環步驟如下:

        ·將ω[j]左移四位,構成rω[j]。

        ·通過多次BCD碼減法運算,求得部分商qJ+1,得到部分余數。

        ·部分余數、部分商移位,準備下次循環。

        高速串行BCD碼除法是建立在BCD碼減法運算基礎上的循環運算。用被除數減除數得到部分余數的BCD碼,如果夠減,則使商加1;否則,余數和商同時左移四位,并記錄移位的次數m,根據對有效位數的不同要求,可以對m進行賦值,如果要求保留8位有效數字,則m=8。

        在這種循環除法運算中,減少循環的次數是提高運算速度比較有效的方法。在一般循環式除法運算中,是從低位開始進行循環相減,循環次數等于商。如果是8位除法運行,則得到一個8位的商,要進行8位次的BCD碼減法循環,例如:56895230/8=7111903.8,要進行7111903.8次循環,計算的速度可想而知。

        在本設計中借鑒了一般十進制除法的運算方法,從高位開始相減,大大減少了循環次數。下面以一個例子說明它的原理:

        ·將被除數和除數移位,使其第一位BCD碼不為0000,并記錄移位的次數P(例如:56895230/80000000,p=8)。

        ·比較最高位的大小,如果除數的最高位大于被除數的最高位,則將除數右移4位,同時將P減1(即:56895230/08000000,且p=7)。

        ·得到的數盧為小數點的位置(F:7說明小數點的位置在第七位數后)。

        ·循環相減。當部分余數小于08000000,再將部分余數左移四位,繼續進行相減。循環m次后即可得到m個有效數字的結果,然后根據p可以確定小數點的位置。

        使用這種方法計算一個8位數的除法運算,循環減法次數最大為80次,每次循環使用時間為8個時鐘周期。如果工作頻率為100MHz,則最長的運算時間為6.4μs,運算速度大大提高。

        圖4

        3 設計實現

        采用VHL語言設計一個復雜的電路系統,運用自頂向下的設計思想[2],將系統按功能逐層分割的層次化設計方法進行設計。在頂層對內部各功能塊的連接關系和對外的接口關系進行了描述,而功能塊的邏輯功能和具體實現形式則由下一層模塊來描述。根據頻率計的系統原理框圖(圖1),運用自頂向下的設計思想,設計的系統頂層電路圖如圖4所示。各功能模塊采用語言來描述。

        在計數模塊中,通過譯碼完成的信號COMP和標準信號計數器的溢出信號ov2對門控信號CL進行控制。可以根據不同的情況選擇門控信號的時間范圍,使設計具有一定的靈活性。采用門控信號CL和被測信號BSN對兩個8位十進制計數器進行同步控制[3]。根據D觸發器的邊沿觸發的特點,可以將輸入的門控信號CL作為D觸發器的輸入信號,而將被測信號BSN作為D觸發器的脈沖控制信號,使觸發器的輸出端只有在被測信號BSN上升沿時才發生變化,實現了對使能信號的雙重控制。

        本設計比較重要的一部分是運算單元。由于在運算單元中采用的是串行運算,因此其工作頻率必須足夠高。在中實現時,如何提高串行BCD碼除法運算的速度是比較關鍵的問題。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 林口县| 大悟县| 饶阳县| 绥化市| 太白县| 新绛县| 绥芬河市| 潜江市| 合作市| 旬阳县| 黄龙县| 新干县| 特克斯县| 万州区| 旌德县| 曲靖市| 京山县| 镇安县| 阿拉善右旗| 竹北市| 新龙县| 塔城市| 仪征市| 焦作市| 宣武区| 绥中县| 诸城市| 喜德县| 西盟| 霍州市| 南靖县| 和平县| 西平县| 阆中市| 大新县| 资溪县| 嘉荫县| 沧州市| 凤庆县| 辉县市| 左权县|