【计算机硬件系统设计(华科)——运算器设计(Logisim 实现)】
计算机硬件系统设计(华科)——运算器设计(Logisim实现)
- 运算器的设计与实现
- 前言
- 运算器框架
- 8位可控加减法器
- 4位先行进位74182
- 4位快速加法器
- 16位快速加法器
- 32位快速加法器
- 5位阵列乘法器
- 6位补码阵列乘法器
- 5位无符号乘法流水线
- 原码一位乘法器
- 补码一位乘法器
- 原码加减交替除法器
- 算术逻辑运算单元ALU
- 总结
运算器的设计与实现
前言
文章主要介绍由华中科技大学开设的MOOC《计算机硬件系统设计》中运算器设计的课程设计具体实现思路与方式。设计过程中可能不尽完善,希望可以同各位读者交流共同学习。
运算器框架
运算器是计算机中的重要部件,负责算术运算及逻辑运算,本实验中主要设计实现以下电路(功能):
- 8位可控加减法器 ;
- 4位先行进位74182电路 ;
- 4位快速加法器
- 16位快速加法器 ;
- 32位快速加法器;
- 5位阵列乘法器;
- 6位补码阵列乘法器;
- 5位无符号乘法流水线;
- 原码一位乘法器;
- 补码一位乘法器;
- 原码加减交替除法器;
- 算数逻辑运算单元ALU;
8位可控加减法器
8位可控加减法器主要使用“全加器”实现,该处不再赘述全加器的电路逻辑。两数据对应各位依次相加由低位向高位传递进位信号,同本位相加实现加法运算。最高位产生进位则说明结果溢出。输入引脚区Sub信号为控制信号,低电平为加法,高电平为减法,以实现控制作用。
计算机无法直接进行减法运算,故引入补码概念。至此计算机中可将加减法看作一类运算。
A + B = C
A - B = A + (-B) = C
溢出判断:关于无符号数溢出判断较为容易,即最高位产生进位时运算结果溢出,故 Cout = 1 为溢出。而对有符号数溢出判断时则有一定难度,就结果而已,其溢出结果可通过符号位与最高位共同判断。
S符号位 ⊕\oplus⊕ Z最高位 = 1 为溢出
S符号位 ⊕\oplus⊕ Z最高位 = 0 无溢出
当机器数采用补码,[ A - B ]补= [ A ] + [ -B ]补
[ -X ]补为求补运算,即将[X]补各位求反再加一
注意:Logisim中运算默认为补码运算,即输入原码,运算过程将自动转换为补码,最终结果将再次转换为原码输出。故设计者无需进行补码转换工作
下图为8位可控加减法器电路图:
4位先行进位74182
全加器虽然弥补了半加器无法实现多位相加的缺陷,可从前面的实验不难看出,高位进行运算时必须等待低位的进位信号,导致延迟的增加。
而当机器数数位固定时,各位的进位信号可通过更复杂的设计直接得到,无需等待低位给出进位信号,因此出现了先行进位电路,又称超前进位加法器( Carry Lookahead Adder )。
由全加器可知:
CI+1 = Ai · Bi + Ai · Ci + Bi · Ci = Ai · Bi + ( Ai + Bi ) · Ci
设:
生成信号(Generate):Ai · Bi
传递信号(Propagate):Ai + Bi
则:CI+1 = GI + Pi · CI
附电路逻辑表达式:
P = P4 P3 P2 P1
G = P4 P3 P2 G1 + P4 P3 G2 + P4 G3 + G4
C1 = P1 Cin + G1
C2 = P2 P1 Cin + P2 G1 + G2
C3 = P3 P2 P1 Cin + P3 P2 G1 + P3 G2 + G3
C4 = P4 P3 P2 P1 Cin + P4 P3 P2 G1 + P4 P3 G2 + P4 G3 + G4
4位先行进位74182电路如图所示:
4位快速加法器
通过使用74182电路实现快速加法器,如图:
16位快速加法器
实现过程不再赘述,如图:
32位快速加法器
设计原理同其他快速加法器,如图:
5位阵列乘法器
乘法为高阶的加法,因此可以将乘法分解为多步加法。
a3a2a1a0×b3b2b1b0a3b0a2b0a1b0a0b0a3b1a2b1a1b1a0b1a3b3a2b2a1b2a0b2a3b3a2b3a1b3a0b3S7S6S5S4S3S2S1S0\begin{matrix} &&&&a_3 & a_2 &a_1 & a_0 \\ \times& &&&b_3 & b_2 &b_1 & b_0\\ \hline &&&& a_3b_0 & a_2b_0 &a_1b_0 & a_0b_0\\ &&&a_3b_1 & a_2b_1 &a_1b_1 & a_0b_1 \\ &&a_3b_3 & a_2b_2 &a_1b_2 & a_0b_2\\ & a_3b_3 & a_2b_3 &a_1b_3 & a_0b_3\\ \hline S_7 &S_6 &S_5 &S_4 &S_3 &S_2 &S_1 &S_0 \end{matrix} ×S7a3b3S6a3b3a2b3S5a3b1a2b2a1b3S4a3b3a3b0a2b1a1b2a0b3S3a2b2a2b0a1b1a0b2S2a1b1a1b0a0b1S1a0b0a0b0S0
关于电路延迟这里不再讨论,附电路图:
6位补码阵列乘法器
6位补码阵列乘法器,基本原理同5位阵列乘法器:符号位单独运算,由符号位选择输出结果,低五位运算经过数码转换按照5位阵列乘法器运算获得结果。电路图如下:
5位无符号乘法流水线
注:后续设计不再赘述细节。
原码一位乘法器
补码一位乘法器
原码加减交替除法器
算术逻辑运算单元ALU
总结
以上为运算器设计全部内容,设计完成后可通过实验包内提供的验证电路验证电路功能正确以及是否可以稳定工作。设计过程不尽完善,希望给位读者可以给予宝贵建议,相互学习,使得实验更加完善。如有问题欢迎提问。后续将继续更新相继实验。
注:请读者注意实验时效性,如后续课程实验更新,内容不尽相同望本设计可提供相关参考与建议。
【计算机硬件系统设计(华科)——运算器设计(Logisim 实现)】相关推荐
- 【计算机硬件系统设计(华科)——三级时序 CPU「包含中断处理」(Logisim 实现)】
[计算机硬件系统设计(华科)--MIPS CPU(Logisim 实现)] 前言 定长指令周期三级时序CPU 控制器设计 时序部件设计 控制信号设计 译码器设计 变长指令周期三级时序CPU 控制器设计 ...
- 【计算机硬件系统设计(华科)——现代时序 CPU(Logisim 实现)】
[计算机硬件系统设计(华科)--现代时序 CPU(Logisim 实现)] 前言 变长指令周期现代时序CPU 指令译码器设计 控制器设计 硬布线控制器设计 微程序控制器设计 微指令设计 中断处理机制 ...
- 【计算机硬件系统设计(华科)——单周期MIPS CPU(Logisim 实现)】
计算机硬件系统设计(华科)--单周期MIPS CPU 设计(单周期.流水线)(Logisim 实现) 前言 单周期 CPU 设计 数据通路 控制器设计 MIPS 指令流水线设计 理想流水线 流水接口部 ...
- 华科计算机组成原理 头歌Educoder Logisim 运算器设计(HUST) 1~11关满分通关
目 录 第1关:8位可控加减法电路设计 第2关:CLA182四位先行进位电路设计 第3关:4位快速加法器设计 第4关:16位快速加法器设计 第5关:32位快速加法器设计 第6关:5位无符号阵列乘法器设 ...
- 计算机硬件教学设计高中信息,重大版信息技术七上《计算机硬件系统》教学设计.doc...
重大版信息技术七上<计算机硬件系统>教学设计.doc 文档编号:745134 文档页数:3 上传时间: 2019-09-19 文档级别: 文档类型:doc 文档大小:33.00KB 计算机 ...
- 计算机硬件系统组成教学设计,计算机硬件系统组成教学设计
<计算机硬件系统组成教学设计>由会员分享,可在线阅读,更多相关<计算机硬件系统组成教学设计(5页珍藏版)>请在人人文库网上搜索. 1.七年级信息技术教学设计章节名称计算机系统的 ...
- 我们为什么要学计算机硬件技术设计,《计算机硬件组成》教学设计
<计算机硬件组成>教学设计 作为一名专为他人授业解惑的人民教师,就难以避免地要准备教学设计,教学设计是根据课程标准的要求和教学对象的特点,将教学诸要素有序安排,确定合适的教学方案的设想和计 ...
- 计算机硬件知识教学的信息化手段,《计算机硬件组成》教学设计
<计算机硬件组成>教学设计 导语:计算机课程的教学设计你听说过了吗?如果没有,你可以看看下面这篇文章,是关于<计算机硬件组成>的教学设计. 一. 前端分析 (一)教材内容分析 ...
- 计算机组成原理运算器设计,计算机组成原理2_5教学计算机运算器设计.ppt
<计算机组成原理2_5教学计算机运算器设计.ppt>由会员分享,可在线阅读,更多相关<计算机组成原理2_5教学计算机运算器设计.ppt(32页珍藏版)>请在人人文库网上搜索. ...
- 计算机硬件设计边界,基于JTAG的计算机硬件实验系统的设计与实现.pdf
■鲎坠型里型--塑堡型 基于JTAG的计算机硬件实验系统的设计与实现 12013) 肖铁军史顺波沈健(江苏大学计算机科学与通信工程学院江苏镇江2 摘要:介绍了一种利用自建ITAG边界扫描结构.基于FP ...
最新文章
- ztree 拖动树结构的移动组件样式不见了怎么办?
- 成功使用机器学习技术的3个技巧
- 使用 ESS SDK 快速创建多实例规格伸缩配置
- 计算机组成原理简单计算机设计,计算机组成原理课设.doc
- JSON_dump和load
- 如何用纯 CSS 创作背景色块变换的按钮特效
- html字母间距属性,html – 是否可以相对于font-size具有字母间距并正确继承?
- 易买网商城管理系统MySQL+JSP
- matlab 象限图,【数据可视化】Tableau教程(十)象限图
- android rxbus github,RxBus
- 我是如何出版一本书的?
- 使用Spring Data MongoDB操作SequoiaDB巨杉数据库简易教程
- Apache 架构师的 30 条设计原则
- 2021年陕西柿子种植现状及出口情况分析:出口量下滑明显[图]
- android项目飞机大战,Android 项目之飞机大战
- 人脸表情识别概述(一)
- Doc2Vec的简介及应用(gensim)
- 攻击 | 破解windows7密码(利用5次shift漏洞破解win7密码)
- C#调用C++接口 -- delegate实现函数指针
- MacBookPro M1安装 Ubuntu