计算机组成原理 双端口存储器原理实验
2、令K0 (CEL#) =1,K1(LRW) = 1,K2 (CER) =0,K3(LDAR1) = 1,K4 (LDAR2) =0,K5 (SW_ BUS#)= 0,K6 (LDIR) = 0。3、令K0 (CEL#) = 1,K1(LRW) = 1, K2 (CER) =0,K3(LDAR1) =0,K4 (LDAR2) =1,K5 (SW_ BUS#)= 0,K6 (LDIR) =0。置S
一、实验目的
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,就可以获取那个地址存放的信息。
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)