运算器组成实验

news2024/11/26 4:52:47

1.实验目的及要求

实验目的

1、熟悉双端口通用寄存器的读写操作

2、熟悉运算器的数据传送通路

3、验证运算器74LS181的算术逻辑功能

4、按给定数据完成指定的算术逻辑运算

实验要求

1、做好实验预习掌握运算器的数据传送通路和ALU的功能特性,并熟悉本实验中所用的控制台开关的作用和使用方法。

2、认真细致完成实验,根据实验结果填写实验一表1、实验一表2。

3写出实验报告,分析实验结果并简述心得体会。

2.实验步骤

1、开电源前接线

参考接线表:

存储器

DRW

SBUS

ABUS

MBUS

LDC

LDZ

CIN 

电平开关

K4

K5

K6

K7

K8

K9

K10

运算器

RD0

RD1

RS0

RS1

S0

S1

S2

S3

M

电平开关

K0

K1

K2

K3

K11

K12

K13

K14

K15

完成实验任务前两项只需K0-K7,此时K8-K15的状态不影响实验结果。

2、打开电源,将控制转换区开关拨到中间位置,即“独立”,此时黄灯亮。将微程序控制器区中编程开关拨到下方,即“正常”。

3、设置操作模式:DP和SW开关为“1100”,即单步,写寄存器方式。将SBUS,DRW拨至1;ABUS,MBUS拨至0。再将数据开关拨至34H;RD0,RD1拨至00。按下QD,即把34H写入寄存器R0中。再将21H、52H、65H写入R1、R2、R3中。

4、将ABUS,MBUS,SBUS,DRW都拨成0。再将RD0,RD1拨至00;RS0,RS1拨至11,此时指示灯A7~A0显示的是ALU的A端口的数(R0存的数),指示灯B7~B0显示的是ALU的B端口的数(R3存的数)。再用A、B端口分别读出其他寄存器中的值。

5、设置操作模式:DP和SW为“1101”,含义为单步,运算器实验。用前面的方法输入数据至寄存器中,令R0=55H,R1=AAH。再将CIN,LDC,LDZ,ABUS ,RS0拨成1;RD1,RD0,RS1,MBUS,SBUS,DRW拨成0。再根据74LS181运算功能表,调整S3~S0与M的值来进行运算,每次运算按下QD后在指示灯D7~D0上观察运算结果并通过C、Z指示灯来观察是否进位与是否结果为0。

说明:M=0为算术运算,M=1为逻辑运算;S3~S0为运算功能;CIN为1,正逻辑;ABUS=1允许运算结果送数据总线;LDC、LDZ为1,允许保存结果状态;RD1、RD0用00选择R0;RS1、RS0用01选择R1;(DRW、SBUS、MBUS命令为0)。

3.实验内容

1、通过8个二进制数据开关SD7~SD0来输入数据,当控制信号SBUS为1时,数据开关上的数被送到数据总线上。注意SD7为高位,SD0为低位。

2、运算器中的双端口寄存器组有4个8位的寄存器R0、R1、R2、R3。当把数据总线上的值送往寄存器或把寄存器中的值送往ALU的A端口时,通过地址信号RD1、RD0来选中输入或输出数值的寄存器。当把值送往ALU的B端口时,通过地址信号RS1、RS0选中输出数值的寄存器。(地址信号RD1、RD0与RS1、RS0都是取值为00时选中寄存器R0,01时选中R1,10时选中R2,11时选中R3)

3、写入数据到寄存器需要命令DRW,且需要在时钟T3的上升沿写入。故写入数据到寄存器需要DRW为1,并按下QD来给出一组节拍脉冲信号T1~T3。

4、把寄存器中的数据送往ALU的A端口、B端口时无需控制信号,ALU的A端口、B端口的值可通过指示灯A7~A0、B7~B0来查看。

5、ALU运算功能通过控制信号M、S3~S0控制,M用于区分算术运算还是逻辑运算,S3~S0选择具体的运算功能。具体内容可查阅本实验后面给出的74LS181运算功能表。

6、CIN是提供给ALU的最低位进位信号,CIN取1表示最低位无进位。运算产生进位标志C和结果为0标志Z,控制命令LDC和LDZ取1时,把相应标志的状态保存进状态触发器中。

7、ALU的运算结果要送往数据总线DBUS,需要控制命令ABUS取1。送到数据总线DBUS上的值可通过指示灯D7~D0来查看。注意SBUS和ABUS不能同时为1。

8. 注意SBUS,ABUS,MBUS同时只能有一个为1,故本实验虽然没有用到MBUS信号,但也必须接MBUS到电平开关,使MBUS恒取0。

