<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 數值計算中Bcd碼校驗電路的分析與設計

數值計算中Bcd碼校驗電路的分析與設計

作者: 時(shí)間:2008-06-16 來(lái)源:中國電子網(wǎng) 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/84260.htm

  的工作過(guò)程是大量數據的輸入--運算--輸出的過(guò)程,其中相當數量的數據使用十進(jìn)制形式表達。使用者希望的輸入數據和輸出結果能使用十進(jìn)制形式表達,而在內采用二進(jìn)制表示和處理數據更方便,所以在二者之間的數制轉換是必要的。通常采用兩種方式解決這一問(wèn)題。

  方法1:十--二進(jìn)制轉換將輸入的十進(jìn)制數據轉換為相應的二進(jìn)制數據,微處理器內部算術(shù)邏輯單元仍然執行二進(jìn)制數據運算微操作,運算結果再進(jìn)行二--十進(jìn)制轉換,將結果以十進(jìn)制形式輸出。

  方法2:算術(shù)邏輯單元對二進(jìn)制數據處理能力的前提下,增加少量硬件線(xiàn)路,使之對某種二進(jìn)制編碼形式表示的十進(jìn)制數據具有直接處理能力,該算術(shù)邏輯單元能夠接收特定二進(jìn)制編碼構成的十進(jìn)制數據,可以產(chǎn)生相同編碼組成的計算結果,在數據處理過(guò)程中該單元執行十進(jìn)制數據運算微操作。

  微處理器使用中涉及大量的數據輸入輸出操作,顯然方法1不是理想的選擇,因而從提高機器的運行效率,簡(jiǎn)化機器結構和保證系統時(shí)序結構的規整性考慮,方法2更有實(shí)用價(jià)值。 所以本文講述了方法2為算法依據的BCD加減。

  校驗原理

  在計算機得中,數值經(jīng)常是以表示的十進(jìn)制進(jìn)行運算的。即一位BCD碼用4位二進(jìn)制位表示。但是BCD的加法需要兩個(gè)加法器來(lái)完成,如果分析一下BCD數的加法過(guò)程,原因就很清楚。請看下面:

  令A=1000,B=0111,這兩個(gè)數都是正確的BCD碼,如果兩個(gè)操作數直接相加,結果不是一個(gè)BCD碼:

  1000

 ?。?0111

  1111

  正確的BCD碼加法運算應為1000+0111=(1)0101即8+7=15。其它BCD碼操作數運算的結果也能產(chǎn)生不正確的BCD碼結果。實(shí)際上當結果大于9或者有進(jìn)位時(shí),就要進(jìn)行BCD的校驗,以確保結果的正確性。

  對于產(chǎn)生進(jìn)位得情況,加法器直接提供了二進(jìn)制的進(jìn)位輸出,即BCD修正信號Y=C.而對于結果大于9,需要修正的數為1010-1111。

  把它們作為四變量布爾表達式的最小項,就能化簡(jiǎn)邏輯。即Y=E3E2+E3E1.其中E3 、E2、E1、E0是加法器的和的輸出。綜合以上結果可得BCD修正信號Y=E3E2+E3E1+C.修正如圖一所示。

  下面就已四位并行加法器和一位串行加法器兩種電路形式來(lái)討論BCD碼的驗證。

   圖二所示為4位并行的BCD加法器電路。其中上面加法器的輸入來(lái)自低一級的BCD數字。下面加法器BCD的輸出E3、E2、E1、E0和COUT至高一級 BCD數字,其A3和A1位接地,即當BCD校驗信號為真時(shí)Y=1,A3A2A1A0= 0110,以實(shí)現加6的調整.當不需要BCD調整時(shí)Y=0,此時(shí)A3A2A1A0=0000,從而使輸出結果無(wú)變化.

  雖然4位并行加法器運算速度較快,但是所用邏輯門(mén)較多。圖三所示為一位串行BCD加法器。它是以犧牲速度以達到減少硬件邏輯門(mén)的目的,這種電路在對頻率要求不高的系統中非常之適用。其中ADDER1、ADDER2均為一位全加器。ADDER1 做主運算器,ADDER2做BCD校驗運算器,不管是否做BCD校驗,ADDER2的初始進(jìn)位、借位始終為“1”。

  圖三中Z型門(mén)為延時(shí)電路,延時(shí)一個(gè)時(shí)鐘周期,這樣在外部電路控制下,經(jīng)過(guò)四個(gè)時(shí)鐘周期,得到一位十進(jìn)制BCD結果E3E2E1E0.由電路圖所以當 C+(E3E2+E3E1)邏輯值為‘1’時(shí),控制多路選擇器選擇A通路(A通路為序列 1001),當C+(E3E2+E3E1)為‘0’時(shí),選擇B通路(B通路序列為1111),即需要校驗時(shí),多路選擇器輸出序列1001;不需要校驗時(shí),輸出序列1111,與Z型門(mén)的輸出對應相加,并且ADDER2的初始進(jìn)位始終為‘1’,由此可完成BCD的校驗工作。

   下面是基于4位并行BCD加法器算法的一種快速BCD的加法器VERILOG硬件描述語(yǔ)言程序及其仿真結果。

  module bcd_check (data_i,data_o,cy_i,cy_o,en,z_i,z_o);

  input data_i;

  input cy_i;

  input z_i;

  input en; //insructure

  output cy_o;

  output data_o;

  output z_o;

  wire [3:0] data_i;

  wire cy_i;

  wire en;

  reg z_o;

  reg cy_o;

  reg [3:0] data_o;

  //}} End of automatically maintained section

DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 微處理器 Bcd碼 電路 數值計算

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>