32K 需 15 根地址線(A0-A14)。芯片內部佔用 A0-A12(13 位),剩餘 A13、A14 作為片選信號。
| 芯片# | 地址範圍 | A14 A13 | 74LS138 輸出腳 |
|---|---|---|---|
| 0 | 1800H - 37FFH | 0 0 | Y0 |
| 1 | 3800H - 57FFH | 0 1 | Y1 |
| 2 | 5800H - 77FFH | 1 0 | Y2 |
| 3 | 7800H - 97FFH | 1 1 | Y3 |
+---+---+
A13 --|A0 Y0|---> CS0 (Chip 0)
A14 --|A1 Y1|---> CS1 (Chip 1)
GND --|A2 Y2|---> CS2 (Chip 2)
| Y3|---> CS3 (Chip 3)
+5V --|E1 Y4|
GND --|E2 Y5|
GND --|E3 Y6|
| Y7|
+-------+
CPU 地址總線 (A15-A0)
│
├── A15-A15: 0 (假設 64K 空間,僅映射低 64K)
├── A14-A13: → 74LS138 A1,A0 (片選)
├── A12-A0: → 4 片 RAM 共用 A12-A0 (片內地址)
│
74LS138 真值表 (E1=1, E2=0, E3=0):
A1 A0 | Y輸出
0 0 | Y0 低有效 → 片選 0
0 1 | Y1 低有效 → 片選 1
1 0 | Y2 低有效 → 片選 2
1 1 | Y3 低有效 → 片選 3
若起始地址為 1000H(非 8K 整數倍),需增加組合邏輯電路(如 74LS85 比較器或 PLD)生成區域使能信號,再送入 74LS138 E1 端,設計複雜度顯著上升。本題 1800H = 6×2K,恰好在 8K 邊界上(1800H = 6144 = 6×1024),故可直接用 A13/A14 片選。