本实验线路与信号原理图如下:

 

本实验用到的信号归纳如下:

序号

信号名

功能说明

1

S3、S2、S1、S0

控制74LS181的运算类型

2

CIN

低位74LS181的进位输入,取1时无进位

3

SEL3、SEL2(RD1、RD0)

选择送ALU的A端口的寄存器与写入的寄存器

4

SEL1、SEL0(RS1、RS0)

选择送ALU的B端口的寄存器

5

DRW

=1时,在T3上升沿对RD1、RD0选中的寄存器进行写操作,将数据总线DBUS上的数D7~D0写入选定的寄存器

6

SBUS

=1时,将数据开关的值送数据总线DBUS

=0时,禁止数据开关的值送数据总线DBUS

7

ABUS

=1时,将运算结果送数据总线DBUS

=0时,禁止运算结果送数据总线DBUS

8

M

运算模式:M=0为算术运算;M=1逻辑运算;

9

LDZ

=1时,如果运算结果为0,在T3的上升沿,将1写入到Z标志寄存器;如果运算结果不为0,将0保存到Z标志寄存器。

10

LDC

=1时,在T3的上升沿将运算得到的进位保存到C标志寄存器。

11

指示灯A7~A0

显示送往ALU的A端口的数

12

指示灯B7~B0

显示送往ALU的B端口的数

13

指示灯D7~D0

显示数据总线DBUS上的数

14

C

进位标志

15

Z

结果为0标志

 4.实验结果

表1:将34H、21H、52H、65H分别写入通用寄存器R0-R3;再读出R0-R3的内容

 

表2:控制转换开关拨到独立位置;编程开关拨到正常位置;

        1)操作模式:1100。按表1所学,向R0写入0AAH,向R1写入55H;

        2)操作模式:1101。ABUS=1;LDC、LDZ为1;RD1、RD0为00选择R0;RS1、RS0用01选择R1;DRW、SBUS、MBUS为0;其余如下表。验证运算器的算术运算和逻辑运算功能。

 实验报告:【免费】计算机组成原理-运算器组成实验资源-CSDN文库

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/872811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7.3.tensorRT高级(2)-future、promise、condition_variable

目录 前言1. 生产者消费者模式2. 问答环节总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-future、promise…

【算法——双指针】LeetCode 1089 复写零

千万不要被这道题标注着“简单”迷惑了,实际上需要注意的细节很多。 题目描述: 解题思路: 正序遍历,确定结果数组的最后一个元素所在的位置;知道最后一个元素的位置后倒序进行填充。 先找到最后一个需要复写的数 先…

C++ 泛型编程:函数模板

文章目录 前言一、什么是泛型编程二、函数模板三、函数模板的使用四、多参数函数模板五,示例代码:总结 前言 当需要编写通用的代码以处理不同类型的数据时,C 中的函数模板是一个很有用的工具。函数模板允许我们编写一个通用的函数定义&#…

php从静态资源到动态内容

1、从HTML到PHP demo.php:后缀由html直接改为php,实际上当前页面已经变成了动态的php应用程序脚本 demo.php: 允许通过<?php ... ?>标签,添加php代码到当前脚本中 php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析 <!DOCTYPE html>…

Qt中将信号封装在一个继承类中的方法

QLabel标签类对应的信号如下&#xff1a; Qt中标签是没有双击&#xff08;double Click&#xff09;这个信号的&#xff1b; 需求一&#xff1a;若想双击标签使其能够改变标签中文字的内容&#xff0c;那么就需要自定义一个“双击”信号&#xff0c;并将其封装在QLabel类的派生…

使用vscode写vue文件代码有时不提示

背景&#xff1a; 安装了volar插件&#xff0c;但是在vue文件中导入js文件代码不提示&#xff0c;准确来说是有时提示有时不提示 解决方案&#xff1a; 插件冲突&#xff0c;卸载 JavaScript (ES6) code snippets 插件&#xff0c;这个插件在vue文件中适配不是很好。 很有可能…

【正版系统】2023热门短剧SAAS版开源 | 小程序+APP+公众号H5

当我们在刷百度、D音、K手等各种新闻或短视频时经常会刷到剧情很有吸引力的短剧广告&#xff0c;我们点击广告链接即可进入短剧小程序&#xff0c;小程序运营者通过先免费看几集为诱耳然后在情节高潮时弹出充值或开VIP会员才能继续看的模式来赚钱&#xff0c;以超级赘婿、乡村小…

电影数据可视化综合分析

