计算机组成原理:实验三数据通路组成实验

news2024/9/21 4:28:41

一、实验目的

1.将双端口通用寄存器堆和双端口存储器模块联机;

2.进一步熟悉计算机的数据通路;

3.掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;

4.锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。

二、实验电路

图3.1示出了数据通路实验电路图,它是将双端口存储器实验模块和一个双端口通用寄存器堆模块(RF)连接在一起形成的。双端口存储器的指令端口不参与本次实验。通用寄存器堆连接运算器模块,本实验涉及其中的操作数寄存器DR2。

由于双端口存储器RAM是三态输出,因而可以将它直接连接到数据总线DBUS上。此外,DBUS上还连接着双端口通用寄存器堆。这样,写入存储器的数据可由通用寄存器堆提供,而从存储器RAM读出的数据也可送到通用寄存器堆保存。

双端口存储器RAM已在实验二做过介绍,DR2在实验一中使用过。通用寄存器堆RF(U32)由一个ISP1016实现,功能上与两个4位的MC14580并联构成的寄存器堆类似。RF内含四个8位的通用寄存器R0、R1、R2、R3,带有一个写入端口和两个输出端口,从而可以同时写入一路数据,读出两路数据。写入端口取名为WR端口,连接一个8位的暂存寄存器(U14)ER,这是一个74HC374。输出端口取名为RS端口(B端口)、RD端口(A端口),连接运算器模块的两个操作数寄存器DR1、DR2。RS端口(B端口)的数据输出还可以通过一个8位的三态门RSO(U15)直接向DBUS输出。

双端口通用寄存器堆模块的控制信号中,RS1、RS0用于选择从RS端口(B端口)读出的通用寄存器,RD1、RD0用于选择从RD端口(A端口)读出的通用寄存器。而WR1、WR0则用于选择从WR端口写入的通用寄存器。WRD是写入控制信号,当WRD=1时,在T2上升沿的时刻,将暂存寄存器ER中的数据写入通用寄存器堆中由WR1,WR0选中的寄存器;当WRD=0时,ER中的数据不写入通用寄存器中。LDER信号控制ER从DBUS写入数据,当LDER=1时,在T4的上升沿,DBUS上的数据写入ER。RS_BUS#信号则控制RS端口到DBUS的输出三态门,是一个低电平有效信号。以上控制信号各自连接一个二进制开关K0-K15。

图3.1 数据通路实验电路图

三、实验接线

K0接SW_BUS#

K1接RS_BUS#

K2接ALU_BUS

K3接CEL#

K4接LRW

K5接LDAR1

K6接LDDR2

K7接LDER

K8接RS1

K9接RS0

K10接RD1

K11接RD0

K12接WR1

K13接WR0

K14接WRD

S2接GND

S1接GND

S0接+5V

M2接GND

GER接GND

AR1_INC接GND

IAR_BUS#接+5V

共21根线

四、实验任务

1.用8位数据开关向RF中的四个通用寄存器分别置入数据

1).向RF中置数
只用到SW_BUS,ER,RF。所以将其它原部件设置为失效,即K1为1,K5为0,K3为1

2)由开关计数器将要植置入的数输入到暂存寄存器ER中。
将SW_BUS与ER中的LDER设置为有效,即K0为0,K7为1,开关计数器设置为想要输入的数,按下QD给WR一个脉冲信号,将数置入到暂存寄存器。

3)然后将数据置入到相应的通用寄存器中。
由于不需要输入数字了将SW_BUS设置为关ER也不需要从总线中置入数据也设置为关,写入数据RF的WRD设置为写模式,也就是K0为1,K7为0,K14为按照想要输入到那个通用寄存器中设置相对应的WR1与WR0的值,按下QD给RF一个T2脉冲信号,这就完成了将ER中的数据置入到了指定的RF通用寄存器中。

通用寄存器

数据

R0

0000  1111

R1

1111  0000

R2

0101  0101

R3

1010  1010

2.分别将RO至R3中的数据读入到DBUS上

1)通过三态门读取指定RF通用寄存器中的数据。
RF不需要写入数据了所将WRD设置为不写状态,通过三态门将RF中的数据输入到总线中所以将RSO设置为开,即K14为0 ,K1为0,由于是从B端口输出,所以设置RF中的RS1与RS0,选着相对应的通用寄存器输出,由于是输出到总线上,所以将绿灯调到DBUS上,就可以观察到相对应的数据了。

观察到的数据

通用寄存器

数据

R0

0000  1111

R1

1111  0000

R2

0101  0101

R3

1010  1010

与输入的数据一致

3.分别将RO至R3中的数据读入到DR2上

1)将通用寄存器的数据送入到DR2中。
BUS总线上只允许有一路输出,所以将RS0设置为关,DR2设置为接收数据,即K1为1,K6为1,由于是A端口输出,所以通过RF中的RD1与RD0设置相对应的通用寄存器,按下QD给DR2一个T3脉冲信号,将RF对应的通用寄存器的数据加载到DR2中。

2)为了验证是否将数据加载到DR2中,所以可以通过ALU运算器将数据输入到总线中查看是否加载成功。
将ALU设置为允许输入数据的状态,直接查看数据即K2为1,所以将运算器设置为直通与模式,即S2为0,S1为0,S0为1。然后就可以看到DR2中的数据了,也就可以查看数据是否加载成功。

观察到的数据

通用寄存器

数据

R0

0000  1111

R1

1111  0000

R2

0101  0101

R3

1010  1010

与输入的数据一致

4.用8位数码开关SW0-SW7向AR1送入一个地址0FH,然后将R0中的0FH写入双端口RAM。用同样的方法,依次将R1至R3中的数据写入RAM中的0F0H、55H、0AAH单元。
1)将通用寄存器中的数据送入到指定的双端口寄存器中。
首先送入地址,将SW_BUS与AR1设置为开,即K0为0,K5为1。调整想要指定的数码开关,按下QD给AR一个T4脉冲信号,指定双端口寄存器的地址。

2)然后将通用寄存器的数据写入到RAM中,将SW_BUS与AR1设置为关,即K0为1,K5为0。RS0设置为开,即K1为0,由于是从B端口输出,所以设置RF中的RS1与RS0,选着相对应的通用寄存器输出,将RAM设置为开LRW设置为写模式,即K3为1,K4为0,按下QD给RAM一个T3脉冲信号,将通用寄存器的数据写入到双端口寄存器中。

写入的数据:

双端口地址

通用寄存器

数据

0FH

R0

0000  1111

F0H

R1

1111  0000

55H

R2

0101  0101

AAH

R3

1010  1010

5.分别将RAM中的0AAH单元的数据写入R0,55H单元的数据写入R1,0F0H单元写入R2,0FH单元写入R3。然后将R3、R2、R1、R0中的数据读出到DBUS上,通过指示灯验证读出的数据是否正确,并记录数据。

1)将RAM的数据写回到RF中。
首先也是送地址,将SW_BUS与AR1设置为开,即K0为0,K5为1。调整想要指定的数码开关,按下QD给AR一个T4脉冲信号,指定双端口寄存器的地址。将RAM设置为开LRW设置为读模式,即K3为1,K4为1。此时RAM的数据应该读到了总线上,所以可以通过ER将数据送入到RF中,ER为开,即K7为1,按下QD给RAM一个T3脉冲信号,将双端口寄存器的数据写入到暂存寄存器中。

2)然后将数据置入到相应的通用寄存器中。
由于不需要输入数字了将SW_BUS设置为关ER也不需要从总线中置入数据也设置为关,写入数据RF的WRD设置为写模式,也就是K0为1,K7为0,K14为按照想要输入到那个通用寄存器中设置相对应的WR1与WR0的值,按下QD给RF一个T2脉冲信号,这就完成了将ER中的数据置入到了指定的RF通用寄存器中。

3)然后就是检查数据是否加载正确,从三态门将数据输出到总线中观察,RF不需要写入数据了所将WRD设置为不写状态。
通过三态门将RF中的数据输入到总线中所以将RSO设置为开,即K14为0 ,K1为0,由于是从B端口输出,所以设置RF中的RS1与RS0,选着相对应的通用寄存器输出,由于是输出到总线上,所以将绿灯调到DBUS上,就可以观察数据是否加载正确了。

观察到的数据:

通用寄存器

数据

R0

1010  1010

R1

0101  0101

R2

1111  0000

R3

0000  1111

与预期数据一致。

五、实验总结

    在本次实验中,我们将双端口通用寄存器堆(RF)和双端口存储器模块联机,深入了解了计算机的数据通路操作,并熟悉了数字逻辑电路中故障排除的一般原则和方法。本实验的主要目的是将理论知识应用于实际操作,锻炼分析和解决问题的能力,尤其是在出现故障的情况下,能够独立分析故障现象并排除故障。

    实验电路如图3.1所示,通过将双端口存储器模块和双端口通用寄存器堆模块连接,形成了一个完整的数据通路系统。双端口存储器的指令端口不参与本次实验。双端口存储器RAM和通用寄存器堆模块(RF)均连接到数据总线DBUS上,从而实现数据的读写操作。

    通用寄存器堆RF由ISP1016实现,内含四个8位的通用寄存器R0、R1、R2、R3,并具有一个写入端口和两个输出端口,能够同时写入一路数据并读出两路数据。我们通过写入控制信号WRD和暂存寄存器ER的控制信号LDER,实现数据的读写操作。此外,通过选择信号RS1、RS0和RD1、RD0,我们能够分别选择RS端口和RD端口读出的通用寄存器。

    实验任务包括将数据写入和读出通用寄存器,以及将数据在通用寄存器和双端口RAM之间进行交换。首先,通过设置开关K0-K15,我们将数据从8位数据开关输入到暂存寄存器ER,再写入到通用寄存器堆中的指定寄存器中。在测试过程中,我们成功地向R0-R3寄存器分别写入了指定的数据,并通过总线将数据读出,验证数据的正确性。

    接着,我们将通用寄存器的数据写入到双端口RAM中的指定地址,并再次验证数据的正确性。然后,将RAM中的数据读回通用寄存器,进一步验证数据的准确性。整个过程中,通过控制信号和开关的设置,我们实现了数据在通用寄存器和RAM之间的正确传输,并通过指示灯验证了操作的正确性。

    实验中,遇到了一些故障和问题,通过分析电路连接和控制信号,成功排除故障,保证了数据传输的准确性。通过本次实验,我更加熟悉了计算机的数据通路操作原理,掌握了数字逻辑电路中故障排除的方法,提高了分析和解决问题的能力。实验结果表明,我们能够正确地在通用寄存器和RAM之间进行数据传输,并能够准确地读出和写入数据,达到了实验的预期目标。

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

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

相关文章

Windows 10远程桌面连接设置

0 Preface/Foreword 0.1 Remote desktop (远程桌面) Remote Desktop lets you connect to or control this PC from a remote device by using a Remote Desktop client (available for Windows, Android, iOS and macOS). Youll be able to work fro…

15年让爱轮回

15年前,运巧的命运齿轮因一位记者的稿件悄然转动,运巧这个名字,真的是命运的巧合,把她和邦尔骨科连接在了一起,她的人生轨迹因一家医院的善举发生了改变。那时的她,面临生活的重重困境,求学之路…

通义 AI 再次颠覆创作体验:一句话即可生成PPT

🆕通义 AI 再次颠覆创作体验:一句话即可生成PPT 🎉 最近,科技圈再度被通义 AI 的最新功能刷屏!8月30日,通义网页版正式上线了让无数办公族翘首以盼的“PPT 创作”功能。这一革新功能不仅为内容创作者带来了…

制作人偶动画Character Animator

每个人都可以通过表演开始制作动画。无需具备专业的操控知识。 入门模式提供示例人偶,可帮助您快速创建动画。选择人偶或导入人偶,然后添加或录制语音。 每个示例人偶都有一个完备的“控件”面板,其中包含多种姿势和情绪。 您可以通过选择“自…

【TDesign】如何修改CSS变量

Tdesign的组件想通过style定义样式没效果, 可以通过组件api文档修改, 组件提供了下列 CSS 变量,可用于自定义样式。 比如Cell, https://tdesign.tencent.com/miniprogram/components/cell?tabapi 提供了: –td-cell-left-icon-color 图标颜色 –td-cell…

【每日一题】【想通后的诈骗题】Wakey Wakey 牛客挑战赛76 A题 C++

牛客挑战赛76 A题 Wakey Wakey 题目背景 牛客挑战赛76 题目描述 样例 #1 样例输入 #1 2 2 3 2 10000 100000 2333样例输出 #1 1 2014备注 1 ≤ T ≤ 10 1\le T\le 10 1≤T≤10 1 ≤ n , m ≤ 1 0 5 1\le n,m \le 10^5 1≤n,m≤105 1 ≤ p ≤ 1 0 9 1\le p \le 10^9 1…

干货分享|分享一款自己常用的桌面整理神器 WPS桌面整理

问题:下面两张图是使用WPS桌面整理前后的对比。 使用方法: 1.打开WPS 2.点击桌面右下角WPS办公助手--选择桌面整理--整理桌面 注:桌面整理后,可以通过右键点击格子并根据个人喜好进行编辑。操作简便,大家自行尝试和探索…

线性代数|机器学习-P31完成一个秩为1的矩阵

