半加器+半加法和全加法是算術(shù)運算電路中的基本單元,它們是完成1位二進制相加的一種組合邏輯電路。
一位加法器的真值表見表1.1;由表中可以看見,這種加法沒有考慮低位來的進位,所以稱為半加。半加器就是實現(xiàn)表1.1中邏輯關(guān)系的電路。被加數(shù)A加數(shù)B和數(shù)S進位C0000011010101101
全加器
全加器能進行加數(shù)、被加數(shù)和低位來的進位信號相加,并根據(jù)求和結(jié)果給出該位的進位信號。根據(jù)它的功能,可以列出它的真值表。
半加器和全加器的區(qū)別
1、半加器
在數(shù)學系統(tǒng)中,二進制加法器是它的基本部件之一。
半加器(半加就是只求本位的和,暫不管低位送來的進位數(shù))的邏輯狀態(tài)表
半加器和全加器的原理及區(qū)別(結(jié)構(gòu)和功能)
其中,A和B是相加的兩個數(shù),S是半加和數(shù),C是進位數(shù)。
2、全加器
當多位數(shù)相加時,半加器可用于最低位求和,并給出進位數(shù)。第二位的相加有兩個待加數(shù)和,還有一個來自前面低位送來的進位數(shù)。這三個數(shù)相加,得出本位和數(shù)(全加和數(shù))和進位數(shù)。
半加器和全加器的區(qū)別主要是半加器沒有接收進位的輸入端,全加器有進位輸入端,在將兩個多位二進制數(shù)相加時,除了最低位外,每一位都要考慮來自低位的進位,半加器則不用考慮,只需要考慮兩個輸入端相加即可。
半加器是實現(xiàn)兩個一位二進制數(shù)加法運算的器件。它具有兩個輸入端(被加數(shù)A和加數(shù)B)及輸出端Y。全加器是用門電路實現(xiàn)兩個二進制數(shù)相加并求出和的組合線路,稱為一位全加器。一位全加器可以處理低位進位,并輸出本位加法進位。多個一位全加器進行級聯(lián)可以得到多位全加器。
本文主要介紹半加器和全加器,通過邏輯電路和其真值表了解它們的原理,以了解單片機、CPU是怎么工作的。在進入這個主題之前,要先了解布爾邏輯和邏輯門,這對本文的閱讀,或者閱讀其他數(shù)字電路資料非常重要。
什么是加法器?
加法器是一種計算器,用于將兩個二進制數(shù)相加。這個計算器不是指帶有按鈕的計算器,這是一種可以與許多其他電路集成以實現(xiàn)廣泛應用的電路。有兩種加法器:
1. 半加器
2. 全加器
半加器
在半加器和其它邏輯門的幫助下,我們可以設(shè)計能夠執(zhí)行簡單加法的電路。
讓我們先來看看一位二進制的加法。
0+0 = 0
0+1 = 1
1+0 = 1
1+1 = 10
一位二進制加法器是最小單元,上面的算式可以看到1+1=10,有2位輸出。
因此,上述加法算式可以寫成
0+0 = 00
0+1 = 01
1+0 = 01
1+1 = 10
這里'10'的輸出'1'為進位。結(jié)果顯示在下面的真值表中。
先看看實現(xiàn)半加器的邏輯圖。
從真值表和邏輯圖中可以清楚地看出,這個 1 位加法器用異或門和進位的與門實現(xiàn),輸出“Sum”。
對于復雜的加法,可能存在多位數(shù)相加的情況。這需要更合適的加法器來幫助——全加器。
全加器
兩個半加器電路可以實現(xiàn)一個全加器。第一個半加法器將用于將 A 和 B 相加以產(chǎn)生部分和。后一個半加法器用于將 CIN 與前一個半加法器產(chǎn)生的和相加,以獲得最終的 S 輸出。任何半加器邏輯產(chǎn)生進位,就會有一個輸出進位。因此,COUT 將是半加器進位輸出。看看下面全加器邏輯電路的實現(xiàn)。
這種類型的加法器比半加法器的實現(xiàn)稍微復雜。半加器和全加器的主要區(qū)別在于全加器具有三個輸入和兩個輸出。前兩個輸入是加數(shù)“A”和 “B”,第三個輸入是前面一步的運算進位CIN,如1+1=10,結(jié)果“10”中的“1”就是CIN,用于下一次相加運算的輸入。
從上面的真值表和全加器邏輯圖,我們可以看到,輸出S是輸入 A 與 B 的半加器運算結(jié)果和進位CIN的異或運算。我們還必須注意,只有當“A”,“B”“CIN”輸入中的任意兩個輸入為高電平時,COUT 才會為真。
把全加器復雜的邏輯圖抽象出來,用以下圖來表示:
使用這種抽象類型的符號,我們把多個全加器組合,從前一個單元全加器輸出一個進位,并將這個進位發(fā)送到下一個全加器,可以組成多位加法器。
在計算機中,對于多位運算,每個位由一個全加器表示。因此,要把4位二進制數(shù)相加,可以通過兩個由4個全加器組合形成的多位加法器來完成。至于加法器的代碼呢,小編也就不重復添加了,跟半加器的代碼差不了多少,用到的依舊是“{}”位拼接符號會比較簡便一些,大家可以自行編寫設(shè)計。對于半加器以及加法器的應用呢,依舊是很廣泛的,但是需要依賴于其它的設(shè)計,單獨設(shè)計半加器,可能在現(xiàn)實中起不到什么很有效的作用。一般是作為加法器的基本模塊,當多個加法器組合在一起的時候,就可以作為“計算器”來計算了,早期的大型計算機就是利用了無數(shù)的加法器來實現(xiàn)復雜的運算的。所以說,復雜的工程,缺少不了許許多多的基本的知識模塊,現(xiàn)代如此高智能的新科技的發(fā)明依舊是站在前人的肩膀上的,而不是因為現(xiàn)代人比前人聰明,這個道理,大家應該要懂得。