实验四 微程序控制的运算器设计

实验分析

设计要求:

  • 利用之前设计的具有超前进位功能的8位ALU,实现简单算术或逻辑运算
  • 两操作数由八位寄存器R0、R1提供,其结果放入R2中。具体何种操作可由微命令任意设定(物理运算由ALU电路完成)。

实验要求完成如下所示的虚线框内的部分:

其中图片上方是运算器(ALU),下方是计数器(μPC)

另外因为实验要求的器件更改,图中有一部分是错误的,对照试验过程ALU中的右四位不应该是LM、DM、RM和C0,而应该是5位:M、S0-S3(对应74818的功能输入)

实现的功能

  1. 按一下单脉冲(会形成一个负脉冲),会输入到三个信号中
    a. 在μRD的作用下,根据μPC的地址从ROM中取出24位的微指令代码(输入到μRD管脚中)
    b. 在CPμIR的作用下,ROM中的24位微指令代码输出到μIR微指令寄存器中(输入到CPμIR管脚中)
    c. μPC+1,形成下一次的8位地址(输入到μPC的clk中)
  2. 其中,按第一次形成的24位微指令,将前八位输入R0(后5位不用管)
  3. 按第二次,前八位输入R1(后5位不用管)
  4. 按第三次,得到R2(后5位调成相应 命令)

负脉冲


运算器结构:

输入:
1. 微指令数据的输入:μIR(23-16)共8个
2. 为了控制输入由R0还是R1保存,以及R2是否保存:需要额外3个输入用于选择(CPR0,CPR1,CPR2)
3. ALU选择进行哪些操作:需要5个输入(M,S0-S3)
输出:
1. R2的运算结果(8个)(从R2中输出)

取出的是24位的微指令代码,但只需要16个输入,也就是有8位是没有用处的,观察下图,μIR23-μIR16和μIR7-μIR0是用到的,其他是没有用到的

p是脉冲,CPRi是相应的寄存器的打入脉冲,只有在有p脉冲和底部CPRi的脉冲共同作用下,寄存器才能存储μIR23-μIR16的数据


μPC的结构:

见下图连接,这里略



微程序控制器的连接:

需求:

  • 控制存储器ROM

    • 字长24位,由三个字长8位的ROM组成(实验系统自带)
  • 微程序μPC计数器
    • 字长8位,向控制存储器提供8位的微地址(自己搭建)
  • 微指令寄存器μIR(23-0)
    • 字长24位,需要显示出来(用24个信号灯L23-L0)(实验系统自带)
  • 运算器ALU
    • 每次接收13个输入(前8位和后5位),经过命令后会产生8个输出


运行流程

  1. 按下脉冲键,形成一次脉冲,脉冲输入充当三个输入(μRD、CPμIR、CPRi)
  2. μPC提供8位微地址 + 控存读信号(μRD、低电平有效) -> 控制存储器读出24位的微指令代码
  3. 控制存储器的24位微指令代码 + 打入命令(CPμIR、高电平有效/) -> 送入微指令寄存器
  4. 微指令寄存器的24位指令中,前8位直接输出到2个寄存器中;中8位没有用处;
  5. 后8位中,前三位用来控制哪个寄存器有效,即控制前两个寄存器是否接受前8位的数据以及第三个寄存器是否接受ALU的运算结果,后五位用来控制ALU接受了前两个寄存器的输入后,经过怎样的运算输出

μPC


μPC其实就是一个PC计数器,用来实现脉冲+1和预置功能的,本次实验用两个74161实现8位计数器,样式如下

74161的功能表

上表一个没有说明的功能是:计数到1111时RCO=1,这样就使得进位可以连续下去


8位寄存器


8位寄存器是由8个D触发器组成的,用于实现存储值,具体实现如下:

D触发器的功能表:

也就是只要没有上升沿脉冲触发,output永远是之前的值不会变


8位超前进位ALU


然后是今天最后的8位超前进位ALU了,它有两个74181和一个74182组成。

