已知地址总线 A15~A0(低), 双向数据总线 D7~D0(低),读写控制线 R/W。使用 RMO 芯片(2K*4 片)和 DRAM(2K*8 片,1K*4 片)构建半导体存储器,存储器按照字节编址。其中 RMO 区的地址范围从 9800H~9FFFH 为,RMA 区地址范围为 A000H~ABFFH。计算所需各类芯片数量,并写出各芯片的片选逻辑表达式
首先,我们需要确定存储器的容量和字长。
总地址线数为 16 条,因此存储器的容量为 2^16 = 64KB。由于存储器按照字节编址,所以存储器中的每个地址对应一个字节,即存储器的字长为 8 位。
接下来,我们需要确定 RMO 区和 RMA 区各自的容量和地址范围。
RMO 区的地址范围为 9800H~9FFFH,共计 1600H 个地址,即 4096 个字节。由于 RMO 芯片的容量为 2K*4,即每个芯片可以存储 2KB 的数据,因此需要 2 个 RMO 芯片才能满足 RMO 区的容量要求。
RMA 区的地址范围为 A000H~ABFFH,共计 BC00H 个地址,即 3072 个字节。由于 DRAM 芯片的容量为 2K8 或 1K4,而 3072 不是 2K 或 1K 的整数倍,因此需要使用两种不同容量的 DRAM 芯片来组合实现 RMA 区的容量要求。
假设使用 2K8 的 DRAM 芯片,每个芯片可以存储 2KB 的数据。则需要 1 个 2K8 的 DRAM 芯片来存储 A000H~A7FFH 的地址范围,需要 2 个 2K*8 的 DRAM 芯片来存储 A800H~ABFFH 的地址范围。
假设使用 1K4 的 DRAM 芯片,每个芯片可以存储 1KB 的数据。则需要 3 个 1K4 的 DRAM 芯片来存储 A800H~ABFFH 的地址范围。
因此,总共需要的芯片数量为:2 个 RMO 芯片、1 个 2K8 的 DRAM 芯片和 3 个 1K4 的 DRAM 芯片。
接下来,我们需要写出各个芯片的片选逻辑表达式。
RMO 芯片的片选逻辑表达式为:
CS_RMO = /MREQ & /IORQ & (A15 & A14 & A13 & /A12 & A11 & /A10 & A9 & A8 & /A7 & /A6 & /A5 & /A4 & /A3 & /A2 & /A1 & /A0)
其中,/MREQ 和 /IORQ 为 CPU 的控制信号,表示当前操作是否为对存储器的读写操作。A15~A0 为地址线。逻辑表达式中的“/”表示取反。
2K*8 的 DRAM 芯片的片选逻辑表达式为:
CS_DRAM_2K8 = /MREQ & /IORQ & (A15 & A14 & A13 & /A12 & A11 & /A10 & A9 & A8 & A7)
其中,/MREQ 和 /IORQ 为 CPU 的控制信号,表示当前操作是否为对存储器的读写操作。A15~A0 为地址线。逻辑表达式中的“/”表示取反。
1K*4 的 DRAM 芯片的片选逻辑表达式为:
CS_DRAM_1K4_1 = /MREQ & /IORQ & (A15 & A14 & A13 & /A12 & A11 & /A10 & A9 & A8 & /A7 & A6 & A5 & A4 & /A3 & /A2 & /A1 & /A0)
CS_DRAM_1K4_2 = /MREQ & /IORQ & (A15 & A14 & A13 & /A12 & A11 & /A10 & A9 & A8 & /A7 & /A6 & A5 & A4 & /A3 & /A2 & /A1 & /A0)
CS_DRAM_1K4_3 = /MREQ & /IORQ & (A15 & A14 & A13 & /A12 & A11 & /A10 & A9 & A8 & /A7 & /A6 & A5 & A4 & A3 & A2 & A1 & A0)
其中,/MREQ 和 /IORQ 为 CPU 的控制信号,表示当前操作是否为对存储器的读写操作。A15~A0 为地址线。逻辑表达式中的“/”表示取反。
需要注意的是,在实际使用中,片选信号可能还需要经过一些逻辑门电路进行处理,以满足特定的系统要求。此处仅给出基本的片选逻辑表达式,具体实现方式需要根据具体情况进行调整。
原文地址: https://www.cveoy.top/t/topic/oBXQ 著作权归作者所有。请勿转载和采集!