Hust计算机组成原理实验

article/2025/9/16 7:37:49

文章目录

  • logisim的使用
    • 1.添加门电路
    • 2.添加引脚
    • 3.添加导线
    • 4.添加文本
    • 5.测试电路
    • 补充工具
  • 实验一,运算器实验
    • 8位串行可控加减法器
      • 分析一位全加器
      • 八位串行加法器即可给出
      • 8位串行可控加减法器
      • 回答问题
    • CLA74182(先行进位加法器)
      • 参数
      • 公式
      • 问题
    • 位快速加法器
    • 16位快速加法器
    • 32位快速加法器
    • ALU
      • 实现功能
  • 实验二、存储器实验
    • 3.1存储扩展实验
    • 3.2 MIPS寄存器文件设计

logisim的使用

1.添加门电路

点击资源栏-Gates选项中的门电路,即可在右边画布添加
在这里插入图片描述
添加成功后如下:
在这里插入图片描述

2.添加引脚

引脚可在菜单栏中找到
在这里插入图片描述
也可在资源栏-Wiring中找到
在这里插入图片描述
添加入画板后,可在属性表中修改面向方向
在这里插入图片描述
最后得到如下图
注:方形为输出,圆形为输入。
在这里插入图片描述

3.添加导线

使用光标连接两个结点即可
在这里插入图片描述

  • 灰色:线的位宽未知。发生这种情况是因为导线未连接到任何组件的输入和输出。(所有输入和输出都有一个定义的位宽。)
  • 蓝色:导线带有一位值,但没有任何东西将特定值驱动到导线上。我们称之为浮动位; 有人称之为高阻抗值。在此示例中,将值放置到导线上的组件是三态引脚,因此它可以发出此浮动值。深绿色:电线带有一位0值。
  • 亮绿色:导线带有一位1值。
  • 黑色:电线带有多位值。可能未指定部分或全部位。
  • 红色:电线带有错误值。这通常是因为门无法确定正确的输出,可能是因为它没有输入。它也可能因为两个组件试图将不同的值发送到线路上而产生; 这就是上面的例子中发生的情况,其中一个输入引脚将0置于线上,而另一个输入引脚将1置于同一线上,从而导致冲突。当任何携带的位是错误值时,多位线将变为红色。
  • 橙色:连接到导线的元件的位宽不一致。橙色线有效地“断开”:它不承载组件之间的值。在这里,我们将一个两位组件附加到一位组件,因此它们是不兼容的。

若出现橙色线缆,修改门电路的Data Bits值,使之组件位数一致。

连接完成后,电缆都为绿色,表示连接完成。
在这里插入图片描述

4.添加文本

选择文本工具在这里插入图片描述
点击引脚,输入标签。对引脚注释
或点击任意未知,进行注释。
在这里插入图片描述

5.测试电路

选择戳工具在这里插入图片描述,点击输入引脚,即可改变它的输入值。
在这里插入图片描述
可以看到,当线缆表示1时,为亮绿色;线缆表示0时,为深绿色。

补充工具

在这里插入图片描述

实验一,运算器实验

同学们需要在视频中对于你所实现的8位串行可控加减法器CLA741824位快速加法器16位快速加法器32位快速加法器以及ALU的进行介绍并回答相应问题。

  1. 依次比照你所实现的各个电路,口述你对该电路的实现思路以及你是如何从头构建起这个电路并使其正常工作的。
  2. 对于每一个电路,你可以回顾并介绍你在实现该电路过程中遇到的问题,以及你是如何解决这个问题的(加分项)
  3. 此外,我们对每个电路,也都准备了相应的问题和演示要求,同学们在视频演示中演示到了相应的电路时,除了上述两条,还需要在视频中对如下问题进行回答。同学们如果不知道从什么角度来介绍电路,也可以从这些问题中获得思路启发。

8位串行可控加减法器

  1. 对于加减法的控制,你是采取何种方式实现的?
  2. 你是怎样实现溢出检测的?其数学原理是什么?

分析一位全加器

P 65 P_{65} P65

设输入为x,y,进位为c。
则该位为x^y^c
进位当且仅当x,y都为1,或z为1,且x,y有一个为1。用符号表示为
(x&y) | (x^y)&z

用电路表示为
在这里插入图片描述
已在一位全加器FA中给出。

八位串行加法器即可给出

P 65 P_{65} P65
在这里插入图片描述

8位串行可控加减法器

P 66 P_{66} P66

在8为串行加法器的基础上加入可控符号Sign,若为减法,将y的补码修改为(-y)的补码(取反+1)。

若有 S 补 = x 补 − y 补 S_补 = x_补 - y_补 S=xy,即有
S 补 = x 补 + (反码 ( y 补 ) + 1 ) = ( x 补 + 反码 ( y 补 ) ) + 1 S_补 = x_补 + (反码(y_补)+1) = (x_补 + 反码(y_补)) + 1 S=x+(反码(y)+1)=(x+反码(y))+1;
可将最低为的Cin设为1,当作减法计算中反码加1的操作。

Sub为1时,y取反;Sub为0时,y不变。有-y = y^Sub
在这里插入图片描述
对于OF溢出,检测方法有两种:

  1. 根据操作数和运算结果的符号位是否一致进行检测(负负得正,正正得负时溢出), S f S_f Sf为运算结果的符号位
    O F = X f Y f S f ‾ + X f ‾ Y f ‾ S f OF = X_fY_f\overline{S_f} + \overline{X_f}\ \overline{Y_f}S_f OF=XfYfSf+Xf YfSf
  2. 根据运算时最高数据位产生的进位信号 C d C_d Cd,符号位产生的进位信号 C f C_f Cf判断,当两个进位不一致时溢出
    O F = C f ⊕ C d OF = C_f \oplus C_d OF=CfCd

显然方法二更容易实现。

对于无符号溢出,Cout为1即可判断溢出。
在这里插入图片描述

回答问题

  1. 对于加减法的控制,你是采取何种方式实现的?
    当Sub为1时,y取反,且在最低位加法器有进位1;
    当Sub为0时,y不变。
    − y = y ⊕ S u b -y = y \oplus Sub y=ySub
    将Sub作为最低一位加法器的进位,Sub=1时,与y的每一位作异或运算。

  2. 你是怎样实现溢出检测的?其数学原理是什么?
    根据运算时最高数据位产生的进位信号 C d C_d Cd,符号位产生的进位信号 C f C_f Cf判断,当两个进位不一致时溢出,有
    O F = C f ⊕ C d OF = C_f \oplus C_d OF=CfCd

CLA74182(先行进位加法器)

P 67 P_{67} P67

  1. CLA74182的作⽤是什么?

参数

低位进位 C 0 C_0 C0
产生进位 C i C_i Ci
进位生成函数 G i G_i Gi
进位传递函数 P i P_i Pi
成组进位生成函数 G ∗ G^* G
成组进位传递函数 P ∗ P^* P

公式

S i = P i ⊕ C i C i + 1 = G i + P i C i ⇒ C 1 = G 0 + P 0 C 0 ⇒ C 2 = G 1 + P 1 C 1 = G 1 + P 1 G 0 + P 1 P 0 C 0 ⇒ C 3 = G 2 + P 2 G 1 + P 2 P 1 G 0 + P 2 P 1 P 0 C 0 ⇒ 以此类推 S_i = P_i \oplus C_i \\ C_{i+1} = G_i + P_iC_i \\ \quad\\ \Rightarrow C_1 = G_0 + P_0C_0 \\ \Rightarrow C_2 = G_1 + P_1C_1 = G_1 + P_1G_0 + P_1P_0C_0\\ \Rightarrow C_3 = G_2+P_2G_1+P_2P_1G_0+P_2P_1P_0C_0 \\ \Rightarrow 以此类推 Si=PiCiCi+1=Gi+PiCiC1=G0+P0C0C2=G1+P1C1=G1+P1G0+P1P0C0C3=G2+P2G1+P2P1G0+P2P1P0C0以此类推
G ∗ = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 P ∗ = P 3 P 2 P 1 P 0 G^* = G_3+P_3G_2+P_3P_2G_1+P_3P_2P_1G_0 \\ P_* = P_3P_2P_1P_0 G=G3+P3G2+P3P2G1+P3P2P1G0P=P3P2P1P0
在这里插入图片描述

问题

  1. CLA74182的作⽤是什么?
    提前得到所有全加器所需的进位输入信号,所有全加器都可以并行计算从而提高运算性能。

位快速加法器

  1. 快速加法器与普通的串⾏加法器的区别是什么?他是通过什么⽅法来实现“快速”的?

16位快速加法器

在这里插入图片描述

32位快速加法器

在这里插入图片描述

  1. 你的溢出检测是如何实现的?这⾥是否可以选择其他的溢出检测⽅法?
    使用利用变形补码的符号位进行检测。
  2. 实现此电路有哪些值得注意的地⽅?

ALU

根据已有工具构造
在这里插入图片描述

实现功能

ALU OP十进制运算功能
00000Result = X << Y 逻辑左移(Y 取低五位)Result2=0
00011Result = X >>>Y 算术右移(Y 取低五位)Result2=0
00102Result = X >> Y 逻辑右移(Y 取低五位)Result2=0
00113Result = (X * Y)[31:0]; Result2 = (X * Y)[63:32] 有符号
01004Result = X/Y; Result2 = X%Y 无符号
01015Result = X + Y (Set OF/UOF)
01106Result = X - Y (Set OF/UOF)
01117Result = X & Y 按位与
10008Result = X | Y 按位或
10019Result = X⊕Y 按位异或
101010Result = ~(X |Y) 按位或非
101111Result = (X < Y) ? 1 : 0 符号比较
110012Result = (X < Y) ? 1 : 0 无符号比较

有关运算器的使用可参考:Logisim元件用法详解四:Arithmetic 运算器

在这里插入图片描述

  1. 怎样实现功能选择?
  2. 依次介绍各个功能的实现⽅式
  3. 重点介绍OF,UOF,加法,减法
  4. 运⾏运算器测试电路检测

实验二、存储器实验

3.1存储扩展实验

在这里插入图片描述

3.2 MIPS寄存器文件设计

在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/SgZorQj4.shtml

相关文章

计算机组成原理-存储器实验

实 验 报 告 课程名称&#xff1a; 计算机组成原理 系 &#xff08;院&#xff09;&#xff1a; 信息工程学院 班 级&#xff1a; 计科 学生姓名&#xff1a; 学 号&#xff1a; 指导教师&#xff1a; …

计算机组成原理实验一 运算器实验

一、实验目的 1、熟悉8位寄存器的读写操作 2、熟悉简单运算器的数据传送通路 3、验证运算器74LS181的算术逻辑功能 4、按给定数据&#xff0c;完成指定的算术、逻辑运算 二、实验内容 1、绘制仿真图。 2、输入A0xaa&#xff0c;B0x55&#xff0c;启动仿真前令ALU_EN1。启…

21级计科专业计算机组成原理实验一报告

实验资料&#xff1a; https://wwpv.lanzoue.com/b05drrb2b 密码:7nwj 附件清单如下&#xff1a; &#xff08;1&#xff09;MSDEV.EXE-----替换后可以修复调试后软件不可用的情况 &#xff08;2&#xff09;计算机组成原理实验一&#xff08;完整&#xff09;.docx ----计算机…

计算机组成原理 相关实验及实验环境

相关实验 全加器实验 存储器实验 运算器实验 总线与微命令实验 累加器实验 程序计数器实验 微程序控制器实验 实验环境 用到的环境dsvlab1.0&#xff0c;在IE浏览器中打开&#xff0c;需要IE11的版本&#xff0c;若是不行可以选择在虚拟机上运行此环境使用VMware虚拟机安装W…

多思计算机组成原理实验三:存储器实验

03H 存储00010011&#xff1a; 写数据 读数据 04H 存储00010100&#xff1a; 写数据 读数据 本实验主要是先将选择的地址数据由74LS245送到74LS273锁存器进行存储&#xff0c;再送到6116进行地址设置&#xff1b;然后将要存储的数据由74LS245送往RAM6116&#xff0c;将数…

计算机组成原理实验一:运算器组成的实验

本篇博文主要是讲述一下计算机组成原理实验中运算器组成的实验&#xff0c;因为很多同学在刚学习计算机组成原理实验的时候对于调试的一些步骤还是有些懵懵懂懂&#xff0c;每个步骤之间的连接做的不是很连贯&#xff0c;故有了写此篇博文的初衷&#xff0c;笔者会在近期分享计…

计算机组成原理实验二

一、实验目的与要求 1.1实验目的 &#xff08;1&#xff09;了解运算器的组成结构 &#xff08;2&#xff09;掌握运算器的工作原理 1.2实验要求 &#xff08;1&#xff09;实验之前&#xff0c;应认真准备&#xff0c;写出实验步骤和具体设计内容&#xff0c;否则实验效率会很…

计算机组成原理实验报告

目录 实验一&#xff1a; 实验二&#xff1a; 实验三&#xff1a; 实验四&#xff1a; ps:5月30日&#xff0c;还是希望你们自己去做一做&#xff0c;感受一下&#xff0c;和我的实验数据对比对比&#xff0c;我把每份报告的最后一题删掉啦&#xff0c;老师说&#xff0c;最…

计算机组成原理实验 实验一 存储器实验

目录 实验1 存储器实验 一、实验目的 二、实验原理 三、实验电路 四、实验步骤 五、实验数据分析 六、思考题 实验1 存储器实验 一、实验目的 1.熟悉DVCC计算机组成原理实验机的结构&#xff0c;掌握其主要操作。 2.掌握静态随机存储器RAM工作特性。 3.掌握静态随…

