我們現(xiàn)在知道,「通電」代表「真」,用邏輯1表示;「不通電」代表「假」,用邏輯0表示?!概c門(mén)」電路是用晶體管搭建的,符號(hào)長(zhǎng)這樣:
A與B的通斷,可以決定Y點(diǎn)是否通電。
我們還為A、B與Y之間的關(guān)系畫(huà)了一張表(真值表):
接著我們?cè)O(shè)計(jì)出了簡(jiǎn)單的「或門(mén)」「非門(mén)」,用它們可以搭建各式各樣其他的門(mén)電路。
這篇文章講一下,怎么利用基礎(chǔ)門(mén)電路進(jìn)行加法計(jì)算。
二進(jìn)制加法
我已經(jīng)忘了是什么時(shí)候?qū)W的加法了,應(yīng)該是小學(xué)吧,先學(xué)10以?xún)?nèi)的,再學(xué)100以?xún)?nèi)的,然后不管多大的數(shù)都可以隨便加了,算式很簡(jiǎn)單,就是逢10進(jìn)1。
下面這個(gè)式子是一個(gè)萬(wàn)以?xún)?nèi)的加法:
相應(yīng)的,二進(jìn)制就是逢2進(jìn)1,下面這個(gè)式子是2個(gè)8位二進(jìn)制數(shù)的加法計(jì)算:
半加器
8位二進(jìn)制數(shù)還太復(fù)雜,我們先來(lái)看看1位二進(jìn)制數(shù)怎么計(jì)算的,一共有以下4種情況:
觀察一下就能發(fā)現(xiàn)2個(gè)規(guī)律。
第一個(gè)規(guī)律,只考慮加法,不考慮進(jìn)位時(shí),加數(shù)與和之間的關(guān)系如下:
相同為0,不同為1。這個(gè)關(guān)系和「異或門(mén)」是相同的:
異或門(mén)我們之前沒(méi)有聊到過(guò),電路圖長(zhǎng)這樣:
第二個(gè)規(guī)律是,如果只考慮進(jìn)位,不考慮加法,加數(shù)與進(jìn)位之間的關(guān)系如下:
只有全1時(shí),才為1。發(fā)現(xiàn)了嗎,這和本文開(kāi)頭與門(mén)的真值表是一樣的。
2個(gè)一位二進(jìn)制數(shù)相加將產(chǎn)生一個(gè)加法位和一個(gè)進(jìn)位位,加法位輸入與輸出的關(guān)系跟與門(mén)是一樣的,進(jìn)位位跟異或門(mén)相同。
所以,可以像這樣把兩個(gè)門(mén)電路連起來(lái),計(jì)算2個(gè)二進(jìn)制數(shù)(A和B)的和:
我們稱(chēng)這個(gè)電路為「半加器」,因?yàn)樗荒苡?jì)算2個(gè)一位二進(jìn)制數(shù)的加法,沒(méi)有辦法將前面加法可能產(chǎn)生的進(jìn)位納入下一次計(jì)算中,如果有進(jìn)位則實(shí)際上是需要3個(gè)加數(shù)參與計(jì)算。
用門(mén)電路畫(huà)太復(fù)雜,可以封裝起來(lái)這樣表示半加器:
全加器
怎樣計(jì)算3個(gè)加數(shù)的二進(jìn)制加法呢?需要將2個(gè)半加器和一個(gè)或門(mén)如圖連接起來(lái):
左邊能看到它有3個(gè)輸入,右邊依舊是1位加和輸出,1位進(jìn)位輸出。
2個(gè)數(shù)的加和與上一次的進(jìn)位相加,得出的加和作為3個(gè)數(shù)最終的加和;2個(gè)數(shù)相加或3個(gè)數(shù)相加的進(jìn)位作為3個(gè)數(shù)加和最終的進(jìn)位位。
用文字描述有點(diǎn)不好理解,把這個(gè)電路圖全部輸入和輸出情況都展示出來(lái),畫(huà)一個(gè)表就明白了:
很明顯,這個(gè)表就是2個(gè)一位二進(jìn)制數(shù)帶進(jìn)位的全部狀態(tài)。
每次做加法時(shí)畫(huà)2個(gè)半加器和一個(gè)或門(mén)很麻煩,我們用下面這個(gè)圖示把它們封裝起來(lái),這個(gè)能計(jì)算3位二進(jìn)制數(shù)加法的電路就稱(chēng)為「全加器」。
加法器
現(xiàn)在回到開(kāi)頭那個(gè)二進(jìn)制加法:
它有8個(gè)二進(jìn)制位,到目前為止我們還只能計(jì)算2個(gè)一位二進(jìn)制數(shù),最多再增加一個(gè)進(jìn)位的加法,我們最終的目標(biāo)當(dāng)然是2個(gè)8位、16位乃至32位數(shù)的加法。
其實(shí),非常簡(jiǎn)單,用8個(gè)全加器一塊算!
把8個(gè)全加器每個(gè)進(jìn)位輸出作為下一個(gè)的進(jìn)位輸入,首尾相連就可以啦!
每次這樣畫(huà)太麻煩,可以封裝成一個(gè)框圖:
大箭頭代表8個(gè)輸入/輸出端,有8個(gè)獨(dú)立的信號(hào)。
一旦我們擁有了8位二進(jìn)制加法器,把它們級(jí)聯(lián)起來(lái),很容易就能得到一個(gè)16位或32位的加法器啦。
end
加法計(jì)算是計(jì)算機(jī)的基本運(yùn)算,其實(shí),計(jì)算機(jī)唯一的工作就是做加法計(jì)算。 不論是減法、乘法、除法、在線(xiàn)支付、火箭升空還是AI下棋,都是利用加法實(shí)現(xiàn)的。
把加減乘除和邏輯運(yùn)算等運(yùn)算單元集成起來(lái),就組成了CPU中的基本計(jì)算單元:ALU(算術(shù)邏輯單元Arithmetic and Logic Unit)。
用加法器計(jì)算2個(gè)數(shù)的加法其實(shí)就是用硬件方式實(shí)現(xiàn)了一個(gè)加法計(jì)算器,輸入A和輸入B的高低電平?jīng)Q定了輸出S和CO的高低電平。
這樣的電路同一時(shí)刻只能表示一種狀態(tài),只要改變了A、B中任意一位,輸出就會(huì)有所變化。
現(xiàn)在我們想計(jì)算更多二進(jìn)制數(shù)的加法,比如5個(gè)數(shù)A、B、C、D、E的加法(先不考慮進(jìn)位)。
步驟應(yīng)該是這樣:首先把A、B作為輸入,得出一個(gè)輸出S1,我們要記下來(lái)S1的值,然后把S1和C作為輸入,得出S2....以此類(lèi)推,要記下很多個(gè)數(shù),然后再用加法器計(jì)算。
5個(gè)數(shù)都已經(jīng)很麻煩了,如果要計(jì)算更多個(gè)數(shù)該怎么辦?能不能把每次計(jì)算完的結(jié)果存起來(lái),下次繼續(xù)使用呢?
-
晶體管
+關(guān)注
關(guān)注
77文章
9912瀏覽量
140249 -
加法器
+關(guān)注
關(guān)注
6文章
183瀏覽量
30538 -
門(mén)電路
+關(guān)注
關(guān)注
7文章
200瀏覽量
40548 -
全加器
+關(guān)注
關(guān)注
10文章
62瀏覽量
28715 -
ALU
+關(guān)注
關(guān)注
0文章
33瀏覽量
13240
發(fā)布評(píng)論請(qǐng)先 登錄
想用一個(gè)同相加法器實(shí)現(xiàn)-1.4v到0變?yōu)?到2.5v左右的輸出,請(qǐng)問(wèn)用什么運(yùn)放比較好?
用opa2228制作了一個(gè)同向加法器,可輸出出現(xiàn)了震蕩怎么解決?
LM258反向加法器輸出信號(hào)出現(xiàn)斷點(diǎn)怎么解決?
用OPA27做同相加法器Vo=Vi1+Vi2時(shí)遇到的疑問(wèn)求解
實(shí)現(xiàn)兩個(gè)單一頻率正弦波相加的加法器的芯片選取有什么特殊要求嗎?opa2320可以嗎?
加法運(yùn)放電路實(shí)驗(yàn)報(bào)告數(shù)據(jù)分析
用OPA454做了一個(gè)簡(jiǎn)單的加法器電路,電壓有一個(gè)明顯降低是怎么回事?
加法器是時(shí)序邏輯電路嗎
用單電源運(yùn)放實(shí)現(xiàn)加法器混音左右聲道,輸出經(jīng)功放后有較明顯沙沙聲,怎么解決?
請(qǐng)問(wèn)全差分運(yùn)算放大器能像一般運(yùn)算放大器一樣設(shè)計(jì)加法器嗎?
GS8522加法器電路迷之短路
請(qǐng)問(wèn)增益為1的加法器有哪些?
串行加法器和并行加法器的區(qū)別?
加法器的原理是什么 加法器有什么作用

評(píng)論