.利用带片选CS的存储芯片ROM (4K×8位)和RAM(2K×16位)组成存储容量为8K×16位的存储器,并且ROM和RAM各占存储容量的一半,求该存储器所需ROM和RAM芯片数量,并画出与CPU连接图。同时给出各片存储芯片地址范围。
时间: 2024-02-20 17:59:11 浏览: 159
根据题目要求,存储器容量为8K×16位,即共有2^13个地址,每个地址对应一个16位的数据。而题目中又要求ROM和RAM各占存储容量的一半,即ROM和RAM各需4K×8位 = 2K×16位。
因此,我们需要4个ROM芯片和4个RAM芯片,每个ROM芯片可以存储4K×8位 = 2K×16位的数据,每个RAM芯片可以存储2K×16位的数据。
接下来,我们需要将这些芯片连接到CPU上。假设CPU的地址总线有13根,数据总线有16根,则我们可以将地址总线的13根分为11根A0~A10和2根片选线CS1和CS2,其中CS1用于选中ROM芯片,CS2用于选中RAM芯片。数据总线的16根直接连接到ROM和RAM芯片的数据输入/输出端口。
下面是该存储器与CPU的连接图:
```
+-----+ +-----+ +-----+ +-----+
| | | | | | | |
A10──>| | | | | | | |
| | | | | | | |
... | | | | | | | |
| | | | | | | |
A0──>| | | | | | | |
| | | | | | | |
CS2──>| RAM |<───+ RAM |<───+ RAM |<───+ RAM |
| | | | | | | |
+-----+ +-----+ +-----+ +-----+
| | | |
D0 D0 D0 D0
| | | |
... ... ... ...
| | | |
D15 D15 D15 D15
| | | |
GND GND GND GND
+-----+ +-----+ +-----+ +-----+
| | | | | | | |
A10──>| | | | | | | |
| | | | | | | |
... | | | | | | | |
| | | | | | | |
A0──>| | | | | | | |
| | | | | | | |
CS1──>| ROM |<───+ ROM |<───+ ROM |<───+ ROM |
| | | | | | | |
+-----+ +-----+ +-----+ +-----+
| | | |
D0 D0 D0 D0
| | | |
... ... ... ...
| | | |
D15 D15 D15 D15
| | | |
GND GND GND GND
```
其中,RAM和ROM芯片的地址范围如下:
- RAM1: 0x0000~0x07FF
- RAM2: 0x0800~0x0FFF
- RAM3: 0x1000~0x17FF
- RAM4: 0x1800~0x1FFF
- ROM1: 0x2000~0x27FF
- ROM2: 0x2800~0x2FFF
- ROM3: 0x3000~0x37FF
- ROM4: 0x3800~0x3FFF
注意,每个RAM芯片的地址范围都是2K,而每个ROM芯片的地址范围也是4K,因此每个芯片的地址线接法都相同,只需将A0~A10接到对应的地址线上即可。
另外,由于每个芯片的数据线都是16位宽,因此我们需要使用全部16根数据总线,这样才能同时读写16位的数据。
阅读全文