基本运算器实验静态随机存储器实验

1.1 基本运算器实验

1. 实验记录

①运算结果

首先按照实验指导书进行连线,然后打开试验箱电源,把A,B两个数存到寄存器中,然后改变s3 s2 s1 s0 的值,产生脉冲,观察对应的数据总线上的值以及两个标志位。

对于实验结果,手动模拟,列出可能出现的结果:

运算类型

A

B

S3S2S1S0

结果

逻辑运算

65

A7

0 0 0 0

F=

65

FC=

X

FZ=

X

65

A7

0 0 0 1

F=

A7

FC=

X

FZ=

X

65

A7

0 0 1 0

F=

25

FC=

X

FZ=

0

65

A7

0 0 1 1

F=

E7

FC=

X

FZ=

0

65

A7

0 1 0 0

F=

9A

FC=

X

FZ=

0

移位运算

65

A7

0 1 0 1

F=

00

FC=

X

FZ=

1

65

A7

0 1 1 0

F=

80

FC=

X

FZ=

0

65

A7

0 1 1 1

F=

00

FC=

X

FZ=

1

65

A7

1 0 0 0

F=

CA

FC=

X

FZ=

0

算术运算

65

A7

1 0 0 1

F=

0C

FC=

1

FZ=

0

65

A7

1 0 1 0(Cn=0)

F=

0C

FC=

1

FZ=

0

65

A7

1 0 1 0(Cn=1)

F=

0D

FC=

1

FZ=

0

65

A7

1 0 1 1

F=

BE

FC=

1

FZ=

0

65

A7

1 1 0 0

F=

64

FC=

0

FZ=

0

65

A7

1 1 0 1

F=

66

FC=

0

FZ=

0

其中X表示该操作并不会影响标志位,所以标志位将维持上一次的值,并不发生改变。

进行上机实验,以下为上机实验数据结果:

在记录表中,标志位有两行。上边一行表示初始标志位,下边一行表示在执行过之后的标志位。

在测试中可以看到,对于某些不影响标志位的操作,标志位维持上一次的值。

②故障现象及排除经过

故障一:已经将试验箱与电脑相连,并且开机,但是电脑无法检索到实验箱。

解决方法:首先检查接线是否接触良好,然后对实验箱进行重启,复位操作,均无法正常连接。换同伴的电脑后连接正常。

故障二:计算之后,结果正常,但是标志位并没有发生变化。

解决方法:重新阅读实验指导课件,发现:

FC以及FZ是触发器的输出,仅仅当T2产生脉冲之后才会更新触发器的值

在更改s3 s2 s1 s0 的值之后,推动开关产生触发即可。

故障三:当s3 s2 s1 s0 = 0000时,即使A为0x00,数据总线显示正常,但是FC一直为1

故障如图:

解决办法:

查阅实验手册之后,发现s3 s2 s1 s0为0000时,该操作并不会影响标志位,标志位仍然保持上一次的值。

2. 思考题

1. 利用上述运算器能否实现大于8位二进制数的算术运算?如果能,需要采取什么样的措施?

答:可以计算大于8位的二进制算术运算。

对于算术运算,把需要进行运算的数据按照8位为一组进行分组,使用考虑输入进位的加法进行运算。从最低位的组开始运算。把这一组的 输出进位(FC) 输入到下一组的 Cn。

2. 给出一组数据,验证桶形移位器的功能。

采用PPT课件中的四位桶形移位器进行说明:

①如果要实现左移1位,就把对应对角线上的开关闭合,其他位置的开关断开。

如图:

②如果要实现循环右移1位,那么就把右移1位的开关打开,左移3位的开关打开。

实现效果如图:

输出结果为1010

所以桶形移位器的功能正确。

3. 收获及想法

收获:

通过这一次实验,使得我熟悉了计算机组成设计的实验箱的基本连线以及使用。在该实验中,我通过把算术逻辑单元(ALU)与控制模块进行连接,通过开关控制数据通路的输入,控制通路的输入,并且把算术逻辑单元的输出通过数据总线上的指示灯以及发两个标志位对应的指示灯进行展示,对其结果进行观察。

在不断地试错以及调试的过程中,我积累了许多宝贵的经验,对实验箱的一些常见问题可以独立进行解决。

在实验操作的过程中,我手动地进行了数据通路值的设置,控制通路控制信号的值的设置以及脉冲信号的手动生成,细致地体会到了在真实计算机工作中各个信号的协做交流,理解了时钟信号在控制节奏中所起的重要作用,并在数据的交换过程中初步了解了总线的作用。

想法:

可以将这一个实验以及下一个实验进行联系,把ALU运算的结果通过数据总线写入内存中,再通过下一次实验的读内存读出已经保存的结果。这样可以更好地增强计算机应用的能力。

1.2 静态随机存储器实验

1.实验记录

①运算结果

在进行实验的时候,首先按照实验指导报告进行连线。

然后把地址送到数据总线,再进行以及触发,把地址送到地址总线。之后,在数据总线上输入需要存储的数据,然后设置存储器为写,进行触发,数据被成功写入存储器。

需要读取数据时,把地址送到数据总线,再进行以及触发,把地址送到地址总线。把IOR置为1,选择存储器为输出,此时在地址总线上的值为存储器之前被存入的值。

按照上述步骤:

分别在地址0x01,0x02,0x03, 0x04, 0x05中存入数值0x01,0x02,0x03, 0x04, 0x05,

然后进行读操作读取5个地址,最终出现的值为所存入的值,存入值与读取值相同。

然后进行其他尝试,在地址0x01中重新写入值0x03,正常读出新值,旧值被覆盖。

②故障现象及排除经过

问题一:如图,在0x07中读出的数并不是我想要的结果。

解决方法:读取其他存储器的值,发现与之前存入的相同,证明仪器一切正常,回忆刚刚存过值的地址,发现并没有在0x07中存入数字,所以该地址下的值就是其默认的初始值0xFF。

问题二:在与电脑连接之后,先关闭电脑,再次使用实验箱的功能,发现无法正常操作,尝试其他操作,均不能正常正常操作。怀疑是由于关闭电脑导致实验板突然与电脑断开连接,导致实验板出现问题。

解决方法:按压实验板上的复位按键,然后再次按压右下角的清零按键,实验板可以正常进行存入以及读取,问题得以解决。

问题三:试验箱读取的值与存入的值不同,反而与in模块中的值相同

解决办法:对照下图,仔细核对控制通路的开关状态,发现IOR并未置1,将IOR置1,数据总线中的值立刻恢复正常。

       问题四:在连接排针的时候,发现一端(A)有三个排针,另一端(B)有四个排针连到一起,其中有三个需要连接,一个不需要连接。

       解决方法:选用4路信号的数据线。在A端连接数据线的三个口,在另一端通过颜色区分,确保连接的顺序一致,连接B端的四个口(其中的一个口虽然与数据线连接,但是在数据线的另一端悬空,相当于没有进行连接)

2. 思考题

1. 随机存储器和只读存储器的区别是什么,能否通过外加电路实现用随机存储器代替只读存储器?

    答:

只读存储器(ROM)仅仅可以对数据进行读取,不可以对其进行写入,其中的数据不会丢失,主要用于系统开机自检,各个部件初始化,基本的驱动程序存储等。

随机存储器(RAM)既可以读取数据,也可以写入数据,其与CPU直接交换数据,读取写入速度很快,但是一旦断电,其中的数据就会全部丢失。

可以,在外加电路中,需要保证为RAM持续供电,并且关闭RAM的写使能端,这样,RAM可以当做ROM使用。但是如果意外断点,其数据就会消失。

2. 动态随机存储器和静态随机存储器的区别是什么,与静态随机存储器相比,动态随机存储器在电路设计需要考虑什么问题?

答:

静态随机存储器是由双稳态触发器构成,只要持续供电,其中的数据不会消失。

动态随机存储器是由电容构成。由于电容会放电,所以如果不进行操作,那么过一段时间,数据就会消失。

在设计动态随机存储器的时候,每隔一段时间要进行刷新,使电容重新充电。

3. 收获及想法

收获:

静态随机存储器(SRAM)是计算机内存的一种,通过这一次实验,我了解了内存如何写入以及读取数据,有助于更好地系统理解计算机的组成。

同时,在这一次课上,涉及到了数据总线与地址总线,我明白了在计算机的内部,总线把计算机的各个部分连接在一起,各个部件之间可以使用总线来进行数据的传输。同时,数据总线上的内容可以被传输到地址总线,用于控制内存的读写。

