当前位置: 首页 > news >正文

计算机组成原理与体系结构-实验一 进位加法器(Proteus 8.15)

目录

一、实验目的

二、实验内容

三、实验器件

四、实验原理

4.1 行波进位加法器

4.2 先行进位加法器

4.3 选择进位加法器(尝试猜测原理)

五、实验步骤与思考题


一、实验目的

1、了解半加器和全加器的电路结构。

2、掌握串行进位加法器和并行进位加法器的原理及设计方法。

二、实验内容

1、设计拥有共同输入端——2个4位二进制数输入的串行加法器(行波进位加法器)和并行加法器(先行进位加法器),深入理解两种加法器的实现逻辑和区别。

2、探讨针对输入二进制数在有符号和无符号情况下,两种加法器如何改造成输入是4位有符号数,输出是4位有符号数;输入是4位无符号数,输出是4位无符号数或者5位有符号数的。

三、实验器件

1、2/3/4 与门(74LS08/74LS11/74LS21)、非门(74LS04)、或门(74LS32)、异或门(74LS86) 等逻辑门。

2、三态门(74LS244)、LED指示灯及数码显示管。

3、单刀双掷开关(SW_SPDT)、拨码开关(DIPSWC_8)。

四、实验原理

4.1 行波进位加法器

特点:第i个FA全加器的准确输入进位ci-1需要经过(i-1)个二级与或门的门延迟之后才能获得,因此在计算时间上花费较多,但是硬件连接十分简单,只需要把第(i-1)个FA的进出位连接到第i个FA的进入位,把第i个FA的进出位连接到第(i+1)个FA的进入位,如果是第一个全加器,进入位连接行波进位加法器输入c0;如果是第(n-1)个(最后一个)全加器,进出位输出cn,用于溢出校验。

4.2 先行进位加法器

特点:采取空间换时间的方法,优点是在计算效率上高于行波进位加法器,但是缺点是在硬件电路方面设计更复杂,对于n位输入的先行进位加法器,最大需要用到fan_in=(n+1)的与门和或门,考虑到连接的复杂度和器件的功率和供电情况,一般来说这种加法器用在4位输入较多,如果是8位或者16位、32位的加法器,可以采用4.1行波进位加法器的方法连接2个、4个或8个先行进位加法器,把图中的FA换成4位输入的先行进位加法器即可。

下面是对于两个32位(n=32)二进制数的加法(减法转换增加一个延迟单位T),行波进位加法器和先行进位加法器的计算延迟比较(不包括溢出校验),对于先行进位,溢出校验的最短时间(因为有两种校验方法,进位校验与和位校验)和生成的时间一致;而对于行波进位,溢出校验的时间(两种校验时间几乎一致,微小差异在三输入或门两输入与门组合——最终进位产生VS两输入或门三输入与门组合——溢出判断,二输入异或操作都有只不过次序不同)需要在 产生的基础上再加1T。

当n趋向于正无穷时,行波进位加法器的有效输出延迟(笔者认为最好包括溢出校验)渐近线为t=2nT,而先行进位加法器的渐进延迟线为t=(n/2)*T,所以计算速度大约是4倍左右。

事实上,硬件工程师在设计先行进位加法器的时候还设计了一个Carry-lookahead Logic,用于更多位加法扩展的时候可以进一步缩短运算时间,4组全加器的G和P压缩成了一组G和P,可以形成2层-16个全加器的逻辑块;而不是像前文讲述的简单的直接前后串联。串联就像是数学里的等差数列,而这种逻辑就像是等比数列,比例系数q=1/4。

输入操作数位数n趋近于无穷大时,想要设计一个大加法器完成加减法操作,这个时候渐近线或者说运算效率就会有很大的区别(然而只存在于理论之中,因为实际不存在操作数无穷多位的情况,一般64位就已经是极限了)——

只嵌套一层,渐进延迟线就是t=(n/2)*T,嵌套m层,渐进延迟线就是t=(2n/)*T。其实这不仅仅是一个空间换时间的问题,也涉及到布局和设计,包括对门电路的理解,体现了人类的智慧。

4.3 选择进位加法器(尝试猜测原理)

