计算机组成原理 双端口存储器原理实验

一、实验目的

1、了解双端口静态随机存储器IDT7132的工作特性及使用方法

2、了解半导体存储器怎样存储和读出数据

3、了解双端口存储器怎样并行读写,产生冲突的情况如何

二、实验任务

(1)按图7所示,将有关控制信号和和二进制开关对应接好,仔细复查一遍,然后接通电源。

(2)将数码开关SW0—SW7 (SW0是最低位)设置为00H, 将此数据作为地址置入AR1;然后重新设置二进制开关控制,将数码开关SW0—SW7上的数00H写入RAM第0号单元。依此方法,在存储器10H单元写入数据10H,20H 单元写入20H, 30H单元写入30H, 40H单元写入40H,共存入5个数据。使用双端口存储器的左端口,依次读出存储器第00H、10H、 20H、 30H、40H单元中的内容,观察上述各单元中的内容是否与该单元的地址号相同,记录数据。注意:总线上禁止两个以上部件同时向总线输出数据。当存储器进行读出操作时,必须关闭SW_ BUS 三态门!而当向AR1送入地址时,双端口存储器不能被选中。

(3)通过双端口存储器右端口(指令端口),依次把存储器第00H、10H、 20H、 30H、 40H 单元中的内容置入指令寄存器IR,观察结果是否与(2)相同,并记录数据。

(4)双端口存储器的并行读写和访问冲突测试。置CEL#=0且CER=1,使存储器左、右端口同时被选中。当AR1和AR2的地址不相同时,没有访问冲突;地址相同时,由于都是读出操作,也不冲突。如果左、右端口地址相同且一个进行读操作、另一个进行写操作,则发生冲突。要检测冲突,可以用示波器测试BUSYL和BUSYR插孔(分别是两个端口的“忙”信号输出)。BUSY 为0时不一定发生冲突,但发生冲突时,BUSY 一定为0。当某一个端口(无论是左端口还是右端口)的BUSY = 0时,对该端口的写操作被IDT7132忽略掉。

三、实验工具

     模拟程序

四、实验步骤及实验结果

1、仿真面板接线

