數字減法器電路的基本原理 對於兩個二進制數 x 和 y,用“x-y”表示他們的
二進制 差,其結果有如下四種情形:
(1)0-0=0;(2)1-0=1;(3)1-1=0;(4)10-1=1。
對於上述四種情形中的 “10-1=1”的特殊情形,也即是當 x=10(即十進制的 2),y=1 時,它們的二進制差為 1,這表明在二進制減法中,作差過程存在向前一位借位的情形。
串列進位減法器電路 一個 n 位串列進位減法器是由 n 個全減器的借位位首尾相連、依次串聯在一起形成的,在串列進位減法器中,其借位從最低有效位( Least Significant Bit,LSB)傳到其最高有效位(Most Significant Bit,MSB)需要很長的的時間(電路的延時)。
圖1 四位串列進位減法器邏輯電路圖
圖1、圖2分別是一個四位的串列進位減法器邏輯電路圖和符號,其中 a
i 、b
i 和 B
i 是輸入位,D
i 、B
i+1 是輸出位,且 B
i+1 作為更高位的輸入位。
圖2 四位串列進位減法器的符號
串列進位減法器電路的主要優點是:結構簡單、便於連線和 IC 版圖設計的實現;但其缺點是:執行運算速度較慢。這是因為串列進位減法器電路每一位的相減必須等到它前一位的計算結果,最高位相減必須要等到它前面的所有位都完成相減才能進行。由於全減器只有在它的輸入位有效時它的輸出結果才是有效的,最左端的電路是最後回響的,這樣全減器的輸出結果才是正確的。因此,串列進位減法器電路總的延時取決於每一個全減器電路的信號傳輸延時,而信號的傳輸延時又與邏輯門的工藝有關,所以串列進位減法器電路的時間延時和電路中邏輯門的工藝相關。
減法器的設計 半減器 半減器(Half Subtractor,HS),二輸入、二輸出變數函式模組。一個半減器模組有兩個輸入 x、y 和兩個輸出 D、B,其中 x 稱為被減數,y稱為減數; D 稱為差,B 稱為借位輸出信號。半減器是只有兩個輸入變數、兩個輸出變數,無借位輸入的一位減法器, 半減器的真值表如圖3所示。
圖3 半減器真值表
由半減器的真值表可推導出半減器的邏輯表達式為:
半減器的門級邏輯電路
D=x⊕y (“⊕”表示異或運算)
B=-x·y (“-”表示非運算,“·”表示與運算)
圖4 半減器的符號
由半減器模組的邏輯表達式我們可以得到最常用的半減器模組門級的邏輯電路圖和半減器模組的符號,如圖4所示。
全減器 一個全減器模組有三個輸入 a
i 、b
i 和 B
i ,兩個輸出 D
i 、B
i+1 ,其中 a
i 稱為被減數,b
i 稱為減數,D
i 稱為差,B
i 稱為第 i 位的借位輸入信號,B
i+1 稱為第 i 位的借位輸出信號。全減器是包含低位借位的三個輸入變數、兩個輸出變數的一位減法器,在半減器的基礎上再加一個低位借位輸入位,全減器的真值表如圖5所示。
圖5
由全減器的真值表推導出全減器的邏輯表達式為:
圖6 全減器的門級邏輯電路
Di =ai ⊕bi ⊕Bi
Bi+1 =(ai ⊕bi )·bi +(ai ⊕bi )·Bi
圖7 全減器的符號
由全減器的邏輯表達式可以得到全減器模組門級的邏輯電路圖和全減器模組的符號,分別如圖6、圖7所示。
對於 n 位的二進制數,將兩個 n 位的二進制數相減得到一個 n 位的二進制的差以及一個 1 位的借位輸出信號,這個借位輸出信號可以作為它下一位的借位輸入信號,或者作為一個溢出標誌,圖8為一個 n 位減法器電路的一般表示符號(其中 a、b 和 D 是 n 位的二進制數,Bn是 1 位的二進制數)
。 圖8 n位減法器
四位二進制減法器的設計與實現 總體方案設計 圖9 四位二進制減法器的總體仿真圖
本設計使用EWB進行仿真,使用74LS48、七段解碼器、LED、開關、異或門、或門、非門、與非門等。電路按功能分為三個部分:減數部分:減數變成補碼(原碼取反加1);被減數部分:被減數與減數的補碼相加;差部分:被減數減減數的結果顯示。四位二進制減法器的總體仿真圖如圖所示。
被減數模組的設計 圖10 四位二進制減法器的被減數模組的仿真圖
本模組由開關、74LS48、VCC(+12 V)、GND、七段解碼器構成,用開關控制輸入信號( 被減數),5、6、7、8 從高位到低位,用74LS48和七段解碼器構成顯示電路。四位二進制減法器的被減數模組的仿真圖如圖10所示。
減數模組的設計 圖11 四位二進制減法器的減數模組的仿真圖
本模組由開關、74LS48、VCC(+12 V)、GND、七段解碼器、異或門、或門、非門、與非門構成。用開關控制輸入信號(減數),1、2、3、4 從高位到低位,將輸入信號的原碼變成補碼供計算使用,用74LS48 和七段解碼器構成顯示電路。四位二進制減法器的減數模組的仿真圖如圖11所示。
差模組的設計 圖12 四位二進制減法器的差模組的仿真圖
本模組由VCC(+12 V)、GND、七段解碼器、74LS48、LED 構成。從右到左依次是從高位到低位,並用74LS48和七段解碼器構成顯示電路。四位二進制減法器的差模組的仿真圖如圖12所示。
數字減法器電路的性能指標 目前,針對數字電路研究的主要目標都是為了提高電路的運算速度、降低電路的功耗和減少電路邏輯輸出的誤差,因此延時、功耗和誤差是數字電路三個最重要的性能指標。
運算速度指標——延時 數字電路的延時主要是指信號的傳輸延時,電路的延時與邏輯門的工藝設計相關,延時限制了電路的工作速度,所以對電路的延時最佳化一直是很多學者研究的熱點。全減器模組作為最基本的電路組成部件,整個電路的延時取決於全減器模組的延時,因此,對全減器模組延時的最佳化工作顯得尤為重要。對於全減器來說,延時最佳化主要方法是減小信號在關鍵路徑上的延時;對於串列進位減法器電路來說,關鍵路徑就是指信號進位位支路(也就是對電路中所有的輸入來說,信號延時時間最大時的情形),減小進位位支路的延時時間,對於提高串列進位減法器電路運算速度具有重要意義。
近年來,隨著電路低功耗設計的要求,電源電壓隨之降低,而電源電壓的降低又會增大電路中信號的傳輸延時時間,從而影響電路的邏輯輸出結果。尤其是在時鐘周期固定的同步電路中,如何保證電路正確的邏輯輸出結果,實現電路的可靠性設計和最大限度的降低功耗是當前電路設計研究的主要課題。
能量消耗指標——功耗 CMOS 電路中功耗由兩部分組成:動態功耗、靜態功耗。動態功耗主要是由 CMOS 電路中邏輯門工作過程中負載電容充放電時引起的功耗,主要包括翻轉功耗(翻轉指的是電路中信號 0→1 或 1→0 的變換)和短路功耗。翻轉功耗是數字電路要完成邏輯功能計算所必須要消耗的功耗,也稱有效功耗;短路功耗是由於 CMOS 在翻轉過程中 PMOS 管和 NMOS 管同時導通時所消耗的功耗,也稱無效功耗;靜態功耗是由於漏電電流引起的功耗。通常靜態功耗與電路中的器件相關,在電路設計過程中,如何降低整體的電路功耗已成為當今電路研究者與設計者十分關注的問題,特別是要考慮到如何降低電路的動態功耗。
可靠性指標——誤差 在同步電路中,由於時鐘周期的存在,一旦電路總的延時時間超過了時鐘周期,那么在時鐘周期內我們採樣得到的電路輸出結果與理論上電路正確的邏輯輸出結果不同,此時電路實際上輸出的是錯誤的結果。因此,如何保證電路最終的輸出結果是正確的,最大限度的減小誤差也是目前電路研究的一個熱點方向。
兩位格雷碼減法器數字電路設計 兩位減法器的格雷碼(Gray code)真值表如圖13所示,可以實現兩個兩位二進制數之間的減法算術運算。從真值表中可以得知,存在 16 種不同的邏輯運算。 如表 4-1 所示,X
2 X
1 和 U
2 U
1 分別代表減數和被減數,S
2 S
1 代表兩個兩位二進制數之間的差值,B
2 代表來自高位的借位。在圖13中,減數、被減數和差值都通過使用格雷碼來表示,格雷碼可以轉換成二進制碼(8421 碼),即從左邊的第二位開始,在每個位和左邊的解碼值之間獲得異或操作的值作為該位的解碼值,最左邊的值保持不變。
圖13 兩位減法器操作運算的真值表
根據兩位格雷碼減法器的真值表,列寫其布爾邏輯表達式,依據其布爾表達式,構造相應的數字電路原理圖,如圖14所示,有三種基本的邏輯門,即非門、與門、或門,不同的邏輯門使用不同的顏色標記,使用紫羅蘭色標記非門,紅色標記與門,天藍色標記或門,圖14中共存在 4 個非門,11 個與門,4 個或門。
圖14 兩位格雷碼減法器原理圖