计算机组成原理实验1---运算器 预习报告
Posted 旅僧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机组成原理实验1---运算器 预习报告相关的知识,希望对你有一定的参考价值。
本实验为哈尔滨工业大学计算机组成原理实验,实验内容均为个人完成,目的是分享交流,如有抄袭将追究责任,笔者能力有限,若因此影响读者的分数,本人深表抱歉。
一、 实验目的
- 了解运算器的组成结构
- 基于数据通路图,观察并分析运算器的工作原理
- 基于信号时序图,观测并分析运算器的工作原理
二、 实验预习
1.学习使用 TDX-CMX 实验台,然后回答下列问题。
实验台上“时序与操作台单元”中 KK1 功能是选择时序单元的工作状态,KK2 功能是选择时序单元的节拍信号,ST 功能是产生一个节拍信号;方波信号 300Hz、30Hz 和 3Hz 位于实验台的时序与操作台单元单元,ALU 位于实验台的 ALU®单元,数据输入位于实验台的 IN单元单元(我看指导书上写的ALU的输入是IN单元 但是不理解为啥输入AB寄存器要通过CON上的SD17等),数据总线和地址总线位于实验台的系统总线单元。
- 注:CON单元那几个控制部件,是选择什么操作的(算数运算、移位运算、逻辑运算、LDA表示把存的数存入A寄存器中、LDB表示把数存入寄存器B中)
- CON右边是A和B的输入,从左到右依次是高位到低位
- 输入之前,一定要多按几下节拍器,这样才会通过时序逻辑将数据传输过去。
- FZ零标志位,FC进位标志位,要注意这两个的信息。
2.参看实验台运算器实现原理,填写括号处的部件名称或信号名称。
3.ALU 完成哪些基本的逻辑运算、算术运算和移位运算。
- 逻辑运算:
- 取AB其中之一
- AB按位或
- AB按位与
- A取非
- 算术运算:
- 加法运算、
- 带进位的加法运算、
- 减法运算、
- 减一运算、
- 加一运算。
- 移位运算:
- A不带进位循环右移B位
- A逻辑右移一位
- A带进位循环右移一位
- A逻辑左移一位
- A带进位循环左移一位
功能如图所示,要了解各种运算的硬件实现。
4.画出 4×4 阵列乘法器原理图,分析延迟与哪些因素有关?
影响因素:与乘数位数有关 与门电路延迟有关
分析:阵列乘法器的工作过程类似于人的手算乘法,FA(全加器)的斜线方向是进位输出,竖线方向是输入和输出,图中最后一行构成了一个串行加法器。由于FA一级是无需考虑进位的,他的进位被暂时保留下来不往前传递,因此同一级中任意一位FA加法器的进位输出和输出几乎是同时形成的,和“串行移位“相比可大大减少同级间的进位传递延迟,所以送往最后一行的串行加法输入与 门电路的级数有关 即与乘积位数有关,也与门电路的延迟有关。
5.简述 Quartus 环境下载 sof 文件到 FPGA 的操作流程。
从桌面上双击打开Quarts,导入文件点击file,openproject找到文件所在的路径安装路径/FPGA/Multiply/Multiply,导入后点击open programma;添加硬件,选择USB,点击左上角start,等待烧录成功。
(1)从桌面打开软件
(2)导入文件
(3)选择打开文件
(4)导入后双击program device
(5)点击Hardware setup添加硬件
(6)选择USB
(7)点击start烧录
(8)查看左上角烧录成功
三、 实验步骤及原始数据记录
本次实验包括基本运算器实验和阵列乘法器实验两部分。
外部PC机实现
- 本机运行
- 把时序与操作台单元的“MODE”用短路块短接,使系统工作在四节拍模式,JP1(在 ALU® 单元)用短路块将 1、2 短接,按图 1 所示连接实验电路,并检查无误。图中将用户需要连接的信号用圆圈标明(其它实验相同)。
- 将时序与操作台单元的开关 KK2 置为‘单拍’档,开关 KK1、KK3 置为‘运行’档。确认连线正确。
- 打开电源,如果听到有‘嘀’报警声,说明有总线竞争,应立即关闭电源,重新检查接线,直到错误排除。然后按动 CON 单元的 CLR 按钮,将运算器的 A、B 和 FC、FZ 清零。
连线如图所示,注意相同面的正反相同,否则会读数麻烦。
记录: SD17~SD10 开关拨到上面,对应 LED 指示灯状态(亮 / 灭) 亮 ,表示二进制数据(1/0) 1 , SD17~SD10 作用是 形成八位二进制数 , S3、 S2 、 S1 、 S0 的作用是 选择ALU的功能 , LDA 的作用是 选择将SD17~SD10产生的二进制数存放再哪个寄存器中。 观察 ALU 单元中: CLR 前 FZ= 0 ;FC= 0 ,A7~A0= 000 000 00 ;B7~B0= 000 000 00 。 这个CLR之前的数据不一定,因为还没有复位,我是因为前面的同学帮我清零了 CLR 后 FZ= 0 ;FC= 0 ,A7~A0= 000 000 00 ;B7~B0= 000 000 00 。 注:CLR的作用:将寄存器、FC、FZ等清零,类似于复位器,只不过CLR是内部设备清零-
用输入开关向暂存器 A 置数
按动 2 次时序单元的 ST 按钮,产生 T1、T2 节拍后,拨动 CON 单元的 SD17…SD10 数据开关,形成二进制数 01100101(或其它数值),数据显示亮为‘1’,灭为‘0’。置 LDA=1, LDB=0,按动 2 次 ST 按钮产生 T3、T4节拍,则将二进制数 01100101 置入暂存器 A 中, 暂存器 A 的值通过 ALU单元的 A7…A0 八位 LED 灯显示。(我感觉前提条件得控制LDA指令将传递寄存器打开指令)
如图所示位ST位置
记录:
暂存器 A 的数据(二进制):01 100 101
按动 2 次 ST 按钮后 ALU 中 A7~A0 中数据(二进制):01 100 101
-
用输入开关向暂存器 B 置数
按动 2 次时序单元的 ST 按钮,产生 T1、T2 节拍后,拨动 CON 单元的 SD17…SD10 数据开关,形成二进制数 10100111(或其它数值)。置 LDA=0, LDB=1,按动 2 次ST 按钮产生 T3、T4 节拍,则将二进制数 10100111 置入暂存器 B 中,暂存器 B 的值通过 ALU 单元的 B7…B0 八位 LED 灯显示。
记录:
暂存器 B 输入数据(二进制):10 100 111
按动 2 次 ST 按钮后 ALU 中 B7~B0 中数据(二进制):10 100 111
改变运算器的功能设置,观察运算器的输出
按动 2 次时序单元的 ST 按钮,产生 T1、T2 节拍后,置 ALU_B=0、 LDA=0、LDB=0, 然后按表 3 设置 S3、S2、S1、S0 和 Cn 的数值,并观察数据总线 LED 显示灯显示的结果。
如置 S3、S2、S1、S0 为 1001,运算器作加法运算;置 S3、S2、S1、S0 为 0010,运算器作逻辑与运算。按动 2 次 ST 按钮产生 T3、T4 节拍,观察 FC、FZ 标志位变化。
- 当S3S2S1S0 = 1001,运算器做 加法运算,
寄存器A内容01 100 101,寄存器B内容10 100 111
FC = 1 FZ = 0
- 当S3S2S1S0 = 0010,运算器做 逻辑与运算,
寄存器A内容01 100 101,寄存器B内容10 100 111
FC = 1 FZ = 0
连接运行
环境的建立及操作的简单介绍
下图演示所需下载的软件,找到安装包并点击进行安装
安装完以后,此电脑右键->属性->设备管理器(有些电脑打开设备管理器的方式不同,具体问题具体分析)->找到端口 就能看到是否连接USB接口
安装TDX-CMX
安装完以后打开发现 下位机已复位代表环境搭建成功
点击右上角来介绍一下我们的门电路
分为主存和微存,可以修改数据的值
修改完之后点击,刷新指令数据区域,数据就完成了更新
通过下拉可以实现不同的实验查看,对于本实验来说,选择运算器实验
上图表示可以选择不同的时序方式控制查看程序,单拍运行、单周期运行、单机器指令运行、连续运行,当然也可以打开示波器,通过配合我们扩展单元的逻辑层
点击运行就可以
时序观测窗口可以选择我们想要观察的信号
点击确定 就可以进行时序观测了
如果还有不明白的 就在实验的帮助菜单中 实验帮助 选择指导书 继续查询
操作
如果实验箱和 PC 联机操作,则可通过软件中的数据通路图来观测实验结果,也可通过软件中的信号时序图来观测实验结果。
-
观测数据通路图
打开 TDX-CMX 软件,选择联机软件的“【实验】—【运算器实验】”,打开运算器实验的数据通路图,如图 2 所示。
操作方法同本机运行,每按动一次 ST 按钮,数据通路图会有数据的流动,反映当前运算器所做的操作,或在软件中选择“【调试】—【单节拍】”,其作用相当于将时序单元的状态开关 KK2 置为‘单拍’档后按动了一次 ST 按钮,数据通路图也会反映当前运算器所做的操作。
重复上述操作,并完成表 3。然后改变 A、B 的值,验证 FC、FZ 的锁存功能。点击联机软件的 “【回放】—【保存…】” 按钮,可保存数据通路图的实验过程。
表 2 记录运算结果
观测时序逻辑
弹出时序观测窗,操作方法同本机运行,记录操作过程的时序图,时序图左侧标明信号的名称
四 阵列乘法器验证实验
实验步骤
烧录见上方实验预习
上图为安装路径
- 根据上述阵列乘法器的原理,使用 Quartus 软件编辑相应的电路原理图并进行编译,其在 FPGA 芯片中对应的引脚如图 4 所示,框外文字表示连线标号,框内文字表示该引脚的含义(本实验例程见‘安装路径\\FPGA \\Multiply\\Multiply.qpf’工程)。
给A和B 置不同的数,观察相乘的结果。 完成实验报告表格。记录被乘数、乘数和乘积:
SD17~SD10输入数据:(00000101)SD07~SD00输入数据:(0 0000011)
L7~L0:(00001111)
下面是该阵列乘法器实现逻辑图,补充括号内缺失的信号名称。
- A3B1
- A3B0
- A3B1
- A3B3
这个图具体是怎么填的我也不知道,就是根据阵列乘法器的原理图找规律
思考题
1.本实验完成了 8 位加法器的设计,如何在实验台上实现 16 位加法运算?
可将十六位加法的低八位和高八位分为两组依次进行计算,首先进行低八位的加法计算,得到结果的低八位和一位进位,然后进行高八位加法运算,如果低八位的进位是0则得到十六位加法的高八位,如果低八位的进位是一则再将结果加一得到十六位加法的高八位。
2.试比较教材中无符号原码一位乘(4 位)与实验中阵列乘法器的时间延迟。
教材中的无符号原码一位乘(4位)需要进行四次加法和四次移位,每次都会有延迟。而阵列乘法器只有在四次进位时产生延迟。原码一位乘需要四次加运算四次右移运算设每次加法的延迟是2.5ty右移运算的延迟是txT1=10ty+4tx阵列乘法器前三行每行的延迟都是一位加法器的延迟2ty,最后一行的延迟是6ty,T2=3*2ty+3*2ty=12ty,因为右移运算的延迟显著大于一位加法运算,所以T1>T2。
3.思考题:将 A=01H 和 B=02H 进行逻辑与运算,观察运算器零标志 FZ 的时序,是否和进位标志
FC 一致 FZ FC都是0 与运算不影响进位 时序一致五.实验总结
本实验通过对底层硬件的操控和实践,了解了运算器的底层工作逻辑,并通过数据通路图和信号时序图,观察并分析运算器的工作原理 ,加强了对陌生软件的操作能力,同时,通过芯片的连接和管脚的辨别将理论付诸实际,增强了动手能力,同时将上课的理论知识转化为电路实现。通过对阵列乘法器的验证和实现,了解了对运算器进行优化的思路、方向,观察了乘法的结果,本次实验收获巨大。
六.操作注意事项
1. 实验箱上电后,等待设备就绪,端口会自动连接,如果初始化失败,按实验箱上的“复位”按钮。
2. 设备就绪后,进行登录。按学号、密码登录成功后,如果没有实验计划,请按“复位”,设置好端口后,重新登录。
3. 编辑实验报告单时,避免从word直接复制粘贴带有格式的文本,可以把答案保存在记事本txt上,进行复制粘贴,或者在报告编辑区手动输入。
4. 关于实验报告单中需要上传图片的题目,请准备低像素的图片,如果上传不成功,先完成其他内容,下次进行编辑。
5. 优先完成实验内容,如时序图上传、运算表格的编辑。实验报告可以后续从登录界面左上角功能中“查看历史实验报告”中进行编辑。
[计算机组成原理]——运算器实验
文章目录
8位算术逻辑运算实验
一、实验目的
1、掌握算术逻辑运算器单元ALU(74LS181)的工作原理。
2、掌握简单运算器的数据传送通路组成原理。
3、验证算术逻辑运算功能发生器74LSl8l的组合功能。
4、按给定数据,完成实验指导书中的算术/逻辑运算。
二、实验内容
1、实验原理
实验中所用的运算器数据通路如图1-1所示。其中运算器由两片74LS181以并/串形成8位字长的ALU构成。运算器的输出经过一个三态门74LS245(U33)到内部数据总线BUSD0~D7插座BUS1~2中的任一个(跳线器JA3为高阻时为不接通),内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至内部总线BUS,实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。
图1-1中算术逻辑运算功能发生器 74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至6位功能开关,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB、SWB以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB、SWB为低电平有效,LDDR1、LDDR2为高电平有效。
另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。
2、实验接线
A.本实验用到4个主要模块:
(1)低8位运算器模块;(74LS181芯片2片 74LS273 芯片2个,分别存放数据A和B)
(2)数据输入并显示模块;(KD0~KD7)
(3)数据总线显示模块;(LD0~LD7)
(4)功能开关模块(借用微地址输入模块,S0~S3,M,CN)
B.控制方式:手动控制方式;
C.脉冲信号:T4,将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲信号。
D.控制信号:由跳线拨决定,跳线拨在上面为"1",拨在下面为"0",电平值由对应的显示灯显示。
高有效信号 运算器运算方式:S0~S3,M,CN;锁存器控制:LDDR1、LDDR2;
低有效信号 输入控制台:SWB
运算器输出控制:ALUB
E.根据实验原理详细接线如下:
(1)J20,J21,J22,接上短路片,
(2)J24,J25,J26接左边;
(3)J27,J28 右边;
(4)J23 置右边T4选“ SD”
(5)JA5 置“接通”;
(6)JA6 置“手动”;
(7)JA3 置“接通”;
(8)JA1,JA2,JA4置“高阻”;
(9)JA8 置上面“微地址”;
(10)EXJ1接BUS3;
(11)开关CE 、AR 置1;
说明:LDDR1、LDDR2、ALUB、SWB
四个信号电平由对应的开关LDDR1、LDDR2、ALUB、SWB给出, T4由手动脉冲开关给出。
AR为算术运算时是否影响进位及判零标志控制位,低电平有效。
F.实验原理图
3、实验预习
(1)用二进制数码开关KD0—KD7向DR1和DR2寄存器置数。
ALU输出三态门(ALUB置 1),目的是关闭输出三态门;
SW输入三态门(SWB置 0),目的是开启输入三态门;
令LDDR1= 1 ,LDDR2= 0 ,通过KD0-KD7开关输入数据35H,按动手动脉冲发生按钮,将数据35H置入DR1寄存;
令LDDR1= 0 ,LDDR2= 1 ,通过KD0-KD7开关输入数据48H,按动手动脉冲发生按钮,将数据48H置入DR2寄存。
(2) 检验DR1和DR2中存入的数据是否正确。
具体方法:利用算术逻辑运算功能发生器 74LS181的逻辑功能,即M=1 。通过正确的逻辑运算,能够依次读出DR1和DR2的数据。
实现过程为:关闭数据输入三态门SWB= 1 ,打开ALU输出三态门ALUB= 0 ,当置S3、S2、S1、S0、M为 1 1 1 1 1 时,总线指示灯显示 DR1 中的数,而置成 1 0 1 0 1 时,总线指示灯显示DR2中的数。
4、实验步骤
(1)连接线路,仔细查线无误后,接通电源。
(2)用二进制数码开关KD0~KD7向DRl和DR2寄存器置数。
方法:关闭ALU输出三态门(ALUB=1),开启输入三态门(SWB=0),输入脉冲T4按手动脉冲发生按钮产生。
说明:LDDRl、LDDR2、ALUB’、SWB’四个信号电平由对应的开关LDDRl、
LDDR2、ALUB、SWB给出,拨在上面为“1”,拨在下面为“0”,电平值由对应的显示灯显示,T4由手动脉冲开关给出。
(3)检验DRl和DR2中存入的数据是否正确,利用算术逻辑运算功能发生器74LSl 8l的逻辑功能进行验算,即M=1。具体操作如下:关闭数据输入三态门SWB’=1,打开ALU输出三态门ALUB’=0,当置S3、S2、S1、S0、M为11111时,总线指示灯显示DR1中的数,而置成10101时总线指示灯显示DR2中的数。
(4)验证74LSl81的算术运算和逻辑运算功能(采用正逻辑)
在给定DRl=35H、DR2=48H的情况下,改变算术逻辑运算功能发生器的功能设置,观察运算器的输出,填入实验报告表中,并和理论分析进行比较、验证。
(5)以本组同学的学号后两位作为两个输入数据完成第(4)部分要求。
三、74LS181功能表
实验中用到的运算器74LS181功能表如表1.1所示。
四、实验数据
五、实验结果分析及总结
本次实验较为简单,关键在于对实验逻辑的理解以及S0,S1,S2,S3,Cn以及M的操作。
六、思考题
1、在向DR1和DR2寄存器置数时S3、S2、S1、S0、M、Cn如何设置?
答:S3、S2、S1、S0、M设置为1、1、1、1、1时,数据总线显示灯显示DR1寄存器的内容,S3、S2、S1、S0、M、CN设置为1、0、1、0、1时数据总线显示灯显示DR2寄存器的内容。
2、DR1置数完成后,如果不关闭控制端,LDDR1会怎样?
答:若不关闭控制端,则数据可能会丢失
3、为什么在读取74LS181的输出结果时要打开输出三态门的控制端ALUB ?
答:只有打开了输出三态门数据才能在总线中显示
带进位控制8位算术逻辑运算实验
一、实验目的
1、验证带进位控制的算术逻辑运算发生器74LSl8l的功能。
2、按指定数据完成几种指定的算术运算。
二、实验内容
1、实验原理
带进位控制运算器的实验原理如图2.1所示,在实验1的基础上增加进位控制部分,其中高位74LS181(U31)的进位CN4通过门UN4E、UN2C、UN3B进入UN5B的输入端D,其写入脉冲由T4和AR信号控制,T4是脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。AR是电平控制信号(低电平有效),可用于实现带进位控制实验。从图中可以看出,AR必须为“0”电平,D型触发器74LS74(UN5B)的时钟端CLK才有脉冲信号输入。才可以将本次运算的进位结果CY锁存到进位锁存器74LS74(UN5B)中。
2、实验接线
实验连线详细如下:
(1)J20,J21,J22,接上短路片,
(2)J24,J25,J26接左边;
(3)J27,J28 右边;
(4)J23 置右边T4选“ SD”
(5)JA5 置“接通”;
(6)JA6 置“手动”;
(7)JA3 置“接通”;
(8)JA1,JA2,JA4置“高阻”;
(9)JA8 置上面“微地址”
(10)EXJ1接BUS3
(11)CE、299B 置“1”,AR置“0”;
(12)总清开关拨在“1”电平。若总清开关拨在“0”电平,Cy清零。
3、实验步骤
(1)仔细查线无误后,接通电源。
(2)用二进制数码开关KDO~KD7向DRl和DR2 寄存器置数。
方法:关闭ALU输出三态门ALUB=1,开启输入三态门SWB=0,输入脉冲T4按手动脉冲发生按钮产生。如果选择参与操作的两个数据分别为55H、AAH,将这两个数存入DR1和DR2。
(3)开关ALUB=0,开启输出三态门,开关SWB=1,关闭输入三态门,同时让LDDR1=0,LDDR2=0。
(4)验证带进位运算及进位锁存功能
这里有两种情况:
- 进位标志已清零,即CY=0,进位灯灭。使开关CN=0,再来进行带进位算术运算。例如步骤(2)参与运算的两个数为55H和AAH,当S3、S2、S1、S0、M状态为10010,此时输出数据总线显示灯上显示的数据为DRl加DR2再加初始进位位“1” (因CN=0),相加的结果应为ALU=00,并且产生进位,此时按动手动脉冲开关,则进位标志灯亮,表示有进位。使开关CN=1,当S3、S2、S1、S0、M状态为10010,则相加的结累ALU=FF,并且不产生进位。
- 原来有进位,即CY=1,进位灯亮。
此时不考虑CN的状态,再来进行带进位算术运算。同样步骤(2)参与运算的两个数为55H和AAH,当S3、S2、S1、S0、M状态为10010,此时输出数据总线显示灯上显示的数据为DRl加DR2再加当前进位标志CY,相加的结果同样为ALU=00,并且产生进位,此时按动手动脉冲开关,则进位标志灯亮,表示有进位。
(5)如果原来有进位,CY=1,进位灯亮,但需要清零进位标志时,具体操作方法如下: - AR信号置为“0”电平,DRl寄存器中的数应小于FF。
- S3、S2、S1、S0、M的状态置为0 0 0 0 0。
- 按动手动脉冲发生开关,CY=0,即清进位标志。
注:进位标志指示灯CY亮时,表示进位标志为“1”,有进位;
进位标志指示灯CY灭时,表示进位位为“0”,无进位。
三、验证两种操作下带进位的运算功能的实验数据记录
四、实验结果分析及总结
通过实验验证了带进位的八位算数逻辑运算,本实验需要注意进位灯的数值,以及合理的操作。
五、思考题
1、如何在进位运算操作前对进位标志清零?
答:总清开关置为0即可使进位标为0。
2、在进行进位运算操作时,在何种情况下要对进位标志清零?
答:当前进位标数值为1,并且后面的实验操作要求进位标为0时,要进行标志清零。
以上是关于计算机组成原理实验1---运算器 预习报告的主要内容,如果未能解决你的问题,请参考以下文章