原理:其中74181是4位加法器,本来可以通过串联直接变成8位加法器,但为了解决串联过程的延迟,于是通过一个74182(超前进位产生器)来实现超前进位,使运算速度更快(通俗一点,74182就是接收低四位的进位信息反馈给高四位的,本来可以直接两个74181传递,但是用74182更快一点)

实现如下:

74181的功能表

简单的说,An和Bn是输入的两组数,Sn是用于控制A和B实现什么运算的,Fn是运算的4位输出,C是是否有进位。
G和P有些特殊,G称为进位产生函数,Gi=Ai*Bi,也就是A和B都为1的时候本位会产生下一位的进位。
P称为进位传递函数,Pi=Ai+Bi,也就A和B有一个为1的时候,如果低位进1,则本位会产生进位
GN =G3+P3G2 +P3P2G1 +P3P2P1G0
PN =P3P2P1P0


运算器设计


最后就是将这些组件全都连接起来,并设置相应的管脚

这个如果不懂原理,直接照着连可能会看不懂..因为还设置了一些输出是用于调试的(没设置名字,直接是pin_namei的),建议弄清楚整个流程后再连。

整个过程是这样的:

红线和橙线先执行,然后执行蓝线
红线允许ROM从μPC的8位数据对应的地址中取24位数据输出到μIR指令寄存器,橙线允许指令寄存器接收ROM的24位数据并保存

随后μIR指令寄存器的数据保持输出状态,赋给上图橙色标注的管脚,执行相关的命令。
最后返回一开始的图,执行蓝线,计数器+1

在ROM中输入指令,重复三次脉冲,看到最后的结果

实验中的ROM指令是16进制输入的,找个进制转换网站解决吧。


总结

这个实验一开始做是很懵逼的…而且老师的ppt我感觉很乱,就有种不知道从何处下手的感觉,其实这个实验理解透了很简单…就是控制ROM读指令到μIR,然后从μIR接收指令完成操作,也就是将μIR指令控制代替了开关控制,中间多了一步操作就是,但整个PPT我很难找到一个具有概括性质的话语,写这篇文章的时候我尽力的理清了一下思路,不敢说每个人都能看懂,但就逻辑的清晰度来看我觉得是要好很多的,就酱紫,下次实验见…

重大错误

  • CPuIR是上升沿触发
  • 是uPC先+1,在下一次脉冲的时候才触发寄存器
  • uRD和CPuIR不需要加否门,通向寄存器的需要加否门

如果不加,这次实验应该能完成,但下一次实验按照这个思路连就会出现莫名其妙的错误