2、令K0 (CEL#) =1,K1(LRW) = 1,K2 (CER) =0,K3(LDAR1) = 1,K4 (LDAR2) =0,K5 (SW_ BUS#)= 0,K6 (LDIR) = 0。将IR/DBUS开关拨到DBUS位置,将AR1/AR2开关拨到AR1位置。置SW7-SW0=00H, 按一次QD按钮,将00H写入AR1,绿色的地址指示灯应显示00H。

再令K3 (LDAR1)=0,K0(CEL#)=0,K1(LRW)=0,按一次QD按钮,则将00H数据写入存储器的00H单元。

依次重复进行,在存储器10H单元写入数据10H,20H 单元写入20H,30H 单元写入30H,40H 单.元写入40H,共存入5个数据。

最终在双端口RAM中得到:

      

3、令K0 (CEL#) = 1,K1(LRW) = 1, K2 (CER) =0,K3(LDAR1) =0,K4 (LDAR2) =1,K5 (SW_ BUS#)= 0,K6 (LDIR) =0。将IR/DBUS开关拨到IR位置,将AR1/AR2开关拨到AR2位置。置SW7-SW0 =00H,按一次QD按钮,将00H写入AR2,绿色的地址指示灯应显示00H。

令K4 (LDAR2)=0, K2 (CER)= 1, K6(LDIR) = 1,按一次QD按钮,则从右端口读出存储器的00H单元的数据,读出的数据写入指令寄存器IR, 显示在IR数据指示灯上,应为00H。

照此方法,可从右端口依次读出存储器单元10H、20H、 30H、 40H 的数据,写入指令寄存器IR。

读出10H数据写入IR:

读出20H数据写入IR:

读出30H数据写入IR:

读出40H数据写入IR:

4、令K0 (CEL#) =1, K1(LRW) = 1,K2 (CER) =0, K3(LDAR1) = 1,K4 (LDAR2) =0,K5 (SW_ BUS#)= 0,K6 (LDIR) = 0。将AR1/AR2开关拨到AR1位置。置SW7-SW0= 38H, 按一次QD按钮,将38H写入AR1,绿色的地址指示灯应显示38H。

令K3(LDAR1) =0,K4 (LDAR2) =1,K5 (SW_BUS#)=0,将AR1/AR2开关拨到AR2位置。置SW7-SW0=38H,按一次QD按钮,将38H写入AR2,绿色的地址指示灯,应显示38H。

由于这是模拟程序,没有示波器后面内容无法进行。

(令K2 (CER) = 1,K0 (CEL#) =1,用示波器探头测试BUSYL插孔,BUSYL 应为高电平。保持K2(CER)不变,将K2(CEL#)拨动到0位置,示波器上的BUSYL信号从高电平变为低电平;再将KO (CEL#)拨到1位置,BUSYL 信号从低电平变为高电平。先令K0 (CEL#) =0,K2 (CER) = 0,用示波器探头测试BUSYR插孔,BUSYR 应为高电平。保持K0 (CEL#)不变,将K2 (CER)拨动到1位置,示波器上的BUSYR信号也从高电平变为低电平;再将K2 (CER) 拨到0位置,BUSYL 信号也从低电平变为高电平。)

五、个人总结

个人理解是先给指定地址赋给特定的值,再由另一边指到某个地址,输出对应的值。简单理解为当只打开CEL#、LRW、LDAR1,可以通过SW0-SW7点击QD确定某个地址,把它们全部取消后,又可以通过SW0-SW7点击QD给该地址赋值。之后,只打开CEL#、LRW、LDAR2,可以通过SW0-SW7点击QD选择输出的地址,再取消LDAR2,打开CER和LDIR,点击QD,就可以获取那个地址存放的信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Umi-OCR:开源、免费的离线OCR软件,一键解码万物语言,图像转文本轻松搞定!

Umi-OCR:瞬间捕获,字句跃然眼前!精准识别图文信息,让数据提取无限拓展! - 精选真开源,释放新价值。 概览 Umi-OCR是一款强大的开源光学字符识别(OCR)工具,致力于打破现实…

Arduino IDE工程代码多文件编程和中文设置

一、esp8266模块信息 二、中英文切换 点击文件( File )–选择首选项( Preference )—选择语言( Language )—选择中文–点击确定( OK ) 三、多文件编程 在Arduino编程中,将代码分割成多个文件是一种很好的做法,特别是项目变得越来越大和复杂时。这样…

SAP HCM 0008信息类型间接评估与直接评估

如果在间接评估模块输入就是间接评估(tarif是读取下图中的数据 a代表不需要输入工资项,b表示需要找工资相) 不输入就是直接评估需要客户自己输入数字 第2个情况 summe求和 (比如在0008中输入9000与9001 那么自动求出9002工资项数…

分布式锁简单实现

分布式锁 Redis分布式锁最简单的实现 想要实现分布式锁,必须要求 Redis 有「互斥」的能力,我们可以使用 SETNX 命令,这个命令表示SET if Not Exists,即如果 key 不存在,才会设置它的值,否则什么也不做。 …

SQLiteC/C++接口详细介绍sqlite3_stmt类(九)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(六) 下一篇: 无 33、sqlite3_column_table_name 函数 sqlite3_column_table_name 用于返回结果集中指定列所属的表的名称。如果查询中列使…

CTK插件框架学习-源码下载编译(01)

1、编译环境 window11、vs17、Qt5.14.0、cmake3.27.4 2、下载链接 cmake:Index of /files/v3.20 qt:Index of / vs22以前的版本需要登录下载:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 vs22下载:下载 Visu…

Eclipse For ABAP:安装依赖报错

1.安装好Eclipse后需要添加依赖,这里的地址: https://tools.hana.ondemand.com/latest 全部勾选等待安装结束; 重启后报错:ABAP communication layer is not configured properly. This might be caused by missing Microsoft Visual C++ 2013 (x64) Runtime DLLs. Consu…

Java-SSM个人博客系统

Java-SSM个人博客系统 1.服务承诺: 包安装运行,如有需要欢迎联系(VX:yuanchengruanjian)。 2.项目所用框架: 前端:JSP、layui、bootstrap、jquery等。 后端:SSM,即Spring、SpringMvc、Mybatis等。 3.项目功能点: 1.前台功能: 1…

十、C#基数排序算法

简介 基数排序是一种非比较性排序算法,它通过将待排序的数据拆分成多个数字位进行排序。 实现原理 首先找出待排序数组中的最大值,并确定排序的位数。 从最低位(个位)开始,按照个位数的大小进行桶排序,将…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记17_执法工具

1. 执法工具箱 1.1. 在数据驱动的经济环境中,明智监管潜力无限 1.2. 多年前的司法体系与反垄断执法机构更善于发现市场漏洞,并设计出了直接有效的方式来化解问题 1.2.1. 大型互联网平台的权势凌驾于法律之上 1.2.1.1. 英国上议院 1.3. 反垄断执法机…

显卡基础知识及元器件原理分析

显卡应该算是是目前最为火热的研发方向了,其中的明星公司当属英伟达。 当地时间8月23日,英伟达发布截至7月30日的2024财年第二财季财报,营收和利润成倍增长,均超市场预期。 财报显示,第二财季英伟达营收为135.07 亿美…

【C++】1416. 求长方形的周长和面积

问题:1416. 求长方形的周长和面积 类型: 基本运算、整数运算 题目描述: 从键盘读入2个整数,分别代表一个长方形的长和宽,请计算长方形的周长和面积; 输入: 从键盘读入2个整数,用…

C#中文件操作打印当前目录下的所有文件名

首先,我们采取字符串保存我们当前目录,并且通过创建类来获取这个路径下的所有文件(类下引用方法记得用小灯泡点亮),将文本数据导入数组 string path1 "C:/Users/Desktop"; DirectoryInfo root new Direct…

虚拟机扩展:虚拟机快照

虚拟机快照 在学习阶段我们无法避免的可能损坏Linux操作系统。如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。 那我们就可以通过快照将当前虚拟机的状态保存下来,在以后系统损坏时通过快照恢复虚拟机到保存的状态。 制作并还原快照 在VMware …

浅谈如何自我实现一个消息队列服务器(2)——实现 broker server 服务器

文章目录 一、实现 broker server 服务器1.1 创建一个SpringBoot项目1.2 创建Java类 二、硬盘持久化存储 broker server 里的数据2.1 数据库存储2.1.1 浅谈SQLiteMyBatis 2.1.2 如何使用SQLite 2.2 使用DataBaseManager类封装数据库操作2.3 文件存储消息2.3.1 存储消息时&#…

vue/vite添加地图

最简单的方式&#xff0c;不论vue2、vue3、vite均适用&#xff0c;例如以高德为例&#xff1a; index.html 引入 <scriptsrc"https://webapi.amap.com/maps?v1.4.15&key您的key&pluginAMap.ToolBar,AMap.MouseTool,AMap.DistrictSearch,AMap.ControlBar&quo…

ElasticSearch使用(一)

文章目录 一、简介1. 数据类型2. 倒排索引3. Lucene4. ElasticSearch5. Solar VS ElasticSearch 二、ElasticSearch入门1. 简介2. 分词器3. 索引操作4. 文档操作5. ES文档批量操作 二、ElasticSearch的DSL1. 文档映射Mapping2. Index Template3. DSL 一、简介 1. 数据类型 结…

专业矢量绘图设计软件:Sketch for mac 中文激活版

Sketch for Mac 是一款专业的矢量图形设计工具&#xff0c;主要用于 UI/UX 设计、网页设计、图标设计等领域。它的界面简洁、易用&#xff0c;功能强大&#xff0c;可以帮助设计师快速创建高质量的设计作品。 人性化界面 Sketch的界面非常简洁。最顶端的工具箱包含了最重要的操…

element-ui实现证件照上传预览下载组件封装

element-ui实现证件照上传预览下载组件封装 效果&#xff1a; 参数说明 我只写了两个参数&#xff0c;后续有需求再对其组件进行丰富~ 参数说明fileListProp用来存储上传后后端返回的图片UR了uploadUrl图片上传反悔的URL后端接口地址 父组件调用&#xff1a; <au-upload…

学点儿Java_Day8_接口、final、static

1 接口interface 1.1 概念 接口是一个纯粹的抽象类&#xff08;接口里面所有的方法都是抽象方法&#xff09; 接口就是一个规范(标准)&#xff0c;他没有提供任何是实现&#xff0c;具体的功能由实现接口的子类去实现。 接口就是一个规范&#xff0c;可插拔&#xff08;可以被…