计算机组成数据通路组成实验报告,计算机组成原理实验报告+++数据通路实验.doc...

计算机组成原理实验报告数据通路实验

数据通路组成实验

一、实验目的

(1)将双端口通用寄存器组和双端口存储器模块联机;

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

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

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

二、实验电路

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

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

RAM和DR2在前面的实验中使用过。对于通用寄存器组RF,它由一个在系统可编程(In System Programable)芯片ispLSI 1016固化了通用寄存器组的功能而成,其功能与双端口寄存器组MC14580相类似,内含四个8位的通用寄存器,带有一个输入端口和两个输出端口,从而可以同时写入一路数据,读出两路数据。输入端口取名为WR端口,连接一个8位的缓冲寄存器ER(已集成在ispLSI 1016芯片中),输出端口取名为RS端口、RD端口,分别连接运算器模块的两个操作数寄存器DR1、DR2,其中,连接DR1的RS端口还可通过一个8位的三态门RSO直接向BUS输出。

双端口通用寄存器组模块的控制信号中,RS1、RS0用于选择从RS端口读出的通用寄存器,RD1、RD0用于选择从RD端口读出的通用寄存器,上述选择信号在T1脉冲的上升沿到来时生效。而WR1、WR0则用于选择从WR端口写入的通用寄存器。WRD是写入控制信号,WRD=1时,在T2上升沿的时刻,从ER写入数据;WRD=0时,ER中的数据不写入通用寄存器中。LDER信号控制ER从BUS写入数据,RS-BUS信号则控制RS端口到BUS的输出三态门。以上控制信号各自连接一个二进制开关。

三、实验设备

(1)JYS-4计算机组成原理实验仪一台

(2)双踪示波器一台

(3)直流万用表一只

(4)逻辑测试笔一支

四、实验任务

(1)将实验电路与操作面板的有关信号进行线路连接,方法同前面的实验。

(2)用8位数据开关向RF中的四个通用寄存器分别置入以下数据(十六进制):R0=0F,R1=F0,R2=55,R3=AA。

给R0置入0F的步骤是:先用8位数码开关将0F置入ER,并且选择WR1=WR0=0,再将ER的数据置入RF。给其他通用寄存器置入数据的步骤与此类似。

(3)分别将R0至R3中的数据同时读入到DR2寄存器和BUS上,观察其数据是否存入R0至R3中的数据,并记录数据。其中BUS上的数据可直接用指示灯显示,DR2中的数据可用逻辑笔测试有关引脚。

(4)用8位数码开关向AR1送入一个地址0F,然后将R0中的0F写入RAM。用同样的方法,依次将R1至R3中的数据写入RAM中的F0、55、AA单元。

(5)分别将RAM中AA单元的数据写入R0,55单元的数据写入R1,F0单元写入R2,0F单元写入R3。然后将R3、R2、R1、R0中的数据读出到BUS上,通过指示灯验证读出的数据是否正确,并记录数据。

(6)进行RF并行输入输出试验。

1.选择RS端口对应R0,RD端口对应R1,WR端口对应R2,并使WRD=1,观察并行输入输出的结果。选择RS端口对应R2,验证刚才的写入是否生效。记录数据。

2.保持RS端口和WR端口同时对应R2,WRD=1,而ER中置入新的数据,观察并行输入输出的结果,RS端口输出的是旧的还是新的数据?

(7)在数据传送过程中,发现了什么故障?如何克服的?

五、实验要求

(1)做好实验预习和准备工作,掌握实验电路的数据通路特点和通用寄存器组的功能特性。

(2)写出实验报告,内容为

1.实验目的;

2.如碰到故障,记录故障现象,排除故障的分析思路,故障定位及故障的性质;

3.实验数据记录;

4.值得讨论的其他问题。

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

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

相关文章

计算机网络安全本科大学排名,2021网络工程专业大学排名 最好大学排行榜

2021网络工程专业大学排名 最好大学排行榜2021-06-11 19:35:09文/丁雪竹网络工程专业在全国最好的大学是哪几所呢,最好的大学排名是什么样呢,小编整理网络工程专业大学最好大学排行榜,仅供参考!网络工程专业最好大学排行榜在网络工…

20线程测试cpu性能软件,评测平台介绍、CPU多线程性能测试

2、平台介绍及CPU性能测试AMD AM3平台CPUAMD FX-8150(4模块/8核)AMD FX-8350(4模块/8核)主板华硕 Crosshair V Formula(BIOS版本:1605)Intel LGA1155平台CPUIntel Core i5 3570K(4核/4线程)Intel Core i7 3770K(4核/8线程)主板华硕 P8Z77-V Deluxe共用配件硬盘主盘&…

大型网站服务器 pdf,大型网站服务器容量规划[PDF][145.25MB]

内容简介内 容 提 要本书讲解了用数学回归分析方法来做服务器容量规划的思路,让读者掌握服务器容量规划的量化方法;模型的选择是服务器容量规划的关键,不同的程序有不同的模型。本书使用nginxPHPMySQL为实例演示了具体的规划过程,…

穿越火线全部服务器都显示爆满,穿越火线大区全部爆满,频道挤不进去背后的故事!...

大家好我是小包子,穿越火线经历了十一周年,盛典游戏更新后,我们发现游戏基本上所有大区都呈现爆满的盛世。我们热爱的穿越火线又回来了吗?6月小包子曾爆料CF启动量超过吃鸡跃居第二,射击游戏第一,重回巅峰的…

