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

【计算机组成原理实验】实验一 运算部件实验_加法器及计算机性能指标

实验指导书原文:

1.3、实验步骤

1、先连接USB线,也是电源。(切记:不能带电插拔USB,否则会损坏实验设备)

2、打开QuartusàtoolsàprogrammeràAddFile,将adder8.sof(C盘的“计算机组织与结构源码”文件夹里面,不清楚问老师)下载到FPGA中。

3、在实验台上通过模式开关选择REGSEL=0、M[2:0]=“上(1)、上(1)、上(1)”、FDSEL=0

4、除了模式选择开关外,请把其它所有开关初始状态全部置为0。

1.4、观察实验现象并记录相应数据

本实验实现8位数相加I+II=sum(CarryOut)。

输入输出的规则对应如下:

  1. 输入的8位操作数I7~I0对应开关SD15~SD8
  2. 输入的8位操作数II7~II0对应开关SD7~SD0
  3. 最低位进位Cin对应开关SA0
  4. sum7~sum0对用灯A7~A0,最高位进位CarryOut对应等A8

如(00000000)+(11111111)=(11111111),CarryOut=0。

  1. 波动开关SD15~SD8输入8位操作数I(I7~I0)00000000,SD7~SD0输入8位操作数II(II7~II0)11111111,SA0输入Cin();
  2. 观察和sum(灯A7~A0),CarryOut(灯A8)。同理实验表1. 3中的数据,并把sum和CarryOut记录到表1.3对应的表格里(此处是第1张表,二进制记录,记录机器算的结果)并手工计算(要求熟练掌握原码、反码、补码算法,负数的表示和计算方法)校验机器计算的结果是否正确?