数据可视化&分析实战 1.1 沈腾参演电影数据获取 1.2 电影数据可视化分析 目录 数据可视化&分析实战前言1. 数据认知2. 数据可视化2.1 解决matplotlib不能绘制中文字符的问题2.2 折线图2.3 柱状图绘制2.4 箱线图绘制2.5 饼图 3. Na值处理及相关性分析3.1 相关性分析3.2…

2023.08.13 学习周报

文章目录 摘要文献阅读1.题目2.要点3.问题4.解决方案5.本文贡献6.方法6.1 特征选择6.2 时间序列平稳性检测与数据分解6.3 基于GRU神经网络的PM2.5浓度预测 7.实验7.1 网络参数7.2 实验结果7.3 对比实验 8.讨论9.结论10.展望 PINNS模型1.自动微分2.全连接神经网络3.PINNs模型的P…

NavMeshPlus 2D寻路插件

插件地址:h8man/NavMeshPlus&#xff1a; Unity NavMesh 2D Pathfinding (github.com) 我对Unity官方是深恶痛觉,一个2D寻路至今都没想解决,这破引擎早点倒闭算了. 这插件是githun的开源项目,我本身是有写jps寻路的,但是无法解决多个单位互相阻挡的问题(可以解决但是有性能问…

Yolov5(一)VOC划分数据集、VOC转YOLO数据集

代码使用方法注意修改一下路径、验证集比例、类别名称&#xff0c;其他均不需要改动&#xff0c;自动划分训练集、验证集、建好全部文件夹、一键自动生成Yolo格式数据集在当前目录下&#xff0c;大家可以直接修改相应的配置文件进行训练。 目录 使用方法&#xff1a; 全部代码…

Window停止更新操作

在这里插入图片描述

Android平台RTMP推送或GB28181设备接入端如何实现采集audio音量放大?

我们在做Android平台RTMP推送和GB28181设备对接的时候&#xff0c;遇到这样的问题&#xff0c;有的设备&#xff0c;麦克风采集出来的audio&#xff0c;音量过高或过低&#xff0c;特别是有些设备&#xff0c;采集到的麦克风声音过低&#xff0c;导致播放端听不清前端采集的aud…

1216. 验证回文字符串 III;764. 最大加号标志;1135. 最低成本联通所有城市

1216. 验证回文字符串 III 核心思想&#xff1a;动态规划&#xff0c;这题需要一个思路的转换&#xff0c;删除最多k个字符判断是否为回文串&#xff0c;就相当于问你子序列中最长的回文串的长度是否比n-k长,就将这题转换为了最长回文子序列。 764. 最大加号标志 核心思想&am…

前后端分离------后端创建笔记(03)前后端对接(下)

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论&#xff0c;如有侵权请联系 源码&#xff1a;https://gitee.com/green_vegetables/x-admin-project.git 素材&#xff1a;https://pan.baidu.com/s/…

Shader 编程:三角形、矩形等多边形绘制

该原创文章首发于微信公众号&#xff1a;字节流动 未经作者&#xff08;微信ID&#xff1a;Byte-Flow&#xff09;允许&#xff0c;禁止转载 SDF 有向距离场 上节其实牵扯到 SDF 算法&#xff0c;因为后面涉及高级特效的时候会经常用到&#xff0c;这里先提前对它做个简单的介…

注意:阿里云服务器随机分配可用区说明

阿里云服务器如有ICP备案需求请勿选择随机可用区&#xff0c;因为当前地域下的可用区可能不支持备案&#xff0c;阿里云百科分享提醒大家&#xff0c;如果你的购买的云服务器搭建网站应用&#xff0c;网站域名需要使用这台云服务器备案的话&#xff0c;不要随机分配可用区&…

从源码分析常见集合的区别之List接口

说到Java集合&#xff0c;共有两大类分别是Collection和Map。今天就详细聊聊大家耳熟能详的List吧。 List接口实现自Collection接口&#xff0c;是Java的集合框架中的一员&#xff0c;List接口下又有ArrayList、LinkedList和线程安全的Vector&#xff0c;今天就简单分析一下Ar…

力扣刷题(C++)知识点

一&#xff0c;找到数组的中间位置 这个是错的&#xff0c;不能分开来 C vector<int>& nums 用法 创建一维数组vector&#xff1a; vector<int> nums; //不指定长度vector<int> nums(n); //指定长度为n c &#xff1c;numeric&#xff1e; accumul…

VM327:38 Uncaught ReferenceError: boay is not defined

找了好久的错误&#xff0c;查找的时候都是路径错了&#xff0c;或者少符号了&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;但是就是不是&#xff0c;这个错误就很明显&#xff0c;但是人一般对自己的代码真的很自信的&#xff01;&#xff01;&#xff01; 最…