计算机组成原理实验(logisim)

文章目录 目录 文章目录 实验一&#xff1a;Logisim软件的使用 实验二&#xff1a;数据的表示 1.汉字的编码实验&#xff1a; 实验三&#xff1a;运算器组成实验 1.多位串行加法器和多位可控加减电路的设计 2.快速加法器的设计 3.多位算术逻辑单元ALU设计 4.阵列乘法器设计 4.阵…

多思计算机组成原理实验八:简单模型机实验

目录 1.实验讲义&#xff1a; 2.实验电路&#xff1a; 3.实验结果以及相关文件分享&#xff1a; 4.实验视频&#xff1a; 1.实验讲义&#xff1a; 2.实验电路&#xff1a; 3.实验结果以及相关文件分享&#xff1a; 下面链接是实验电路文件以及手抄讲义的分享。其中&#x…

计算机组成原理实验二 存储器实验

一、实验目的 1、了解静态随机存储器RAM和只读存储器ROM的工作特性 2、掌握存储器与总线的连接及存储器地址空间映射的原理 3、设计一个8位字长的存储器通路&#xff0c;包括ROM和RAM两个地址相互独立的存储器&#xff0c;实现对ROM和RAM存储器的数据读写操作及数据成批导入…

计算机组成原理实验二:运算器实验

实验基于多思计算机组成原理网络虚拟实验系统 实验室地址&#xff1a;http://www.dsvlab.cn/ 实验目的&#xff1a; 通过门电路实现运算器 1&#xff09;掌握算术逻辑运算单元的工作原理。 2&#xff09; 熟悉简单运算器的电路组成。 3&#xff09; …

计算机组成原理实验一报告——运算器

一&#xff0e;实验目的 了解和掌握Am2901运算器的组成结构和工作原理&#xff1b;认识和掌握TEC-2机运算器的组成和工作原理&#xff1b;认识和掌握TEC-2机运算器相关控制信号的含义和使用方法&#xff1b; 二&#xff0e;实验原理 Am2901运算器 1&#xff0e;Am2901 芯片内…

计算机组成原理实验:基本运算器实验

学生实验报告 实验课名称&#xff1a;计算机组成原理 实验项目名称&#xff1a;基本运算器实验 一、实验名称&#xff1a; 基本运算器实验 二、实验目的&#xff1a; &#xff08;1&#xff09;了解运算器的组成原理 &#xff08;2&#xff09;掌握运算器的工作原理 三、…

计算机组成原理学习-实验一 运算器实验(详细、系统)

如果你对计算机组成原理感兴趣&#xff0c;可以考虑阅读我的专栏 计算机组成原理【专栏】 须知 本文仅作学习笔记使用&#xff0c;仅在CSDN网站发布&#xff0c;如果在其他网站发现&#xff0c;均为侵权行为&#xff0c;请举报。作者&#xff1a;小王在努力。 运算器实验 须知实…

计算机组成原理实验——存储器

计算机组成原理实验——存储器 实验题目&#xff1a;存储器 预习内容&#xff1a; 1.多层次的存储器 ⑴存储器概述 ①存储器的分类 ②存储器的分级 ③主存储器的技术指标 ⑵SRAM存储器 ①基本的静态存储元阵列 ②基本的SRAM逻辑结构 ③读/写周期波形图 ⑶DRAM存储器 ①DRAM存…

计算机组成原理实验——实验1 运算器实验

实验目的 &#xff08;1&#xff09;掌握算术逻辑运算单元的工作原理。 &#xff08;2&#xff09;熟悉简单运算器的电路组成。 &#xff08;3&#xff09;熟悉4位运算功能发生器&#xff08;74LS181&#xff09;的算术、逻辑运算功能。 实验要求 &#xff08;1&#xff0…

计算机组成原理实验

计算机组成原理实验 1. 4位先行进位电路&#xff1a;就是741822.四位快速加法器&#xff1a; 1. 4位先行进位电路&#xff1a;就是74182 4位先行进位电路图怎么连的&#xff1f; 通过公式来连的&#xff1a;谁与谁或&#xff0c;谁与谁异或 公式&#xff1a; CiXiYi(Xi异或Yi)…

计算机组成原理——运算器实验

计算机组成原理实验—运算器 预习内容&#xff1a; 1.逻辑运算 ⑴逻辑非运算&#xff1a;按位求它的反&#xff0c;常用变量上加一横表示 ⑵逻辑加运算&#xff1a;按位求它们的“或”&#xff0c;常用“”来表示 ⑶逻辑乘运算&#xff1a;按位求它们的“与”&#xff0c;常用…