首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

匯編語言:用 8K×8 RAM 芯片構建 32K×8 存儲器(地址映射與 74LS138 編碼設計)

     編輯:程式設計疑難解答

題目需求分析

  • 芯片規格:8K×8(即 8192×8 位),地址線 13 根(A0-A12),數據線 8 根(D0-D7)
  • 目標容量:32K×8(即 32768×8 位),需 4 片芯片
  • 起始地址:1800H(二進制:0001 1000 0000 0000)
  • 地址連續分配
  • 使用 74LS138 3-8 行解碼器作為片選電路

地址空間劃分

32K 需 15 根地址線(A0-A14)。芯片內部佔用 A0-A12(13 位),剩餘 A13、A14 作為片選信號。

芯片#地址範圍A14 A1374LS138 輸出腳
01800H - 37FFH0 0Y0
13800H - 57FFH0 1Y1
25800H - 77FFH1 0Y2
37800H - 97FFH1 1Y3

74LS138 連接方案


        +---+---+
  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|
       +-------+

使能端配置關鍵

  • E1 (Pin 6) 接高電平:作為地址區域使能,需結合高位地址線
  • E2 (Pin 4)、E3 (Pin 5) 接低電平:永久使能
  • 實際電路中,E1 應連接 A15 及更高位地址線的 NOR 輸出,確保僅在 1800H-97FFH 區域激活

完整地址映射邏輯


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

關鍵時序考慮

  1. 片選建立時間:74LS138 傳播延遲 ~20ns,需滿足 RAM 片選建立時間
  2. 地址保持:讀寫周期中 A13/A14 必須保持穩定
  3. 數據總線:4 片 RAM D0-D7 並聯,任一時刻僅一片輸出數據

擴展:若起始地址非邊界對齊

若起始地址為 1000H(非 8K 整數倍),需增加組合邏輯電路(如 74LS85 比較器或 PLD)生成區域使能信號,再送入 74LS138 E1 端,設計複雜度顯著上升。本題 1800H = 6×2K,恰好在 8K 邊界上(1800H = 6144 = 6×1024),故可直接用 A13/A14 片選。

驗證清單

  • ☐ 4 片 RAM A0-A12 並聯連接 CPU A0-A12
  • ☐ 74LS138 A0、A1 分別連接 CPU A13、A14
  • ☐ 74LS138 E1 接高電平(或區域使能信號),E2、E3 接地
  • ☐ 74LS138 Y0-Y3 分別連接 4 片 RAM 的 CS/CE 端(注意電平有效性)
  • ☐ 所有 RAM OE 接地(常開輸出),WE 連接 CPU WR 信號
  • ☐ 數據線 D0-D7 並聯,上拉電阻可選
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved