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

《计算机组成原理与汇编语言程序设计》实验报告六 存储器实验

一、实验学时

        课2学时,课后2学时

二、实验目的

        1) 熟悉和了解存储器组织与总线组成的数据通路。

        2) 掌握存储部件在计算机组成中的运用。

三、实验要求

        1)做好实验预习,熟悉Logisim常用组件的功能。

        2)按照实验内容与步骤的要求,独立思考,认真仔细地完成实验。

        3)执行实验步骤,截取必要截图,写出实验报告。

四、实验内容

1、常见触发器

        触发器具有两个稳定的状态,在外加信号的触发下,可以从一个稳态翻转为另一稳态。这一新的状态在触发信号去掉后,仍然保持着,一直保留到下一次触发信号来到为止,这就是触发器的记忆作用,它可以记忆或存储两个信息:“0”或“1”。如图4-1所示,常见的触发器有D触发器、T触发器、JK触发器及RS触发器等。

图4-1  常见触发器状态图

2、寄存器

        寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。

图4-2  基本寄存器

3、计数器

        计数器可实现正向和方向计数和控制功能。计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。

图4-3  基本计数器

4、ROM

        只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入,即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。

图4-4  基本ROM存储器

5、RAM

        随机存取存储器(RAM)又可称为读写存储器,它不仅可以存储大量的信息,而且在操作过程中能任意“读取”某个单元信息,或在某个单元中“写入”需要存储的信息,当电源关闭时随机存储器不能保留所存储的数据。

图6-5  三种基本RAM存储器

图6-6  三种基本RAM存储器选择

图6-7 输入输出分离同步模式RAM存储器

五、实验步骤

1、各类触发器

        将D触发器、T触发器、JK触发器及RS触发器连接在一起,异步位置、异步清零、使能端及Q’的数值变化如下表5-1-1。

输入

触发器

输出

异步位置

异步清零

使能端

D触发器

T触发器

JK触发器

RS触发器

Q’

1

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

1

0

0

0

0

0

1

表5-1-1 触发器数值变化表

        (1)依据上述的逻辑关系和触发器数值变化表将D触发器、T触发器、JK触发器及RS触发器连接在一起生成一个新触发器需要根据实际的需求和功能进行逻辑电路图设计,选择合适的触发器类型和逻辑门,确定连接方式,布局和测试,对应的触发器逻辑电路图如图5-1-2所示:

图5-1-2 触发器逻辑电路图

        (2)触发器逻辑电路铺设完毕后进行测试,进而判断自己的电路是否铺设成功,经过测试后此电路状态一切正常,对应的触发器逻辑电路测试如图5-1-3至5-1-5所示:

图5-1-3 触发器逻辑电路测试1

图5-1-4 触发器逻辑电路测试2

图5-1-5 触发器逻辑电路测试3

2、寄存器

        了解基本寄存器的组成原理,理论输入、输出数值变化表如表5-2-1所示。

输入

使能端

异步清零

输出

0011

1

0

0011

0010

1

0

0010

0101

1

0

0101

1110

1

0

1110

表5-2-1 基本寄存器的输入、输出数值变化表

        (1)依据上述的逻辑关系和基本寄存器的输入、输出数值变化表将对于每个数位,使用一个D触发器用于存储值,时序时钟控制写入或读取时的输出。D触发器的输入端接入D,时序时钟连接在时钟端,输出连接到Q和下一位的数据输入端,对应的寄存器逻辑电路图如图5-2-2所示:

图5-2-2 寄存器逻辑电路

        (2)寄存器逻辑电路铺设完毕后进行测试,进而判断自己的电路是否铺设成功,经过测试后此电路状态一切正常,对应的寄存器逻辑电路测试如图5-2-3至5-2-11所示:

图5-2-3 寄存器逻辑电路测试1

图5-2-4 寄存器逻辑电路测试2

图5-2-5 寄存器逻辑电路测试3

图5-2-6 寄存器逻辑电路测试4

3、计数器

        在基本计数器下输入、输出数值变化表5-3-1所示。

初值

Count

时钟次数

计数器输出

00000000

1

1

00000001

00000000

1

3

00000011

00000000

1

6

00000110

表5-3-1基本计数器的输入、输出数值变化表

        (1)依据上述的逻辑关系和基本计数器的输入、输出数值变化表,对应的计数器逻辑电路如图5-3-2所示:

图5-3-2 计数器逻辑电路

        (3)计数器逻辑电路铺设完毕后进行测试,进而判断自己的电路是否铺设成功,经过测试后此电路状态一切正常,对应的计数器逻辑电路测试如图5-3-3至5-3-18所示:

图5-3-3 计数器逻辑电路测试1

图5-3-4 计数器逻辑电路测试2

图5-3-5 计数器逻辑电路测试3

4、ROM

        了解只读存储器(ROM)的组成原理,并在Logisim画出ROM的电路原理图。编辑ROM存储内容,操作地址实现数据读出。

        (1)依据上述的逻辑关系和要求设计ROM只读存储器,对应的ROM只读存储器逻辑电路如图5-4-1所示:

图5-4-1 ROM只读存储器逻辑电路图

        (2)ROM只读存储器逻辑电路铺设完毕后进行测试,进而判断自己的电路是否铺设成功,经过测试后此电路状态一切正常,ROM只读存储器逻辑电路测试如图5-4-2至5-4-4所示:

图5-3-2 ROM只读存储器逻辑电路测试1

图5-3-3 ROM只读存储器逻辑电路测试2

图5-3-4 ROM只读存储器逻辑电路测试3

5、RAM

        了解随机存取存储器(RAM)的组成原理,并在Logisim画出RAM的电路原理图。编辑输入输出数值及RAM存储内容,操作地址实现数据写入与读出。

        (1)依据上述的逻辑关系和RAM随机存取存储器设计RAM随机存取存储器逻辑电路图,对应的RAM随机存取存储器逻辑电路图如图5-5-1所示:

图5-5-1 RAM随机存取存储器逻辑电路图

        (2)RAM随机存取存储器逻辑电路铺设完毕后进行测试,进而判断自己的电路是否铺设成功,经过测试后此电路状态一切正常,RAM随机存取存储器逻辑电路测试如图5-5-2至5-4-4所示:

图5-5-2 RAM随机存取存储器逻辑电路测试1

图5-5-3 RAM随机存取存储器逻辑电路测试2

图5-5-4 RAM随机存取存储器逻辑电路测试3

6、(选做)掌握多片ROM、RAM组装内存的构建方法,实现课本例6-1的电路仿真。

        (1)依据上述的逻辑关系和多片ROM、RAM组装内存的构建方法设计内存组装逻辑电路图,对应的内存组装逻辑电路图如图5-6-1所示:

图5-6-1 内存组装逻辑电路图

        (2)RAM随机存取存储器逻辑电路铺设完毕后进行测试,进而判断自己的电路是否铺设成功,经过测试后此电路状态一切正常,RAM随机存取存储器逻辑电路测试如图5-6-2至5-6-4所示:

图5-6-2 内存组装逻辑电路测试1

图5-6-3 内存组装逻辑电路测试2

图5-6-4 内存组装逻辑电路测试3

六、实验小结

1、问题和解决方法:

        (1)实验问题:使用逻辑门和相关元素构建逻辑电路后发现有时输出结果与自己的真值表内容不符。

解决方法:观察自己的逻辑电路后发现部分逻辑门的引脚过多,与、或、非等逻辑门的默认引脚的个数为5个,因此我们需要根据自己需要的引脚数量进行设置,将对应的引脚数量改为自己需要的2个引脚后对应问题得到解决。

        (2)实验问题:在对逻辑门进行连线的过程中发现电路中出现了多余的连线。

解决方法:点击对应多余的连线并进行删除操作或者对该条连线重新进行勾连。

        (3)实验问题:逻辑电路连接完成后发现部分输入端或者输出端是蓝色,且点击输入端进行数值切换对蓝色的输出端无影响。

解决方法:线路没有彻底连接,输入端和输出端的引脚默认朝西,所以在连接电路时要首先将对应端口的引脚方向进行设置,进而方便逻辑电路的正常连接。

        (4)实验问题:逻辑电路中有部分区域的连线为红色。

解决方法:由于红色连线前方处于断路状态,逻辑信号无法正常到达后续的逻辑电路之中,因此出现了红色连线,将对应区段的电路连接通路后即可恢复正常。

        (5)实验问题:在使用两个以上的异或门进行逻辑电路操作时发现出现了错误。

解决方法:由于Logisim允许指定异或门的逻辑行为,默认是当一个输入为1是输出为1,另一种是奇数个1输入时输出为1,因此在使用过程中需要对默认值进行相应的修改操作,进而避免错误的出现。

        (6)实验问题:逻辑电路设计完毕以后,出现了红色或者橘红色的线条,但是自己的逻辑电路没有任何的错误。

解决方法:由于软件本身因素引起的,因此对自己的逻辑电路进行保存,关闭Logisim软件后重新打开对应的逻辑电路文件后即可恢复正常。

