計概 - 閘與電路

計算機概論 2018-02-06 1.6k

電腦與電學#

電子訊號有某個電壓準位,一般而言電壓準位在 0~2 伏特時屬於「低」,代表二進制的 0,而位於 2~5 伏特時則為「高」,代表二進制的 1。

  • 閘 gate:是完成電子訊號基本運算的裝置。閘接受一至多個輸入訊號,產生單一輸出訊號;有數種特定裝置的閘,以下討論六種基本的閘。
  • 電路 circuits:閘可組成電路,完成更複雜的工作。有三種可以描述電路的表示法:
    • 布林表示法
    • 邏輯圖
    • 真值表

#

1. NOT閘#

NOT閘接受一個輸入,產生一個輸出。

DEF#

如輸入為 1,則輸出 0;反之亦然。

布林運算式#

$X = A '$

邏輯圖#

NOT閘
NOT閘

真值表#

A X
0 1
1 0

2. AND閘#

AND閘接受多個訊號,產生一個輸出。

DEF#

若輸入全為1,則輸出1,反之,則為0。

布林運算式#

$X = A \cdot B$

邏輯圖#

AND閘
AND閘

真值表#

A B X
0 0 0
1 0 0
0 1 0
1 1 1

3.OR閘#

OR閘接受兩個輸入,產生一個輸出。

DEF#

如兩個輸入全為0,則輸出0,反之,輸出1。

布林運算式#

$X = A + B$

邏輯圖#

OR閘
OR閘

真值表#

A B X
0 0 0
1 0 1
0 1 1
1 1 1

4.XOR閘#

XOR閘,又稱互斥閘。

DEF#

若輸出相同,則輸出0,反之,輸出1。

布林運算式#

$X = A \oplus B$

邏輯圖#

XOR閘
XOR閘

真值表#

A B X
0 0 0
1 0 1
0 1 1
1 1 0

5.NAND 與 NOR閘#

分別為AND與OR閘的相反

NAND閘#

布林運算式#

$X = ( A \cdot B ) '$

邏輯圖#

NAND閘
NAND閘

真值表#
A B X
0 0 1
1 0 1
0 1 1
1 1 0

NOR閘#

布林運算式#

$X = ( A + B ) '$

邏輯圖#

NOR閘
NOR閘

真值表#
A B X
0 0 1
1 0 0
0 1 0
1 1 0

閘的建構#

  • 電晶體 transistor:是以半導體所製成,依據電壓準位來決定要當導線還是電阻的裝置。
    transistor
    transistor

射極一般是接地的。而對電腦而言,源極產生大約5伏特的高電壓值,基極的電壓值用來判斷源極是否形成接地,若接地,電壓值會被下拉至0,反之,則會維持高電壓。

  • 輸出線會接在源極上,若源極接地,則輸出為低準位(二進制的 0),反之則為高準位(二進制的 1)。
  • 如基極訊號為高準位,則源極接地,此時電晶體為 on,反之,電晶體為off。

電路#

  • 組合電路

    藉由某個閘的輸出作為另一個閘的輸入,便可組合成電路。
    組合電路
    組合電路

其中圖中的黑點,表示兩線是相連接的,如果沒有點,代表其中一條線從另一條線的上方跳過,互不影響。

此邏輯圖的布林運算式為:( AB + AC ),也可寫成 A ( B + C ),讀者可自行寫出真值表來確認。此現象稱作電路等效性。

  • 事實上,布林運算式滿足幾種數學性質:

    • 交換律,如:$AB = BA$、$A + B = B + A$。
    • 結合律,如:$( AB ) C = A ( BC )$、$A + ( B + C ) = ( A + B ) + C$。
    • 分配律,如:$A ( B + C ) = AB + AC$、$A + BC = ( A + B ) ( A + C )$。
    • 恆等,如:$A1 = A$、$A + 0 = A$。
    • 互補,如:$A ( A ’ ) = 0$、$A + A ’ = 1$。
    • 狄摩根定律,如:$( AB ) ’ = A ’ + B '$、$( A + B ) ’ = A ’ B '$。
  • 加法器

    二進制數元相加可能會產生進位值,如 1 + 1 = 10,能計算 2 個位元總和並產生進位為元的電路稱作半加器 half adder。
    考慮半加器時,可寫出以下真值表:

A B 總和 進位
0 0 0 0
1 0 1 0
0 1 1 0
1 1 0 1

可看出來,總和為 $A \oplus B$,進位為 $AB$。

  • 一個半加器並未將可能的進位值併入計算,也就是說,一個半加器在兩個單一數元的相加是沒問題的,但在多重數元時會產生問題。
  • 可以考慮進位輸入的電路稱作全加器 full adder。簡單的想法可以用兩個半加器來製作一個全加器;作法為:在總和輸出前,再加上一個半加器與進位輸入做總和,最後調整進位輸出。
    以下為全加器的真值表及邏輯圖:
A B 進位輸入 總和 進位輸出
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

加法器
加法器

  • 多工器 multiplexer

    為一種產生單一輸出的電路,輸出等於電路中數個輸入的其中一個。依據一些原始輸入以外的輸入訊號(選擇訊號、選擇控制線)來決定哪條輸入將被輸出。
    如:選擇訊號為 S0、S1、S2,輸入為D0~D7,則有以下真值表。
S0 S1 S2 F
0 0 1 D0
0 0 0 D1
0 1 1 D2
0 1 0 D3
1 0 1 D4
1 0 0 D5
1 1 1 D6
1 1 0 D7

上述多工器可化成此方塊圖。

多工器
多工器


作為記憶體的電路#

數位電路也可以儲存資訊,這些電路形成一個循序電路,電路的輸出可以當成電路的輸入,也就是說,某些電路的存在狀態有些被用來決定此電路的下個狀態;一些記憶體設計如:S-R閂。

  • S-R閂 S-R latch:用來儲存一個單一二進制的數元。
    S-R閂
    S-R閂

S Set、R Reset,透過此設計,只要S與R保持為1,X與Y的值皆能保持不變;通常,我們把X當作現在電路的狀態。

假設目前X為1,則Y為0,如果須將X設為0的話,只需將R設為0,X就會變成0,這時立刻將R設為1,X就會保持為0了。相反的,如需將X設為1,則需變動S為0,待X變為1後,再立刻改變S為1,X就會保持為1。


積體電路#

積體電路是一種嵌入多重閘的矽片,矽片邊緣上有許多腳位,代表著輸入或輸出。積體電路是依據閘的數量來分類的

  • SSI(小型積體電路) 1~10
  • MSI(中型積體電路) 10~100
  • LSI(大型積體電路) 100~100,000
  • VLSI(超大型積體電路 100,000