三極體和二極體組成的邏輯門電路,再製作一個加法器

前面轉載了一篇國外牛人手工CPU的文章( )有朋友蠢蠢欲動準備從三極管這個層面開始動手組裝。

鑑於簡化電路的需要 ,整理了一套用三極管、二極管、電阻組成的邏輯門電路,可實現2輸入或3輸入的AND,OR,NAND,NOR,EXOR操作。

三極管和二極管組成的邏輯門電路,再製作一個加法器

三極管和二極管組成的邏輯門電路,再製作一個加法器

為了便於記憶,我們把上面的每個電路用一個符號來代替

三極管和二極管組成的邏輯門電路,再製作一個加法器

有了這套東西作為基礎,我們可以進行下一步更深入的探討,可以從做一個加法器入手。

一個簡單的二進制加法如下:

三極管和二極管組成的邏輯門電路,再製作一個加法器

我們現在需要把它的結果分為兩位,一個是加法位,一個是進位位。分別如下

三極管和二極管組成的邏輯門電路,再製作一個加法器

進位位的邏輯跟邏輯與門一樣,這就很好辦了。

加法位跟或門邏輯較相似,除了右下角的0邏輯不一樣。也跟與非門較相似,除了左上角的0的邏輯不一樣。我們把它們組合下

三極管和二極管組成的邏輯門電路,再製作一個加法器

現在的輸入輸出情況如下:

三極管和二極管組成的邏輯門電路,再製作一個加法器

從結果中看出,可以把或門和與非門輸出進行與門邏輯組合,就得到了我們的加法位的正確輸出結果

三極管和二極管組成的邏輯門電路,再製作一個加法器

這種組合就叫做異或門。

現在我們加法的加法位和進位位都可以用電路來表示了,現在組合成的加法器如下:

三極管和二極管組成的邏輯門電路,再製作一個加法器

這種組合就滿足了我們對一位二進制的加法的需求,下面我們用下面這種簡單的表達方式表達上面的加法器,比較簡單明瞭:

三極管和二極管組成的邏輯門電路,再製作一個加法器

為什麼叫半加器呢,因為目前位置它只能計算一位的加法,而大多數情況下,我們需要計算多位的二進制加法,它現在還不成熟。

多位加法中,除了第一位,後面每一位的加法都可能跟前面1位的的進1數進行相加。因此除了計算它本身的加法外,還要跟進位進行相加。我們現在把邏輯組合如下

三極管和二極管組成的邏輯門電路,再製作一個加法器

現在我們可以得出一個完整的二進制加法中任意一位的邏輯了。既然它成熟了,我們可以把它叫做全加器了。如下:

三極管和二極管組成的邏輯門電路,再製作一個加法器

一個全加器就完成了。

每個全加器的進位輸出都是都是後面一位的進位輸入,一個串一個,第一個加法的進位輸入為0.最後一個進位輸出,判斷有沒溢出。

三極管和二極管組成的邏輯門電路,再製作一個加法器

以8位為單位,我們也可以做16位加法,只要兩個8位相連就可以了。

有了加法器,後面就可以考慮考慮設計一下寄存器了。


分享到:


相關文章: