【從與非門到計算機(jī)】第一話 邏輯門與加法器

看到標(biāo)題,有些人可能會問:只用一種門怎么可能怎么做計算機(jī)啊啊啊疊氮你是不是瘋掉了啊啊啊啊啊
但是沒想到吧,與非門通過組合可以轉(zhuǎn)化成所有邏輯門。
首先要科普一下數(shù)字電路中的重疊律:AA=A,即自己與自己還是自己
非A的符號是,又根據(jù)重疊律,
,正好是A和A進(jìn)行與非運(yùn)算的結(jié)果!所以與非門的兩個輸入連接在一起就是非門。
接著是德·摩根定律和還原律。
還原律指的是,也就是一個數(shù)進(jìn)行兩次非運(yùn)算還是原來的數(shù)。所以與門只需要在與非門的基礎(chǔ)上添加一個非門即可。原理則很簡單:
而德·摩根定律說的是和
,于是有
,也就是說,在與非門兩個輸入接上非門就是或門?;蚍情T同理。
而同或門和異或門則需要通過真值表搭建。
這是同或門的真值表:

可以看出,。所以總共需要5個與非門。
異或門就簡單了,6個與非門搞定。網(wǎng)上有4個與非門的圖,但是有些不太好理解,所以就用6個吧~
所以這樣構(gòu)建邏輯門:

這樣就可以快樂地做計算機(jī)啦~
加法器
顧名思義,計算機(jī)的一個重要的任務(wù)就是計算。所以在計算機(jī)中有一個結(jié)構(gòu),叫做ALU,即算術(shù)邏輯單元?,F(xiàn)在開始構(gòu)建ALU~
從最簡單的加法開始。眾所周知,兩個1位二進(jìn)制數(shù)相加,結(jié)果最多2位。所以一位二進(jìn)制數(shù)加法器有兩個輸出,分別代表結(jié)果的兩個位。
如果畫出真值表,則是這樣子的:

可以發(fā)現(xiàn)當(dāng)前位(也叫本位)就等于A xor B,而進(jìn)位則等于A and B。于是可以搭建出以下的電路:

我們能夠計算一位二進(jìn)制加法了,那么多位呢?試著用這種加法器計算一下01+11吧!
第一位1+1,向高一位進(jìn)1,第二位要計算0+1+1……怎么辦,半加器只能計算兩數(shù)相加,三數(shù)相加怎么辦?這時候就需要給加法器升級了。
三個數(shù)相加不會超過兩位,所以也只有進(jìn)位和本位。根據(jù)A+B+C=(A+B)+C=A+(B+C),我們只需要兩個加法器就好。

為什么要用一個或門呢?你想,A+B+C如果有一個進(jìn)位,就要輸出。但是與C相加的不是A+B,而是(A+B)的本位,那么當(dāng)A=1,B=1,C=0時就不會輸出進(jìn)位。但現(xiàn)實(shí)并非如此,所以A+B有進(jìn)位時也要輸出進(jìn)位。所以才需要一個或門。
封裝起來:

連起來就能用:

在下一話,我們將會講到補(bǔ)碼、負(fù)數(shù)和減法器的制作。敬請期待!