說(shuō)說(shuō)什么是晶體管數字電路 “0和1”二進(jìn)制
集成電路,大規模集成電路的技術(shù)和生產(chǎn)工藝一直在步進(jìn),現在都已經(jīng)到了5nm生產(chǎn)工藝啦,但依然是由晶體管組成的二進(jìn)制模式。
一、晶體管如何表示0和1
從第一臺計算機到EDVAC,這些計算機使用的都是電子管和二極管等元件,利用這些元件的開(kāi)關(guān)特性實(shí)現二進(jìn)制的計算。然而電子管元件有許多明顯的缺點(diǎn)。例如,在運行時(shí)產(chǎn)生的熱量太多,可靠性較差,運算速度不快,價(jià)格昂貴,體積龐大,這些都使計算機發(fā)展受到限制。于是,晶體管開(kāi)始被用來(lái)作計算機的元件。晶體管利用電訊號來(lái)控制自身的開(kāi)合,而且開(kāi)關(guān)速度可以非???,實(shí)驗室中的切換速度可達100GHz以上。使用了晶體管以后,電子線(xiàn)路的結構大大改觀(guān),進(jìn)入了晶體管為代表的第二代電子計算機時(shí)代。1947年貝爾實(shí)驗室的肖克利等人發(fā)明了晶體管,又叫做三極管。下面兩圖是晶體管的產(chǎn)品照片和電路符號。需要說(shuō)明的是,晶體管有很多種類(lèi)型,每種類(lèi)型又分為N型和P型,下面圖中的電路符號就是一個(gè)N型晶體管。
晶體管電路有導通和截止兩種狀態(tài),這兩種狀態(tài)就可以作為“二進(jìn)制”的基礎。從模電角度來(lái)說(shuō)晶體管還有放大狀態(tài),但是我們此處考慮的是晶體管應用于數字電路,只要求它作為開(kāi)關(guān)電路,即能夠導通和截止就可以了。如上圖所示,當b處電壓》e處電壓時(shí),晶體管中c極和e極截止。當b處電壓《e處電壓時(shí),晶體管中c極和e極導通;這只是一個(gè)簡(jiǎn)化說(shuō)明,實(shí)際上從模電角度分析,導通和截止的要求是兩個(gè)PN節正向偏置和反向偏置,還要考慮c極電壓,但在實(shí)際的數字電路中e極電壓和c極電壓一般恒定,要么由電源提供、要么接地,所以我們可以簡(jiǎn)單記為“晶體管電路的通斷就是由b極電壓與恒定的e極電壓比較高低決定”。換句話(huà)說(shuō),這個(gè)三極管的b極電壓相對e極為低電平時(shí)三極管就會(huì )導通,相對e極為高電平時(shí)三極管就會(huì )截止。從這里可以看出,晶體管的導通與截止這兩種狀態(tài)對外可以使用b極電壓的相對高低來(lái)表示,進(jìn)而說(shuō)明了我們可以使用高電平或者低電平狀態(tài)來(lái)表示二進(jìn)制。也就是說(shuō)b極是一個(gè)輸入量(自變量),可以作為變量存儲兩個(gè)數值:高電平或低電平,相應的輸出值(因變量)就是電路實(shí)際的變化:導通或截止。就上面這個(gè)N型晶體管而言,高電平截止,低電平導通。那么假如此時(shí)我們把高電平作為“1”,低電平作為“0”。那么b極輸入1,就會(huì )導致電路截止,如果這個(gè)電路是控制計算機開(kāi)關(guān)機的,那么就會(huì )把計算機關(guān)閉。這就是機器語(yǔ)言的原理。實(shí)際用于計算機和移動(dòng)設備上的晶體管大多是MOSFET(金屬-氧化物半導體場(chǎng)效應晶體管),它也分為N型和P型,NMOS就是指N型MOSFET,PMOS指的是P型MOSFET。注意,MOS中的柵極Gate可以類(lèi)比為晶體管中的b極,由它的電壓來(lái)控制整個(gè)MOS管的導通和截止狀態(tài)。
NMOS電路符號如下圖:
PMOS電路符號如下圖:
NMOS在柵極高電平的情況下導通,低電平的情況下截止。所以NMOS的高電平表示“1”,低電平表示“0”;PMOS相反,即低電平為“1”,高電平為“0”。到了這個(gè)時(shí)候,你應該明白“1”和“0”只是兩個(gè)電信號,具體來(lái)說(shuō)是兩個(gè)電壓值,這兩個(gè)電壓可以控制電路的通斷。
二、門(mén)電路
一個(gè)MOS只有一個(gè)柵極,即只有一個(gè)輸入,而且輸出只是簡(jiǎn)單的電路導通、截止功能,不能輸出高低電壓信號,即無(wú)法表示“1”或“0”,自然無(wú)法完成計算任務(wù),此時(shí)就要引入門(mén)電路了。小提示,電壓、電平、電信號在本文中是一回事。門(mén)電路是數字電路中最基本的邏輯單元。它可以使輸出信號與輸入信號之間產(chǎn)生一定的邏輯關(guān)系。門(mén)電路是由若干二極管、晶體管和其它電子元件組成的,用以實(shí)現基本邏輯運算和復合邏輯運算的單元電路。這里只介紹最基礎的門(mén)電路——與門(mén)、或門(mén)、非門(mén)、異或門(mén)。
與門(mén)
與門(mén)電路是指只有在一件事情的所有條件都具備時(shí),事情才會(huì )發(fā)生。下面是由MOS管組成的電路圖。A和B作為輸入,Q作為輸出。例如A輸入低電平、B輸出高電平,那么Q就會(huì )輸出低電平,轉換為二進(jìn)制就是A輸入0、B輸出1,那么Q就會(huì )輸出0,對應的C語(yǔ)言運算表達式為0&&1=0。
或門(mén)
或門(mén)電路是指只要有一個(gè)或一個(gè)以上條件滿(mǎn)足時(shí),事情就會(huì )發(fā)生。下面是由MOS管組成的電路圖。A和B作為輸入,Q作為輸出。例如A輸入低電平、B輸入高電平,那么Q就會(huì )輸出高電平,轉化為二進(jìn)制就是A輸入0、B輸出1,那么Q就會(huì )輸出1,對應的C語(yǔ)言運算表達式為0||1=1。
非門(mén)
非門(mén)電路又叫“否”運算,也稱(chēng)求“反”運算,因此非門(mén)電路又稱(chēng)為反相器。下面是由MOS管組成的電路圖。非門(mén)只有一個(gè)輸入A,Q作為輸出。例如A輸入低電平,那么Q就會(huì )輸出高電平,轉換為二進(jìn)制就是A輸入0,那么Q就會(huì )輸出1;反之A輸入1,Q就會(huì )得到0。對應的C語(yǔ)言運算表達式為!0=1。
異或門(mén)
異或門(mén)電路是判斷兩個(gè)輸入是否相同,“異或”代表不同則結果為真。即兩個(gè)輸入電平不同時(shí)得到高電平,如果輸入電平相同,則得到低電平。下面是由MOS管組成的電路圖。A和B作為輸入,Q作為輸出。例如A輸入低電平、B輸入高電平,那么Q輸出高電平,轉換為二進(jìn)制就是A輸入0,B輸出1,那么Q就會(huì )輸出1,對應的C語(yǔ)言運算表達式為0^1=1。
通過(guò)這些門(mén)電路,我們可以進(jìn)行布爾運算了
三、半加器和全加器
通過(guò)門(mén)電路,我們可以進(jìn)行邏輯運算,但還不能進(jìn)行加法運算,要進(jìn)行加法運算,還需要更復雜的電路單元:加法器,加法器有半加器和全加器。加法器就是由各種門(mén)電路組成的復雜電路。
假如我們要實(shí)現一個(gè)最簡(jiǎn)單的加法運算,計算二進(jìn)制數1+1 等于幾。我們這時(shí)候可以使用半加器實(shí)現。半加器和全加器是算術(shù)運算電路中的基本單元,它們是完成1位二進(jìn)制相加的一種組合邏輯電路,這里的1位就是我們經(jīng)常說(shuō)的“1byte=8bit”里的1bit,即如果我們想完成8位二進(jìn)制的運算就需要8個(gè)全加器 。半加器這種加法沒(méi)有考慮低位來(lái)的進(jìn)位,所以稱(chēng)為半加。下圖就是一個(gè)半加器電路圖。
半加器由與門(mén)和異或門(mén)電路組成,“=1”所在方框是異或門(mén)電路符號,“&”所在方框是與門(mén)電路符號。這里面A和B作為輸入端,因為沒(méi)有考慮低位來(lái)的進(jìn)位,所以輸入端A和B分別代表兩個(gè)加數。輸出端是S和C0,S是結果,C0是進(jìn)位。比如當A=1,B=0的時(shí)候,進(jìn)位C0=0,S=1,即1+0=1。當A=1,B=1的時(shí)候,進(jìn)位C0=1,S=0,即1+1=10。這個(gè)10就是二進(jìn)制,換成十進(jìn)制就是用2來(lái)表示了,即1+1=2。到了這里,你應該明白了晶體管怎么計算1+1=2了吧。
然后我們利用這些,再組成全加器。下面是一個(gè)全加器電路圖,同樣只支持1bit計算。Ai和Bi是兩個(gè)加數,Ci-1是低位進(jìn)位數,Si是結果,Ci是高位進(jìn)位數。
如果我們將4個(gè)加法器連接到一起就可以計算4位二進(jìn)制,比如計算2+3,那么4位二進(jìn)制就是0010+0011,下表就是利用加法器計算的值。和普通加法一樣,從低位開(kāi)始計算。加數A代表0010,B代表0011。
結果Si:0101,就是十進(jìn)制5,加法器實(shí)現了十進(jìn)制運算2+3=5。
四、總結
現在我們可以想到,CPU的運算單元是由晶體管等各種基礎電子元件構成門(mén)電路,在由多個(gè)門(mén)電路組合成各種復雜運算的電路,在控制電路的控制信號的配合下完成運算,集成的電路單元越多,運算能力就越強。