对于实验过程中所出现的问题,我进行了参考报告册以及网上的资料,锻炼了我独立思考,解决问题的能力,使得我更好地应对接下来的实验。

想法:

可以借助实验箱中的寄存器,实现两个数字之间的交换,这样,就可以模拟程序在正式运行过程中的取数,存数操作,同时可以更加深入地理解总线在计算机内部的作用。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序开发系列-09自定义组件样式特性

微信小程序开发系列目录 《微信小程序开发系列-01创建一个最小的小程序项目》《微信小程序开发系列-02注册小程序》《微信小程序开发系列-03全局配置中的“window”和“tabBar”》《微信小程序开发系列-04获取用户图像和昵称》《微信小程序开发系列-05登录小程序》《微信小程序…

【Unity入门】热更新框架之xLua

目录 一、xLua概述1.1xLua简介1.2xLua安装 二、Lua文件加载2.1执行字符串2.2加载Lua文件2.3自定义loader 三、xLua文件配置3.1打标签3.2静态列表3.3动态列表 四、Lua与C#交互4.1 C#访问Lua4.1.1 获取一个全局基本数据类型4.1.2 访问一个全局的table4.1.3 访问一个全局的functio…

Maven项目提示Ignored pom.xml问题

1 环境 (1)IDEA开发工具:2022.2.1 (2)JDK:Java17(Spring6要求JDK最低版本是Java17) (3)Spring:6.1.2 (4)Maven 3.8.8 2 …

pytest --collectonly 收集测试案例

pytest --collectonly 是一条命令行指令,用于在运行 pytest 测试时仅收集测试项而不执行它们。它会显示出所有可用的测试项列表,包括测试模块、测试类和测试函数,但不会执行任何实际的测试代码。 这个命令对于查看项目中的测试结构和确保所有…

大模型LLM的微调技术:LoRA

0 引言 LoRA(Low-Rank Adaptation)出自2021年的论文“LoRA: Low-Rank Adaptation of Large Language Models” LoRA技术冻结预训练模型的权重,并在每个Transformer块中注入可训练层(称为秩分解矩阵),即在模型的Linear层的旁边增…

Java EE 网络原理之HTTPS

文章目录 1. HTTPS 是什么?2. "加密" 是什么?3. HTTPS 的工作过程3.1 引入对称加密3.2 引入非对称加密3.3 中间人攻击3.4 引入证书 4. Tomecat4.1 tomcat 的作用 1. HTTPS 是什么? HTTPS也是⼀个应用层协议,是在 HTTP …

【计算机毕业设计】python+django数码电子论坛系统设计与实现

本系统主要包括管理员和用户两个角色组成;主要包括:首页、个人中心、用户管理、分类管理、数码板块管理、数码评价管理、数码论坛管理、畅聊板块管理、系统管理等功能的管理系统。 后端:pythondjango 前端:vue.jselementui 框架&a…

Java强软弱虚引用

面试: 1.强引用,软引用,弱引用,虚引用分别是什么? 2.软引用和弱引用适用的场景? 3.你知道弱引用的话,能谈谈WeakHashMap吗? 目录 一、Java引用 1、强引用(默认支持模式…

ES6的默认参数和rest参数

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…

编程羔手解决Maven引入多个版本的依赖包,导致包冲突了

最近升级了些依赖发现有个hutool的方法老报错,java.lang.NoSuchMethodError: cn.hutool.core.util.ObjectUtil.defaultIfNull(Ljava/lang/Object;Ljava/util/function/Supplier;) 在 Maven 项目中,当不同的依赖模块引入 Hutool 的不同版本时&#xff0c…

12.21自动售货机,单物品,多物品

自动售货机 if朴素方法 一种思路是用寄存器cnt记录已有的最小单位货币量,这里就是0.5 当d1时,cnt1;d2时,cnt2;d3时,cnt4; timescale 1ns/1ns module seller1(input wire clk ,input wire rst ,input wire d1 ,input wire d2 …

AI人工智能大模型讲师叶梓《基于人工智能的内容生成(AIGC)理论与实践》培训提纲

【课程简介】 本课程介绍了chatGPT相关模型的具体案例实践,通过实操更好的掌握chatGPT的概念与应用场景,可以作为chatGPT领域学习者的入门到进阶级课程。 【课程时长】 1天(6小时/天) 【课程对象】 理工科本科及以上&#xff0…