表1.3   8位加法器实验(注意操作数全都是补码

对上面表格的数据进行分析,分两种情况(请熟练手工计算):

  1. 一是如果把上面数据看成是有符号数,结果是多少?请在表格里面把输入操作数和结果以十进制(方便计算,直观感受)表示出来(另画一张类似的表格,此处是第2张表,十进制记录,记录手工计算结果);注意计算机里面负数的表示方法及补码运算方法。
  2. 二是如果把上面数据看成无符号数,结果又是多少?请在表格里面把输入操作数和结果以十进制表示出来(另外一张类似的表格另画一张类似的表格,此处是第3张表,十进制记录,记录手工计算结果)。

注意分析:特别是有符号数运算的时候,怎样看待CarryOut的结果,CarryOut=1就是真溢出?怎样判断真假溢出?请分析并记录,然后写在报告里面。

1.5、计算机性能指标

1、查阅资料,掌握计算机性能指标有哪些?

2、根据计算机性能指标选择性价比高的计算机。

        分别为要求价格在3000、5000、8000左右的客户选择购买性价比高的计算机。

3、平常购买计算机除了上面提到的性能指标外,我们通常还会考虑哪些因素?

1.7、思考题

1、根据8位数据位加法器原理,考虑16、32、64位数据位的加法是怎样完成的?

实操注意

我们学校的硬件长这样:

区域1对应的就是实验步骤1.3,选择REGSEL=0、M[2:0]=“上(1)、上(1)、上(1)”、FDSEL=0都在这里进行。

区域2对应的就是实验步骤1.4,8位二进制数相加的结果,左边8个事一个数,右边8个是另一个数。我标的2这个数的正上方(框内)就是SA0,结果就是加1,模拟的是全加器的进位提示(但是笔者没学懂全加器也不知道是啥意思)。

区域3对应的就是显示结果。最上一排是最终结果,同实验报告书
左边只需要看A8,如果亮了表示进位;右边的8个数就是相加得出的结果。

其他区域尚未探索,我目前也不知道是什么。

实验报告

实验结果

表 1

操作数I

操作数II

Cin

Sum

CarryOut

1011 1111

0100 1111

0

0000 1110

1

1010 1010

1010 1010

1

0101 0101

1

1111 0000

0000 1111

0

1111 1111

0

1111 1111

1111 1111

1

1111 1111

1

根据计算得出:

表 2

操作数I

操作数II

Cin

Sum

CarryOut

是否溢出

1011 1111(-65)

0100 1111(79)

0

0000 1110(14)

1

1010 1010(-86)

1010 1010(-86)

1

0101 0101(85)

1

1111 0000(-16)

0000 1111(15)

0

1111 1111(-1)

0

1111 1111(-1)

1111 1111(-1)

1

1111 1111(-1)

1

根据计算得出:

表 3

操作数I

操作数II

Cin

Sum

CarryOut

是否溢出

1011 1111(191)

0100 1111(79)

0

0000 1110(14)

1

1010 1010(170)

1010 1010(170)

1

0101 0101(85)

1

1111 0000(240)

0000 1111(15)

0

1111 1111(255)

0

1111 1111(255)

1111 1111(255)

1

1111 1111(255)

1

思考题

分析:特别是有符号数运算的时候,怎样看待CarryOut的结果,CarryOut=1就是真溢出?怎样判断真假溢出?请分析并记录,然后写在报告里面。

答:在有符号数加法中,CarryOut=1并不代表一定发生了溢出。

因为CarryOut仅仅表示最高位(符号位)产生了进位或借位,而有符号数溢出的本质是结果符号异常,具体来说,有符号加法真假溢出的判断标准是,如果两个操作数符号相同(都为正,或都为负),但结果符号与它们不同,那么发生了真正的溢出;如果两个操作数符号不同,不管结果怎样,都不会发生有符号溢出。

因此判断溢出要看符号位的变化,而不是单纯看CarryOut

思考题:根据8位数据位加法器原理,考虑163264位数据位的加法是怎样完成的?

答:8位加法器原理推广到更高位(16位、32位、64位)加法的方法:

高位加法器是由低位加法器级联组成的。

具体方法是:低位的CarryOut作为高一位加法器的CarryIn输入,逐级传递,形成进位链。

每一级加法器只负责自己的8位、16位或32位数据块,Carry信号负责在各块之间传递。

比如:

16位加法 = 两个8位加法器级联(低8+8位,Carry连接)

32位加法 = 四个8位加法器级联

64位加法 = 八个8位加法器级联

为了提高速度,现代处理器中还会用快速进位技术,提前预测进位,从而并行运算,减少加法延迟。

简要流程:

低位部分加法,得到Sum低位和CarryOut

高位部分加法,把低位CarryOut作为高位的CarryIn

依此类推,最终得到全位宽Sum和最高位的CarryOut

相关文章:

  • Redis超详细入门教程(基础篇)
  • 【每日随笔】文化属性 ② ( 高维度信息处理 | 强者思维形成 | 认知重构 | 资源捕获 | 进化路径 )
  • Spark SQL核心概念与编程实战:从DataFrame到DataSet的结构化数据处理
  • Spark-Streaming核心编程(四)总结
  • 关于堆栈指针的那些事 | bootloader 如何跳转app
  • 如何解决无训练数据问题:一种更为智能化的解决方案
  • k8s学习记录(五):Pod亲和性详解
  • AI提示词(Prompt)终极指南:从入门到精通(附实战案例)
  • STM32:看门狗
  • Leetcode刷题记录20——找到字符串中所有字母异位词
  • 烽火HG680-MC_晨星MSO9385芯片-2+8G_安卓9.0_不分地区通刷卡刷固件包
  • 第十二章-PHP文件上传
  • 虚拟数字人:从虚拟到现实的跨越与未来展望
  • 多商户 | 可二次开发【全开源】小程序源码商城挑选指南!
  • 在windows使用docker打包springboot项目镜像并上传到阿里云
  • 有关爬虫中数据库的封装——单线程爬虫
  • macos下mysql 5.7/8.0版本切换
  • FPGA基础之基础语法
  • 当元数据遇见 AI 运维:智能诊断企业数据资产健康度
  • HarmonyOS Next~鸿蒙系统UI创新实践:原生精致理念下的设计革命
  • 伊朗港口爆炸已造成281人受伤
  • 俄军方:已完成库尔斯克地区全面控制行动
  • 最高法报告重申保护创新主体权益:加大侵权损害赔偿力度
  • 男子称喝中药治肺结节三个月后反变大增多,自贡卫健委回应
  • 凯撒旅业:2024年营业收入约6.53亿元,同比增长12.25%
  • 更好发挥汽车产业在扩投资促消费方面的带动作用!陈吉宁调研上海车展