dod刷服务器文件,DoD 5220.22-M和Gutmann两种硬盘擦除算法

DoD 5220.22-M的说明Use this seven-pass method for tighter security. Different patterns ofbytes are written to the disk as described in the table below. Usingthis method is probably even safer than using the simple method (with 6passes).This method is descr…

服务器加根网线用不用修改路由器,安装设置无线路由器需要用几根网线?

“安装设置无线路由器需要用几根网线?看到网上安装设置路由器的教程,有的说需要两根网线,有的说需要一根网线,请问到底应该使用一根还是两根呢?”其实这个问题的答案并不是唯一的,使用一根还是两根&#xf…

大数运算#

大数,就是C/C中利用基本类型所不能存储的数字,少则数十位,大则几万位,如何存储和计算大数就是本文的内容。 在C和C中,没有存储大数的数据结构,就算 unsigned long long也只能表示19位的数字  如果我们用d…

乘法口诀表的C语言编程

#include "stdio.h"int main() {int i,j,q0;for(i 1;i < 10; i){for(j 1;j < 10;j){q i*j;printf("%d*%d%d\n",i,j,q);}}} 按照课本上的排列做出的优化 #include "stdio.h"int main() {int i,j;for(i 1;i < 10; i){for(j 1;j <…

打印100-200之间的素数

素数 是指除了1和它本身以外,不能被任何整数整除的数 例如17就是素数,因为它不能被2~16的任一整数整除。 #include "stdio.h"int main() {int i,j;for(i 100; i < 200; i){for(j 2;j < i-1;j){if(i%j 0)break;}if(j i)printf("%d\n",i);}} C语言…

判断1000-2000之间的闰年(优化写法)

闰年普通年&#xff08;不能被100整除的年份&#xff09;能被4整除的为闰年。&#xff08;如2004年就是闰年,1999年不是闰年&#xff09;&#xff1b;世纪年&#xff08;能被100整除的年份&#xff09;能被400整除的是闰年。(如2000年是闰年&#xff0c;1900年不是闰年)&#x…

四种方法实现数组交换

方法一&#xff1a; //该方法主要用逻辑运算将数组对应的每个元素进行交换&#xff0c;然后用for循环将整个数组元素进行交换#include<stdio.h>int main(){ int i,j,k;int A[10];int B[10];int C[10];printf("请输入A数组的内容&#xff1a;\n");for(i0;i<1…

结构体变量初始化

// // main.c // C语言学习 #include <stdio.h> int main(int argc, const charchar * argv[]) { //定义结构体类型 struct Person { charchar *name; int age; double heigth; }; //初始化的4种方式 //1.定义的同时初始化 struct Person p1 {"z…

C语言的细小知识点整理

1、register修饰符暗示编译程序相应的变量将被频繁地使用&#xff0c;如果可能的话&#xff0c;应将其保存在CPU的寄存器中&#xff0c;以加快其存储速度 2、static是某个特定函数的局部变量&#xff0c;即只能在定义该变量的函数内使用该变量 static int a 40; char …

二维数组初始化规则

二维数组初始化的形式为&#xff1a;数据类型 数组名[整常量表达式][ 整常量表达式]{ 初始化数据 }&#xff1b;在{ }中给出各数组元素的初值&#xff0c;各初值之间用逗号分开。把{ }中的初值依次赋给各数组元素。有如下几种初始化方式&#xff1a;⑴ 分行进行初始化int a[2][…

linux之缓冲区

行缓冲。在这种情况下&#xff0c;当在输入和输出中遇到换行符时&#xff0c;标准I/O库执行I/O操作。这允许我们一次输出一个字符&#xff0c;但只有在写了一行之后才进行实际I/O操作。当流涉及一个终端时&#xff0c;通常使用行缓冲。 第一个例子&#xff1a;&#xff08;he…

输出一个整数的每一位(3种方法)

1.使用数组按个数输入再按照个数输出 int i, j, k, num, count;int a[10];printf("几位数\n");scanf("%d", &k);for (i 1; i < k; i){scanf("%d", &a[i]);}for (i k; i > 1; i--){printf("%d\n", a[i]);} 2.使用递归…

linux之地址空间

程序&#xff1a;一组指令的有效集合。它是静态的&#xff0c;不具有任何的运行意义。程序最终转换为二进制文件。 进程&#xff1a;程序的执行就是进程。可以把它看成独立的程序&#xff0c;在内存中有其对应的代码空间和数据空间。一个进程所拥有的数据和代码只属于自己。进…

C语言操作符 进阶 (常见错误及细节)

1.算术操作符- * / % % 只适用于整数类型运算&#xff0c;其余运算符也可用于浮点运算。2.移位操作符 左移&#xff1a;左边丢弃&#xff0c;右边补0&#xff1b; 右移&#xff1a;不同编译器采取的移位方式不同&#xff0c;所有有了“右移”的程序不可移植1.逻辑移位&#xff…

输出该数二进制表示中1的个数。求取十进制数字元素1的个数 (3种方法)

/* ***求取十进制数字元素1的个数 */int fun(int x) {int count 0;int i, j, k;/***方法2 负数不可计算&#xff0c;需要改进*/while (x ! 0){if (x & 1 1){count;}x x >> 1;}/****方法1*/while (x ! 0){x x&(x - 1);count;}return count; }int main() {in…

C语言随机数生成超详解

1.首先来看一段简单的代码 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h>int main(void) {int i;printf(" %6d\n", rand());system("pause"); }printf(" %6d\n", rand());sys…