这种加法器也拥有类似等比数列缩小的渐进延迟,硬件开销近似指数增长。由于笔者没有具体查阅资料去了解选择进位加法器,所以只是猜测可能用到了2路、4路、8路等路选择器,基本原理猜测如下图。


上图列举的是把输入二进制数划分成三段的情况,所以相当于使用了(2^3-1)/3=7/3倍于行波进位加法器数量的全加器,计算速度提升了3倍。当分成4段的时候,使用了(2^4-1)/4=3.75倍于行波进位加法器数量的全加器;当分成8段的时候,使用了(2^8-1)/8≈32倍于行波进位加法器数量的全加器。

图 1       全加器使用6个门(其中或门是唯一的三输入门)

下面看一看输入是64位二进制数(比如long int类型)时,需要多多少硬件才能换取多少时间,延迟计算不包括减法的补码处理。

一个FA全加器使用了6个门,一个4位Carry-lookahead Adder使用了4x6+14=38个门。

图 2       4位先行进位加法器多出的14个门(包含三四五输入门)

图 3       64位操作数输入,三种加法器的硬件开销与计算延迟

可以发现,先行进位加法器的硬件开销和计算延迟综合起来是最优秀的。如果想要在先行进位加法器的基础上把时间进一步压缩,那么需要使用选择进位加法器并且把硬件数量翻20倍。

图 4       Proteus仿真软件-两种加法器的电路实现

五、实验步骤与思考题

使用7段数码管显示运算结果,LED灯判定溢出(笔者没有实现这一功能)。

1.请问本实验的运算器是补码运算器、原码运算器还是无符号数运算器?与串行进位加法器相比,并行进位加法器的优势是什么?所谓的“并行”体现在哪里?

本实验的运算器既是补码运算器也是无符号数运算器,根据所需用途的不同也不同,因为补码运算器也是把有符号数当作无符号数输入全加器运算的。

优势就是运算效率高、运算速度快,并行体现在所有进位(除了c0)的产生延迟是一致的。

2.本实验中,运算器可以表示的数值范围是多少?请把运算器电路分别修改为四位无 符号数运算器和五位补码运算器(一位符号位),并分别写出各自新的数值范围。

见下图。

图 5       思考题2

对于4位有符号输入-4位有符号输出的情况,第五位(进出位)也存在但是不发挥作用。

http://www.xdnf.cn/news/1074043.html

相关文章:

  • 5 c++核心——文件操作
  • MySQL技巧
  • 如何优化RK3588集群的性能?支持12个RK3588云手机阵列
  • C++ 格式化输入输出
  • Java中对JSON的操作
  • 模拟多维物理过程与基于云的数值分析-AI云计算数值分析和代码验证
  • SpringCloud系列(41)--SpringCloud Config分布式配置中心简介
  • TCP/UDP协议深度解析(三):TCP流量控制的魔法—滑动窗口、拥塞控制与ACK的智慧
  • Java笔记
  • 野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
  • 贝叶斯自学笔记——基础工具篇(一)
  • Python爬虫实战:研究Bleach库相关技术
  • 【linux】权限深入解析
  • [分布式并行] 流水线并行 PP(NaivePP/GPipe/F-then-B/PipeDream/1F1B)
  • #华为鲲鹏#华为计算#鲲鹏开发者计划2025#
  • 概率论符号和公式整理
  • 大模型小模型选型手册:开源闭源、国内国外全方位对比
  • 团结引擎发布纯鸿蒙应用
  • 微信小程序接入腾讯云短信验证码流程
  • python 使用 pyenv 管理 python 版本
  • 从代码学习深度学习 - 自然语言推断:使用注意力 PyTorch版
  • 基于Servlet + Jsp 的在线考试系统
  • 华为云Flexus+DeepSeek征文 | 华为云 ModelArts Studio 赋能高情商AI聊天助手:用技术构建有温度的智能对话体验
  • libevent(2)之使用教程(1)介绍
  • 基于云的平板挠度模拟:动画与建模-AI云计算数值分析和代码验证
  • 多模态大语言模型arxiv论文略读(143)
  • 广度优先搜索BFS(广搜)复习(c++)
  • 深入理解Mysql索引底层数据结构和算法
  • NeRF-Lidar实景重建:大疆Mavic 4 Pro低成本建模方案(2025实战指南)
  • H3C-路由器DHCPV6V4配置标准