计算机组成原理课程设计_微程序控制的运算器设计相关推荐

  1. 计算机组成原理认识fpga,计算机组成原理课程设计-基于EDA和FPGA技术的8位模型计算机的设计与实现_精品.doc...

    计算机组成原理课程设计-基于EDA和FPGA技术的8位模型计算机的设计与实现_精品 目录 前言2 第一章 课程设计内容2 1.1 实验要求2 1.2 实验目的2 第二章 实验原理及方案2 2.1 实验 ...

  2. 计算机组成原理4位ALU运算器设计,计算机组成原理课程设计-alu设计和4位锁存器设计.doc...

    计算机与通信工程学院 计算机组成原理课程设计 专业名称班级学号学生姓名指导教师设计时间207.12.23~2018.1.3 课程设计任务书 专业:: 学生姓名(签名): 设计题目: 设计实验条件 20 ...

  3. 计算机组成原理课设总线,计算机组成原理课程设计(全).doc

    文档介绍: 计算机组成原理课程设计(全)成绩评定表学生姓名刘建成班级学号1103050115专业计算机科学与技术课程设计题目多寄存器减法\右移位\输入输出等指令实验计算机设计评语组长签字:成绩日期20 ...

  4. 计算机组成原理课程设计基本模型机,广东海洋大学计算机组成原理课程设计-基本模型机的设计与实现讲解...

    <计算机组成与结构>课程实习 基本模型机的设计与实现 系 别: 信息学院 班 级: 计科1141 指导教师: 刘桃丽 姓名 邓超荣 何涛 邓周光 学号 分工 成绩 201411621110 ...

  5. 东北大学计算机组成原理2018,东北大学计算机组成原理课程设计

    <东北大学计算机组成原理课程设计>由会员分享,可在线阅读,更多相关<东北大学计算机组成原理课程设计(9页珍藏版)>请在人人文库网上搜索. 1.计算机组成原理课程设计报告班级:0 ...

  6. 东北大学计算机组成原理答案,东北大学计算机组成原理课程设计.doc

    计算机组成原理课程设计报告 班级: 班 姓名: 学号: 完成时间: 一.课程设计目的 1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系 ...

  7. 东北大学计算机组成原理2018,东北大学计算机组成原理课程设计2019.doc

    计算机组成原理课程设计报告 班级:计算机 1708 班 姓名: 学号: 完成时间: 209.12.26 一.课程设计目的 1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微 ...

  8. 计算机组成原理方程求根设计,计算机组成原理课程设计.pdf

    山东英才学院 课程设计 (论文 ) 设 计 题 目 :微程序控制运算器的设计 课 程 名 称 : 计算机组成原理 院 (系) 部 : 信息工程学院 学 生 姓 名 : 邵 帅 班 级 : 11科计技本 ...

  9. 计算机组成原理cop乘法器,计算机组成原理课程设计报告COP2000实现乘法器和除法器.doc...

    文档介绍: 计算机组成原理课程设计报告班级:班姓名:学号:完成时间:一.课程设计目的1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统 ...

最新文章

  1. 机器学习:论相关(一)
  2. Oracle Enterprise Manager Cloud Control最新文档合集
  3. 绝地求生5月22日服务器维护,绝地求生5月22日更新了什么内容 吃鸡5月22日维护公告...
  4. 使用命令行加载 jMeter 自定义配置文件里的自定义 property
  5. 用扫地机器人楼下吵吗_扫地机器人到底好不好用?说说我两年的使用体验!
  6. python实践答辩ppt_看完这篇Python操作PPT总结,从此使用Python玩转Office全家桶没压力!...
  7. 中职计算机PPT触发器使用的教案,PPT 触发器微课教学设计
  8. android 比较全的android 源码合集 + 企业级应用分享,从业的积累(毕业设计集合版)
  9. 活动预约报名小程序已优化点与待优化点
  10. C语言编程题最简分式,C语言 程序设计入门 最简分式
  11. 从零实践强化学习之连续动作空间上求解RL(PARL)
  12. FreeSWITCH的端口设置
  13. 【手把手教程】如何快速实现任意自定义的域名的网页跳转
  14. java解压obb,使用 OBB 文件(Android)
  15. 20162312Java结对编程之挑战出题
  16. 法国计算机专业学校排名,法国计算机专业大学排名(2020年泰晤士)_快飞留学
  17. Ubuntu16.04 E: 无法定位软件包(绝不是更换镜像源这种千篇一律无效的解决方案) (已解决)
  18. 数据分析工作,指标体系的构建流程
  19. 2020年一级建造师课件各科实务课程资料全套网盘打包分享地址
  20. Mac 使用教程之 PTGui 的下载与安装

热门文章

  1. fiddler下载及安装
  2. PHP和Socket简介
  3. HTML开发者工具抓取所有图片,利用Chrome开发者工具功能进行网页整页截图的方法...
  4. H5和微信小程序测试区别
  5. Jupyterlab安装和配置
  6. axios的使用(请求,响应拦截器)
  7. 信息收集:CCF大学生计算机系统与程序设计竞赛(CCSP)
  8. CSMA/CD协议总结最短帧长计算
  9. 2021年安全员-A证最新解析及安全员-A证试题及解析
  10. Ruby‘s Adventrue游戏制作笔记(十二)Unity给角色添加简单的特效