题目:设CPU有16根地址线、8根数据线,并用MREQ作为访存控制信号(低电平有效),用WR作为读/写控制信号(高电平
为读,低电平为写)。现有下列存储芯片:1K * 4 位RAM、4 K * 8 位RAM、8 K * 8 位RAM、2 K * 8 位ROM、4 K * 8
位ROM、8 K * 8位ROM 及 74138 译码器和各种门电路。画出CPU与存储器的连接图。
1)要求主存的地址空间:最小8 K地址为系统程序区,与其相邻的16K地址为用户程序区,最大的4K地址空间为程序
工作区
2)画出存储芯片的片选逻辑并指出存储芯片的种类
分析:
1、确定是部分译码、还是全部译码
2、16根地址线、8根数据线
3、根据第一点要求,以及对应工作区的大小,可以求出工作区所占据的地址空间范围
4、根据对应地址的功能和芯片的特性,选择对应的芯片
5、确定对应的字扩展或者位扩展信息,因为不同的扩展地址连接方式不同
6、根据所得的地址分配信息确定对应的译码方式:大地址译码方式、小地址译码方式
7、根据列出的地址信息确定每块芯片的地址,最终用图示连接
(注:本文采取的芯片都是低有效芯片,若是高有效,则本文方法适用,但是结果不适用)
具体实现过程(对应分析过程):
1、由于题目限定了地址,所以即使所有的地址没有全部用到,但仍然是一个全译码
2、16 根地址线、8根数据线
3、系统程序区 8 k,转化成二进制字节数为 2 ^ 13 次方,对应二进制的第 14 位,所以最高位地址-最低位地址
+1应该等于 2 ^ 13,即 0010 0000 0000 0000,由于最低地址等于 0000 0000 0000 0000,所以对应的最高地址为
0001 1111 1111 1111,如图所示,其他区域的对应区间也由上面的公式求解
4、由于系统程序区不允许随便修改,且需要在断电的时候依旧能够存储内容,所以选用 ROM,而其他两个区域都
需要进行读写操作,又具有临时性,所以选用 RAM
5、由于题目给定了 8K*8 的ROM 和 4K*8 的RAM,所以系统程序区和系统程序工作区均没有扩展需求,而用户程序
区只有 8K*8 的RAM,所以需要进行 字扩展
6、由第 3 步的计算过程可以知道,系统程序区存储大小为 2 ^ 13 次方,需要占据 13 根地址进行片内地址
寻址,同理有用户程序区需要有 14 根片内地址线,系统程序区需要有 12 根片内地址线,所以优先考虑 14 位片内
地址线,由于题目说要用 3-8 译码器,选取 14 位片内寻址地址线,则不够 3 位片外片选寻址地址线,所以退而其次
选用 13 根片内寻址地址线,所以,对于用户程序区和系统程序区来说,是一个小地址译码,对于系统程序区和系统
程序工作区来说是大地址译码
7、在 3 的基础上,对每块芯片的取址范围作出具体图示,如图所示,注意同时也要标明片内寻址地址和片外片选
地址的分界线
因为前三位地址线需要做片选信号,所以需要单独从片内寻址线中摘出来,所以,前12根地址线是共有的地址线,
而从第 13 根地址线开始,就出现了差别,系统程序区缺一位第13根地址线的片内寻址,用户程序区缺第13、14根的
片内寻址,而对于系统程序工作区,前三位和后十二位地址线都用上了,但是第13位地址线未用上,由于 1 确定该
题为全译码方式,所以需要给其加上第十三位地址线的限定,对于缺少的在图中要给他加上(小地址译码),对于
赘余的,要给他做出规定(大地址译码)。
最后再加上 MREQ 的译码器片选有效信号(低有效,接地或者接地址线都行,只是这里的地址线都被用了,所以
只能采用前两种方式,题中又给出了 MREQ,所以采用 MREQ 做片选)
综和上面的所有内容,最后做出图示: