三極管和二極管組成的邏輯門(mén)電路,再制作一個(gè)加法器
前面轉(zhuǎn)載了一篇國(guó)外牛人手工CPU的文章(最強(qiáng)DIY,手工CPU)有朋友蠢蠢欲動(dòng)準(zhǔn)備從三極管這個(gè)層面開(kāi)始動(dòng)手組裝。
鑒于簡(jiǎn)化電路的需要 ,整理了一套用三極管、二極管、電阻組成的邏輯門(mén)電路,可實(shí)現(xiàn)2輸入或3輸入的AND,OR,NAND,NOR,EXOR操作。
為了便于記憶,我們把上面的每個(gè)電路用一個(gè)符號(hào)來(lái)代替
有了這套東西作為基礎(chǔ),我們可以進(jìn)行下一步更深入的探討,可以從做一個(gè)加法器入手。
一個(gè)簡(jiǎn)單的二進(jìn)制加法如下:
我們現(xiàn)在需要把它的結(jié)果分為兩位,一個(gè)是加法位,一個(gè)是進(jìn)位位。分別如下
進(jìn)位位的邏輯跟邏輯與門(mén)一樣,這就很好辦了。
加法位跟或門(mén)邏輯較相似,除了右下角的0邏輯不一樣。也跟與非門(mén)較相似,除了左上角的0的邏輯不一樣。我們把它們組合下
現(xiàn)在的輸入輸出情況如下:
從結(jié)果中看出,可以把或門(mén)和與非門(mén)輸出進(jìn)行與門(mén)邏輯組合,就得到了我們的加法位的正確輸出結(jié)果
這種組合就叫做異或門(mén)。
現(xiàn)在我們加法的加法位和進(jìn)位位都可以用電路來(lái)表示了,現(xiàn)在組合成的加法器如下:
這種組合就滿(mǎn)足了我們對(duì)一位二進(jìn)制的加法的需求,下面我們用下面這種簡(jiǎn)單的表達(dá)方式表達(dá)上面的加法器,比較簡(jiǎn)單明了:
為什么叫半加器呢,因?yàn)槟壳拔恢盟荒苡?jì)算一位的加法,而大多數(shù)情況下,我們需要計(jì)算多位的二進(jìn)制加法,它現(xiàn)在還不成熟。
多位加法中,除了第一位,后面每一位的加法都可能跟前面1位的的進(jìn)1數(shù)進(jìn)行相加。因此除了計(jì)算它本身的加法外,還要跟進(jìn)位進(jìn)行相加。我們現(xiàn)在把邏輯組合如下
現(xiàn)在我們可以得出一個(gè)完整的二進(jìn)制加法中任意一位的邏輯了。既然它成熟了,我們可以把它叫做全加器了。如下:
一個(gè)全加器就完成了。
每個(gè)全加器的進(jìn)位輸出都是都是后面一位的進(jìn)位輸入,一個(gè)串一個(gè),第一個(gè)加法的進(jìn)位輸入為0.最后一個(gè)進(jìn)位輸出,判斷有沒(méi)溢出。
以8位為單位,我們也可以做16位加法,只要兩個(gè)8位相連就可以了。
有了加法器,后面就可以考慮考慮設(shè)計(jì)一下寄存器了。