山东大学软件学院计算机组成原理课程设计实验三
文章目录一、实验时间二、实验内容1. 实验目的2. 设计要求3. 实验基本思路三、电路图1. 可预置初值的模256异步计数器2. 8位ALU电路3. 总图四、补充一、实验时间第三次实验:2021年4月8日星期四,第六周第一次部件级实验,开始算分二、实验内容微程序控制的运算器设计1. 实验目的(1)熟悉简单运算器的结构(2)熟悉微命令的产生和时序(3)熟悉运算器功能测试。2. 设计要求利用之前设计的
一、实验时间
第三次实验:2021年4月8日星期四,第六周
第一次部件级实验,开始算分
二、实验内容
微程序控制的运算器设计
1. 实验目的
(1)熟悉简单运算器的结构
(2)熟悉微命令的产生和时序
(3)熟悉运算器功能测试。
2. 设计要求
利用之前设计的具有超前进位功能的8位ALU,实现简单算术或逻辑运算
两操作数由八位寄存器R0、R1提供,其结果放入R2中。
具体何种操作可由微命令任意设定(物理运算由ALU电路完成)。
此外,还要求设计微程序控制器中的uPC
3. 实验基本思路
整个实验由两个部分构成,一是设计的微指令,二是运算器和程序计算器的电路
项目整体架构图
一、用户自己设计的微指令
(1)用户设计的微指令默认从0号单元写入(如果计数器没有预置初值功能)
如果计数器有预置初值的功能,就可以指定某一号单元写入
(2)微指令字长为24位,采用立即寻址方式获得参与运算的数
我自己设计的微指令格式如下
微指令:A0-A7,A8-A15,A16-A23
最高八位为立即数
A23-A16 ----> D0-D7
中间八位中的前6位分别控制ALU的运算方式和进位
A15-A10 ----> C0,M,S0,S1,S2,S3
A9-A8—>值为0
最后八位
A7:寄存器R0的脉冲
A6:寄存器R1的脉冲
A5:寄存器R2的脉冲
A4:LM(左移)实现乘2功能
A3:DM(直送)
A2:RM(右移)实现除2功能
(3)使用软件将对应的微指令写入指定的单元内存中
要求会使用相应的软件,并明确微指令的格式,编写的含义和具体的存放地址
二、运算器和程序计算器的电路
(1)程序计数器uPC
程序计数器uPC模拟的是计算机中PC的用法,PC保存的是当前指令的地址,取完指令之后,
PC自动+1,寻找下一条指令
我的uPC采用的是异步模256加1计数器,可以预置初值(即初始指令的地址)
uPC来一次脉冲就计数+1,对应的输出就是微指令存储的地址
uPC同时具有清0的功能,当按下CPU复位键时,uPC自动清0
(2)运算器部分
运算器由三个寄存器和一个ALU电路构成
R0,R1保存要加的两个数
R2保存结果,并呈现到输出面板上
ALU电路由两个74181和一个74182电路构成
另外还有控制运算器采用什么运算的几个管脚
运算器框架图
(3)附加功能
在运算器输出端,可以加一个移位器,实现数据的左移(乘2),右移(除2),直送
而控制左移右移直送的信号由微程序提供
三、电路图
1. 可预置初值的模256异步计数器
这里复用了可预置初值的模16异步计数器
2. 8位ALU电路
3. 总图
这里最后的输出用了补码移位器
四、补充
1.脉冲的作用
在本次实验中,脉冲一共有四个作用,因此上面的总图中,脉冲CP并联了四个输出
2.绑定的管脚
uPC(模256计数器)的八个输出连到实验平台上的ROM,对应绑定的管脚如下
微指令的高八位连寄存器R0和R1的输入,而后其它位绑定对应的输入管脚
uPD和CPuIR绑定的管脚
单脉冲和清零(CPU复位)绑定的管脚号
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)