數位電路是現代計算的基石。本章從二進位開始,建立完整的數位邏輯框架。
一、二進位(Binary)
為什麼用二進位?
- 電子元件最容易區分兩個狀態:「有電 vs 無電」
- 抗雜訊:只要區分 0 與 1,雜訊容忍度大
- 邏輯運算簡單
進位制
| 進位 | 字元 | 範例 |
|---|---|---|
| 二進位(Binary) | 0, 1 | 1101₂ |
| 八進位(Octal) | 0–7 | 15₈ |
| 十進位(Decimal) | 0–9 | 13 |
| 十六進位(Hex) | 0–9, A–F | 0x0D |
轉換
二進位 → 十進位:
$$1101_2 = 1 \times 8 + 1 \times 4 + 0 \times 2 + 1 \times 1 = 13$$
二進位 → 十六進位:每 4 位一組:1101 = D = 0x0D
表示範圍
n 位:可表示 2ⁿ 個值
| 位數 | 範圍 |
|---|---|
| 8 bit | 0–255(無號)/ -128 到 127(有號) |
| 16 bit | 0–65535 / -32768 到 32767 |
| 32 bit | 0 – 4.29 × 10⁹ |
| 64 bit | 0 – 1.84 × 10¹⁹ |
帶號表示
- 符號-絕對值:MSB 是符號(少用)
- 2 的補數(Two's Complement):主流
- 正數:直接二進位
- 負數:反相 + 1
- 範例:-5 (8-bit) = ~00000101 + 1 = 11111011
二、邏輯閘(Logic Gates)
基本閘
| 閘 | 符號 | 真值表 | 布林式 |
|---|---|---|---|
| NOT(反相) | ─▷○─ | 0→1, 1→0 | Y = !A |
| AND | ─D─ | A·B | Y = AB |
| OR | =D= | A+B | Y = A+B |
| NAND | ─D○─ | !(A·B) | Y = !(AB) |
| NOR | =D○= | !(A+B) | Y = !(A+B) |
| XOR | =⫶D= | 不同為 1 | Y = A⊕B |
| XNOR | =⫶D○= | 相同為 1 | Y = !(A⊕B) |
真值表(Truth Table)
| A | B | AND | OR | NAND | XOR |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 0 |
通用閘
NAND 或 NOR 都可以實現所有邏輯,稱為「通用閘」。 所以早期 IC 大量是 NAND(74LS00)。
三、布林代數(Boolean Algebra)
基本定律
| 定律 | 表達式 |
|---|---|
| 交換律 | A + B = B + A; A·B = B·A |
| 結合律 | (A+B)+C = A+(B+C) |
| 分配律 | A·(B+C) = AB + AC |
| 恆等律 | A + 0 = A; A·1 = A |
| 互補律 | A + !A = 1; A·!A = 0 |
| 吸收律 | A + AB = A; A(A+B) = A |
笛摩根定律(DeMorgan's Theorems)
$$!(A \cdot B) = !A + !B$$ $$!(A + B) = !A \cdot !B$$
反相分配進去,AND/OR 交換。
化簡實例
化簡:F = A·!B + A·B + !A·B
$$F = A(!B + B) + !A B = A + !A B = A + B$$
四、卡諾圖(Karnaugh Map)
化簡布林函數的視覺工具。
2 變數 K-Map
B=0 B=1
A=0 [ ][ ]
A=1 [ ][ ]
3 變數
BC=00 BC=01 BC=11 BC=10
A=0 [ ][ ][ ][ ]
A=1 [ ][ ][ ][ ]
注意:BC 的順序是 00, 01, 11, 10(Gray Code,相鄰只差 1 位)。
4 變數
CD=00 CD=01 CD=11 CD=10
AB=00 [ ][ ][ ][ ]
AB=01 [ ][ ][ ][ ]
AB=11 [ ][ ][ ][ ]
AB=10 [ ][ ][ ][ ]
化簡規則
把相鄰的 1 圈起來(2、4、8 個一組)。 組數越大,化簡越多。 邊緣繞回(4 個角是相鄰)。
範例
F(A,B,C,D) = Σ(0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14)
填表後可化簡為:F = !B·!C + !A·D' + ... (略)
五、CMOS 數位邏輯
CMOS 反相器
V_DD
│
─┤PMOS
│
IN ────┤
│
─┤NMOS
│
GND
A=0 → PMOS 開、NMOS 關 → OUT = V_DD = 1 A=1 → PMOS 關、NMOS 開 → OUT = 0
CMOS NAND
V_DD
┌──┴──┐
│ │
─┤P1 ─┤P2
│ │
└─┬───┘
│
├─── OUT
│
─┬─┐
─┤N1
│
─┤N2
│
GND
A → P1, N1
B → P2, N2
當 A=B=1 時兩 NMOS 都導通 → OUT = 0 其他情況:OUT = 1
→ NAND 邏輯。
數位電源規範
| 邏輯族 | V_DD | 邏輯 H 範圍 | 邏輯 L 範圍 |
|---|---|---|---|
| 5V CMOS | 5V | > 3.5V | < 1.5V |
| 3.3V CMOS | 3.3V | > 2V | < 0.8V |
| 1.8V CMOS | 1.8V | > 1.2V | < 0.6V |
| LVDS | 差動 350 mV | — | — |
雜訊邊際(Noise Margin)
訊號被視為 H/L 的「緩衝區」。 - NMH = V_OH(min) - V_IH(min) - NML = V_IL(max) - V_OL(max)
雜訊邊際大 → 抗雜訊強。
六、邏輯族(Logic Families)
TTL(Transistor-Transistor Logic)
老技術,BJT 為主: - 7400 系列(標準):1970s - 74LS(Low Power Schottky):低耗 - 74AS、74F(更快)
CMOS
- 4000 系列(早期 CMOS,慢、高雜訊邊際)
- 74HC(High-Speed CMOS):替代 LS
- 74AHC、74LVC、74AVC(更快、低電壓)
其他
- ECL(Emitter Coupled Logic):超高速但耗能
- LVDS(Low Voltage Differential Signaling):差動,現代高速
- LVCMOS、LVTTL:低電壓 CMOS
電平轉換(Level Shifter)
不同電壓系統間需要轉換: - 雙向:BSS138、TXS0108E - 單向:74LVC1T45 - I²C 專用:PCA9306
七、組合邏輯(Combinational Logic)
輸出只依當前輸入(無記憶)。
1. 多工器(Multiplexer, MUX)
選擇多個輸入中的一個:
Sel
│
┌▽┐
In0─→│ │
In1─→│ ├─→ Out
In2─→│ │
In3─→│ │
└─┘
2-bit Sel
n 個 MUX:log₂(n) 位選擇線。
2. 解多工器(Demultiplexer)
反向:1 個輸入分配到多個輸出。
3. 解碼器(Decoder)
n 個輸入 → 2ⁿ 個輸出(每次只激活一個)。 範例:3-to-8 decoder(74HC138)
4. 編碼器(Encoder)
反向。優先編碼器(priority encoder)處理多輸入同時激活。
5. 加法器(Adder)
半加法器(Half Adder)
A + B → S, C_out S = A ⊕ B C_out = A · B
全加法器(Full Adder)
A + B + C_in → S, C_out S = A ⊕ B ⊕ C_in C_out = A·B + C_in·(A ⊕ B)
多位元加法器
8 個 FA 串聯 → 8-bit ripple carry adder(RCA)。 但 carry 傳遞慢,現代用 carry-look-ahead(CLA)加速。
6. 比較器
A > B, A = B, A < B 三個輸出。
八、組合邏輯設計流程
1. 寫真值表
依需求列出所有輸入組合與期望輸出。
2. 化簡(K-Map 或布林代數)
3. 畫邏輯圖
4. 用 IC 實現
74xx 系列、CPLD、FPGA。
範例:4-to-1 MUX
| Sel1 Sel0 | Out |
|---|---|
| 0 0 | I0 |
| 0 1 | I1 |
| 1 0 | I2 |
| 1 1 | I3 |
布林:
$$\text{Out} = !S_1 !S_0 I_0 + !S_1 S_0 I_1 + S_1 !S_0 I_2 + S_1 S_0 I_3$$
可用一系列 AND-OR 實現,或用 74HC153 IC。
九、本章總結
✅ 您應該掌握:
- [x] 二進位、十六進位、轉換
- [x] 7 個基本邏輯閘
- [x] 布林代數定律與化簡
- [x] 卡諾圖
- [x] CMOS 邏輯實現
- [x] 邏輯族與電平轉換
- [x] 組合邏輯:MUX、Decoder、Adder
下一章
07-組合邏輯.md — 組合邏輯深入。