山东大学软件学院计算机组成原理课程设计实验四
文章目录一、实验时间二、实验内容1.实验目的2.设计要求3.结构框架图4. 实验要求和基本思路5. 微程序设计三、电路图1. 启动电路2. MBR寄存器3.总图四、补充说明一、实验时间第四次实验:2021年4月15日星期四,第7周第二次部件级实验,算分二、实验内容1.实验目的(1)完成随机存储器(RAM)读写系统结构设计;(2)熟悉随机存储器(RAM)的读写时序;(3)完成随机存储器(RAM)读写
一、实验时间
第四次实验:2021年4月15日星期四,第7周
第二次部件级实验,算分
二、实验内容
1.实验目的
(1)完成随机存储器(RAM)读写系统结构设计;
(2)熟悉随机存储器(RAM)的读写时序;
(3)完成随机存储器(RAM)读写操作的微程序实现;
(4)熟悉随机存储器(RAM)的功能测试。
2.设计要求
- 在硬件平台上已经提供了2k*8的的随机存储器(RAM)
- 本此实验的主要内容是设计一个具体的电路,用来对这个RAM进行读写操作,并控制好时序
3.结构框架图
核心部分是完成对红色部分的读取
本次实验的设计电路要求必须使用老师课件中的方案二
4. 实验要求和基本思路
本次实验的基本思路如下
- 使用二路数据选择器选择PC输出,提供读信号和MAR打入信号,取出RAM 0地址中的数据Ad1,放入MAR寄存器中,并使PC+1
- 使用二路数据选择器选择MAR输出,提供读信号和MBR打入信号,取出RAM Ad1地址中的数据X,放入MBR寄存器中
- 使用二路数据选择器选择PC输出,提供读信号和MAR打入信号,取出RAM 1地址中的数据Ad2,放入MAR寄存器中
- 使用二路数据选择器选择MAR输出,提供写信号和MBR的使能端信号,将MBR中的数据X打入RAM的Ad2地址中
- 停机,使连续脉冲不再对电路起作用
5. 微程序设计
上面的步骤全部需要通过微程序实现,总共需要五步,共五条微指令,写入ROM即可
我自己设计的微指令格式如下
微指令共24位:A23,A22,A21…A2,A1,A0
A7:HALT(停机指令)
A6:EN/WR(写RAM和使能信号)
A5:RD(读RAM)
A4:MARY(二路选择器选择MAR输出)
A3:PCY(二路选择器选择PC输出)
A2:CPMBR(MBR打入脉冲)
A1:CPMAR(MAR打入脉冲)
A0:CPPC(PC打入脉冲)
五条微指令和具体信号根据上面的基本思路来就可以了,最好PC+1的信号在后,这样比较不会出现时序问题,这里三态门输出使能端EN和WR信号共用一个信号
注意:最后一条指令一定要是停机指令,否则会一直执行
三、电路图
1. 启动电路
本次实验使用实验平台上的连续脉冲,因此只需要按一次单脉冲键即可,连续脉冲会自动运行,并取出ROM中已经提前写入的所有微程序,直到停机指令的执行,因此需要在原本脉冲的基础上增加一个启动电路
启动电路具体的电路图在课件上有,这里我把它封装成一个单独的部件,以便之后可以复用
当HALT为1时,输出端CP一直为0,启动电路暂停运行。
特别提醒:最后的输出那里的非门一定不能少,一定不能少!!!
2. MBR寄存器
MBR寄存器和普通寄存器的功能类似,只是在输出端加上了三态门进行控制
特别注意:三态门的控制端EN,值为1的时候是通路,值为0的时候是高阻态
3.总图
特别注意:总图中包含了uPC和PC两个计数器,uPC负责给出ROM中的微程序的地址,而PC负责给出RAM中数据的地址
这里复用了之前实验的模256计数器和数据选择器
四、补充说明
在这次实验中,RAM中数据的写入和读取都是用软件实现的,ROM中微指令的写入也是用软件实现的
首先将数据写入RAM,将微指令写入ROM。当微指令运行结束之后,按下读取RAM,查看具体的结果
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)