文章目录 1. 大纲2. 填充秩1矩阵2.1 举例2.2 二分图 3. 循环卷积矩阵 1. 大纲 给定一个秩为1的矩阵A,m行,n列,如果在矩阵A中给定mn-1 个非零的值,请问如何填充这个矩阵A,使得矩阵A 填满?卷积和循环卷积矩阵&#xff0…

通过Amazon Bedrock上的Stability AI模型开发生成式AI应用(上篇)

快来用人工智能生成图像开发生成式AI图像应用!今天小李哥就来介绍亚马逊云科技推出的国际前沿人工智能模型平台Amazon Bedrock上的Stability Diffusion模型。接下来我将带大家沉浸式实操Stability Difussion模型,带大家手把手体验该模型的每个特色功能&a…

MySQL-进阶篇-SQL优化(插入数据优化、主键优化、order by优化、group by优化、limit优化、count优化、update优化)

文章目录 1. 插入数据优化1.1 使用批量插入1.2 批量插入数据时手动提交事务1.3 按主键的顺序插入1.4 大批量插入数据时使用 load 指令 2. 主键优化2.1 数据组织方式2.2 页分裂2.3 页合并2.4 主键的设计原则2.4.1 降低主键的长度2.4.2 使用 AUTO_INCREMENT 自增主键2.4.3 尽量不…

Javascript归纳与总结——this指向及其改变、new关键字与原型链、异步、闭包和函数防抖与节流

this指向及其改变 普通函数在调用时,this为obj.obj1.fun(),this->obj1,箭头函数在声明定义时this->obj。 Javascript中bind、call、apply區別-CSDN博客 new关键字与原型链 从原型链视角解读VueComponent与Vue关系_vue中重要的原型链关系-CSDN博客 prototy…

开放式耳机是不是智商税?年度开放式耳机推荐2024产品揭秘

现在越来越多的人开始注重耳道健康,开放式耳机也越来越受大家的欢迎,因为这种开放式的设计是不进入耳道,这样能够保护我们的耳道健康,大大减少细菌的滋生。 但是就会有小伙伴说了,那开放式耳机是不是智商税呢&#xff…

iPhone 16 系列和多款新品将亮相,苹果发布会定档 9 月 10 日|TodayAI

苹果公司(Apple)已正式宣布,将于 2024 年 9 月 9 日举行年度发布会,地点定于苹果园区的史蒂夫乔布斯剧院。此次发布会的主题为 “It’s Glowtime”。发布会预计将带来众多硬件更新和新产品,最受关注的无疑是 iPhone 16…

我的世界实体与生物ID表

猪 Pig JE1.0   Pig 1.7  minecraft:pig 1.11  绵羊 Sheep 羊 JE1.0   Sheep 1.7  minecraft:sheep 1.11  牛 Cow JE1.0   Cow 1.7  minecraft:cow 1.11  鸡 Chicken JE1.0   Chicken 1.7  minecraft:chicken 1.11  鱿鱼 Squid JE1.0   Squid 1.7  m…

字符编码——第一平面的unicode分析

本篇小小探索了下 unicode 第一片面的字符。 一、什么是unicode? Unicode,全称为Unicode标准(The Unicode Standard),其官方机构Unicode联盟所用的中文名称为统一码,又译作万国码、统一字符码、统一字符编…

【PyTorch常用库函数】一文向您详解 with torch.no_grad(): 的高效用法

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 在训练神经网络时,我们通常需要计算损失函数关于模型参数的梯度,以便通过梯度下降等优化算法更新参…

ARM内存屏障/编译屏障API(__DMB、__DSB、__ISB)用法及举例

0 参考资料 STM32F7 Series and STM32H7 Series Cortex-M7 processor.pdf ARM Cortex™-M Programming Guide to Memory Barrier Instructions.pdf1 ARM内存屏障/编译屏障指令(__DMB、__DSB、__ISB)说明 内存屏障和编译屏蔽其实是2个东西,一…

JDBC的使用及案例

1. JDBC基本操作 1.1. JDBC概述 JDBC(Java Data Base Connectivity)Java连接数据库是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问它由一组用Java语言编写的类和接口组成有了JDBC,程序员只需用JDBC API写一个程…

将vue项目打包为安卓软件

前言 在我的前一个文章,有讲如何实现一个笔记系统 点击跳转到:纯vue实现笔记系统 那么我如果想要分享给我的朋友该怎么办呢? 那么我将带大家去实现打包安卓软件 安卓实际打包软件 也为了更信服,这里提供一个我的打包之后的软件给大家,感兴…