2、心得体会:

        (1)通过使用Logisim软件对逻辑电路进行操作,让我熟悉了相关的逻辑符号及逻辑运算等。其中蓝色的方框表示输入信号;蓝色的圆框表示输出信号;绿色的圆圈加上短横表示锚,主要用于移动和定位。

        (2)逻辑电路是用来对数字信号进行逻辑运算,以实现逻辑命题的电路。

        (3)组合逻辑电路中电路的输出只与该时刻的输入有关,而时序逻辑电路中电路的输出不仅与该时刻的输入有关,还与电路的原状态有关。

        (4)真值表是描述逻辑功能的最底层工具,它是先结构而后内容的,列数据时输入部分从全0到全1,逐个递增。

        (5)基本逻辑运算是与、或、非,而常用的复合逻辑为与非、或非、与或非、异或、同或。

        (6)逻辑门电路(门电路)用于实现各种的基本逻辑运算、常用符合逻辑运算的电子电路。

        (7)两输入异或、同或互为反函数,即非关系。

        (8)两输入异或、同或的功能为:

        两输入异或,输入取值不同,输出1,输入取值相同,输出0;

        两输入同或,输入取值不同,输出1,输入取值相同,输出0.

        (9)n输入异或的功能为当输入中有奇数个1时,输出值为1,有偶数个1时输出值为0.

        (10)n为偶数时,异或、同或互为非关系;n为奇数时,异或、同或功能相同。

        (11)编码器用于编码,使用二进制代码表示具有某种特定含义的信号,即输入信号输出代码。

        (12)译码器用于译码,将使用一组代码表示的特定含义翻译出来,即输入代码输出信号。

        (13)进行溢出判断时可以采取以下三种方法进行判断:

        ①用计算结果的符号位来判断溢出。

        ②用计算结果最高数值位向符号位的进位值c1与符号位的进位值c0来判断溢出。

        ③采用双符号位进行判断。

        (14)多位加法器的构成有两种方式:并行进位和串行进位方式。

        (15)并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

        (16)通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

        (17)多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。

        (18)存储器是一种能够存储和读取数据的电子元件。存储器由若干个存储单元组成,每个存储单元可以存储一个二进制位的数据。

        (19)存储单元可以分为静态存储单元和动态存储单元。其中,静态存储器中的存储单元使用触发器作为存储单元,并可以一直保持存储状态;而动态存储单元则使用电容器作为存储单元,并需要通过定期刷新操作来保持存储状态。

        (20)存储器可以分为随机存储器和只读存储器。随机存储器可以对存储单元进行读写操作,而只读存储器则仅能读取预设的数据。存储器的读写操作通常需要通过地址译码等技术进行管理。

        (21)存储器由非常多的存储单元构成,而存储单元通常按照一定规则组成若干个存储单元组,并每个组有统一的寻址方式。常见存储器的组成包括静态RAM、动态RAM和EPROM等。

        (22)存储器实验通常包括存储器的设计、硬件连接、逻辑电路图设计、仿真测试和线上测试等步骤。在实验过程中,需要注意电源供电及工作电压、时钟输入和时序稳定性等问题,以保障存储器的可靠性和性能。

        (23)存储器实验需要掌握存储器的基本概念、读写操作和组成结构,以及实验的基本步骤和注意事项。在实验过程中需要熟练掌握相关的硬件设备和电路设计知识,以确保实验的成功和有效性。

        (24)存储器实验让我更深入地了解了存储器的基本概念和组成结构,以及其读写操作的实现原理。在实验过程中,我需要掌握相关硬件设备和电路设计知识,通过逻辑电路图设计实现存储器的建立,以鉴定和测试存储器的功能和性能。

        (25)我对存储器的运作原理和应用有了更深刻的理解,这对我的后续学习和研究具有重要的作用。同时,实验还培养了我细心、严谨和创新的实验态度,帮助我更好地进行科学研究和技术创新。

http://www.lryc.cn/news/604444.html

相关文章:

  • 【C++】类和对象(中)拷贝构造、赋值重载
  • 自动驾驶车辆的敏捷安全档案
  • PAES算法求解 ZDT1 双目标优化问题
  • 实例教学FPN原理与PANet,Pytorch逐行精讲实现
  • AUTO TECH 2025广州电动车/混合动力车展:新能源汽车的时代交响
  • 无刷电机在汽车领域的应用与驱动编程技术
  • 河南萌新联赛2025第(三)场:河南理工大学【补题】
  • cpp c++面试常考算法题汇总
  • 汽车、航空航天、适用工业虚拟装配解决方案
  • 爱车生活汽车GPS定位器:智能监控与安全驾驶的守护者
  • aws(学习笔记第五十课) ECS集中练习(2)
  • arkui 动画曲线
  • 【python 获取邮箱验证码】模拟登录并获取163邮箱验证码,仅供学习!仅供测试!仅供交流!
  • 【go】实现BMI计算小程序与GUI/WEB端实现
  • python案例分析:基于抖音评论的文本分析,使用svm算法进行情感分析以及LDA主题分析,准确率接近90%
  • 相亲小程序聊天与互动系统模块搭建
  • 鹏哥C语言_82_指针_指针数组
  • 构建智能体(Agent)时如何有效管理其上下文
  • 大语言模型(LLM)技术架构与工程实践:从原理到部署
  • 基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(二)
  • 【Lua】元表常用属性
  • PCB学习笔记(一)
  • 【Python系列】如何安装无 GIL 的 Python 3.13
  • dify 添加 ollama 模型报错
  • AP-0316 全功能语音处理模组:技术解析与应用指南
  • MySQL的单行函数:
  • 【C++】适配器模式手搓STL的stack和queue
  • 字节跳动GR-3:可泛化、支持长序列复杂操作任务的机器人操作大模型(技术报告解读)
  • 探索 Linux 权限的奥秘:守护系统安全的关键
  • C++11 std::function 详解:通用多态函数包装器