计算机组成原理 微程序控制器组成实验

一、实验目的

1.掌握时序产生器的组成原理。

2.掌握微程序控制器的组成原理。

3.掌握微指令格式的化简和归并。

二、实验任务

1、按实验要求连接实验台的数码开关K0-K5、按钮开关、时钟信号源和微程序控制器。注意:本次试验只做微程序控制器本身的实验,故微程序控制器输出的微指令信号与执行部件(数据通路)的连线暂不连接。连线完成后应仔细检查一遍,然后才可加上电源。

2、观察时序信号

用双踪示波器观测时序产生器的输入输出信号:MF,W1-W4,T1-T4。比较相位关系,画出其波形,并标注测量所得的脉冲宽度。观察时须将TJ1接低电平,DB、DZ、DP开关均置位0状态,然后按QD按钮,则连续产生T1、T2、T3、T4、W1、W2、W3、W4。了解启停控制信号的功能,并熟练地使用连接这些控制信号的按钮或开关。

3、熟习微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列与表下。三种控制台指令的功能由SWC、SWB、SWA三个二进制开关状态来指定(KRD=001B,KWE=010B,PR=000B)。

微指令地址

微指令编码

微指令地址

微指令编码

00H

00H、05H、COH、02H、07H

3CH

04H、05H、C8H、00H、3DH

07H

00H、05H、41H、20H、05H

17H

00H、05H、44H、00H、3FH

27H

04H、05H、44H、00H、3DH

3FH

04H、09H、C0H、 00H、3EH

3DH

00H、01H、40H、00H、3CH

3EH

00H、05H、C8H、00H、3FH

单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况,并与上表数据对照。用连续方式执行KWE和KRD (将TJ1 接地),画出u_A0(28C64的地址A0,U12 的引脚10)信号波形,作出解释。
单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况,并与上表数据对照。用连续方式执行KWE和KRD (将TJ1接地),画出u_A0(28C64的地址A0,U12 的引脚10)信号波形,作出解释。
(4)用P3和SWC、SWB、SWA的状态组合,观察验证三种控制台指令KRD、KWE、PR微地址转移逻辑功能的实现。
(5)熟习05H、10H 两条微指令的功能和P2测试的状态条件(IR4- -IR7), 用二进制开关设置IR7-IR4的不同状态,观察ADD至STP九条机器指令微地址转移逻辑功能的实现。(用逻辑笔测试有关逻辑电路的电平,分别做出测试记录,自行设计表格。)
(6)设置IR7-IR4的不同组合,用单拍方式执行ADD至STP九条机器指令微程序,用微地址和P字段指示灯跟踪微程序转移和执行情况。用逻辑笔测试小插座上输出的微命令信号,记录ADD、SUB、LDA、 STA四条机器指令的微命令信号,自行设计表格。

三、实验工具

模拟程序

四、实验步骤及实验结果

(1)连线

  

(2)观察时序信号波形


令K5(TJI)=0,置DP=0,DZ=0,DB=0。按QD按钮,则时序部分开始不停止的运行,直到按CLR#按钮为止。用双踪示波器观察MF、TI、T2、T3、T4、WI、W2、W3、W4信号。观察的方法是同时观察两路信号,以便比较相位。可按下述顺序进行: MP和Tl,T1和T2,T2和T3,T3和T4,T1和W1,W1和W2,W2和W3,W3和W4。根据观察的结果,可画出波形图。MF的周期为1000毫秒,占空比为50%。


(3)控制台操作微指令编码测试和KWRD、KRD连续运行时的μ_A0波形


1.控制台操作微指令编码测试


控制台微代码在28C64的D0--D7输出,D0是最低位,D7是最高位,CM0是最低字节,CM4是最高字节。D0--D7对应于28C64的引脚11、12、13、15、16、17、18、19。
令K5(TJI)=0,置DP=1,DZ=0,DB=0,使实验系统处于单拍状态。置SWC=0、SWB=0、SWA=1,实验系统处于KRD工作模式。按CLR#按钮,使实验系统处于初始状态,微地址u_A5-μ_A0为00H,测得的微码是00H 05H COH 02H 07H。

按一次QD按钮,微地址μ_A5-μ_A0为17H,测得的微码00H、05H、44H、00H、3FH。

按一次QD按钮,微地址μ_A5-μ_A0为3FH,测得的微码是04H 09H C0H 00H 3EH。

按一次QD按钮,微地址μ_A5-μ_A0为3EH,测得的微码是00H 05H C8H 00H 3FH。

按一次QD按钮,微地址μ_A5-μ_A0为3FH。由于微地址又返回3FH,停止测试。


令K5(TJI)=0,置DP=1,DZ=0,DB=0,使实验系统处于单拍状态。置SWC=0、SWB=1、SWA=0,实验系统处于KWE工作模式。按CLR#按钮,使实验系统处于初始状态,微地址μ_A5-μ_A0为00H。

按一次QD按钮,微地址μ_A5-μ_A0为27H,测得的微码是04H、05H、44H、00H、3DH。

按一次QD按钮,微地址μ_A5-μ_A0为3DH,测得的微码是00H、01H、40H、00H、3CH。

按-次QD按钮,微地址μ_A5-μA0为3CH,测得的微码是04H、05H、C8H、00H、3DH。

按一次QD按钮,微地址μ_A5-μ_A0为3CH。由于微地址又返回3CH,停止测试。


令K5 (TJI)=0,置DP=1,DZ=0,DB=0,使实验系统处于单拍状态。置SWC=0、SWB=0、SWA=0,实验系统处于PR工作模式。按CLR#按钮,使实验系统处于初始状态,微地址μ_A5-μ_AO为00H。

按一次QD按钮,微地址μ_A5-μ_AO为07H,测得的微码是00H、05H、41H、20H、05H。

按一次QD按钮,微地址μA5-μA0为05H,测得的微码是00H 05H 0C 4H 91H 10H。

由于以后的微码与机器指令有关,停止测试。

2. KWE、KRD连续运行时的μ_A0波形

令K5(TJI)=0,置DP=0,DZ=0,DB=0,使实验系统处于连续状态。置SWC=0、SWB=1、SWA= 0,实验系统处于KWE工作模式。按CLR#按钮,使实验系统处于初始状态。按一次QD按钮,使系统连续运行。用示波器测量μ_A0 (U12 的引脚11)的波形,得到波形如下:

  虽然完成KWE控制台功能需要27H、3DH、3CH三条微指令,但是在连续运行时,循环的只是3DH、3CH 2条微指令。

令K5 (TJI)= 0,置DP=0, DZ=0, DB =0,使实验系统处于连续状态。置SWC= 0、SWB =0、SWA = 1,实验系统处于KRD工作模式。按CLR#按钮,使实验系统处于初始状态。按一次QD按钮,使系统连续运行。用示波器测量μ_A0 (U12的引脚11)的波形,得到波形与KWE时的波形相同,原因也类似。

(4)用P3和SWB、SWA 的状态组合,观察验证三种控制台指令KWE、KRD、PR微地址转移逻辑功能的实现

将时序电路的输入TJI与控制存储器的输出TJ连接,置DP= 1, DB=0,DZ= 0。选择SWC= 0、SWB= 0、SWA= 1,按QD按钮,验证KRD的微地址转移功能

选择SWC = 0、SWB= 1、 SWA =0, 按QD按钮,验证KWE的微地址转移功能。

(5)熟习 05H、10H两条微指令的功能和P2测试的状态条件(IR4- IR7),用二进制开关设置IR7-IR4的不同状态,观察ADD至STP九条机器指令微地址转移逻辑功能的实现

1. 05H微指令的功能是根据程序计数器PC从存储器取指令,送往指令寄存器IR, 同时进行PC+1的操作。05H 微指令的下一微指令地址是10H。10H只是一个表面的下一个微地址,由于该微指令中P2 = 1,因此实际的微指令地址的低4位要根据IR7-IR4 确定,实际微地址为10H +IR7 IR6 IR5 IR4。

2.置DP= 1,DZ=0, DB =0,.使实验系统处于单拍状态。选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =0, K3 (IR6) =0, K2 (IR5)=0,K1(IR4)=0,相当于ADD指令的操作码。按一次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为10H。

3. 置DP= 1, DZ= 0, DB =0,使实验系统处于单拍状态。选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =0, K3 (IR6)=0, K2 (IR5)=0,K1(IR4)=1,相当于SUB指令的操作码。按一次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为11H。

4. 置DP= 1,DZ= 0,DB =0,使实验系统处于单拍状态。选择SWC=0、SWB= 0、SWA= 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =0, K3 (IR6)=0, K2 (IR5 )=1,K1(IR4)=0,相当于MUL指令的操作码。按一次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为12H。

5. 置DP=1, DZ= 0,DB =0,使实验系统处于单拍状态。选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =0, K3 (IR6)=0, K2 (IR5)=1,K1(IR4)=1,相当于AND指令的操作码。按一次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为13H。

6. 置DP = 1, DZ = 0,DB =0,使实验系统处于单拍状态。选择SWC= 0、SWB=0、SWA= 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =0, K3 (IR6)=1, K2 (IR5)= 0, K1 (IR4) = 0,相当于STA指令的操作码。按一次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为14H。

7.置DP = 1, DZ = 0,DB =0, 使实验系统处于单拍状态。选择SWC= 0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =0, K3 (IR6)=1, K2 (IR5)=0,K1(IR4)=1,相当于LDA指令的操作码。按--次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为15H。

8.直DP=1,DZ=0.DB=0,使实验系统处于单拍状念。选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =0, K3 (IR6)=1, K2 (IR5)= 1, K1 (IR4) = 0,相当于STP指令的操作码。按一次QD按钮,微地址变为07H。

按-次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为16H。

9. 置DP= 1, DZ= 0, DB =0,使实验系统处于单拍状态。选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =1, K3 (IR6) =0, K2 (IR5)=0,K1(IR4)=0,相当于JMP指令的操作码。按一次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为18H。

10. 置DP = 1, DZ = 0, DB =0,使实验系统处于单拍状态。选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。令K4 (IR7) =1,K3 (IR6) =0, K2 (IR5)=0,K1 (IR4) = 1,相当于JC指令的操作码。按一次QD按钮,微地址变为07H。

按一次QD按钮,微地址变为05H。

按一次QD按钮,微地址变为19H。

(6)设置IR7-IR4的不同组合,用单拍方式执行ADD至STP九条机器指令微程序,记录ADD、SUB、LDA、 STA四条机器指令的微命令信号

操作的方法与(5) 类似,只是需纪录ADD、SUB、 LDA、STA 四条机器指令的微命令信号。

五、个人总结

单拍是指实验在基本时序图中一个步骤显示,如果DP置0,则在基本时序图中是连续的,uA5-uA0指示灯会不断闪烁,不便得出实验数据。右边TJ-S1换成二进制为CM4中的数值,S0-RS_BUS#换成二进制为CM3中的数值,SW_BUS#-M4换成二进制为CM2中的数值,PC_INC-P2换成二进制为CM1中的数值,P1-uA0换成二进制为CM0中的数值。二进制换算成十六进制的方法是前四位读一个数,后四位读一个数。

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

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

相关文章

安科瑞ANET智能物联网网关 通信管理机-安科瑞 蒋静

概述 本系列智能通信管理机是一款采用嵌入式硬件计算机平台,具有多个下行通信接口及一个或者多个上行网络接口,用于将一个目标区域内所有的智能监控/ 保护装置的通信数据整理汇总后,实时上传主站系统,完成遥信、遥测等能源数据采集…

基于Java+Spring Boot+MySQL的二手手机管理系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

【项目自我反思之vue的组件通信】

为什么子组件不能通过props实时接收父组件修改后动态变化的值 一、现象二、可能的原因1.响应式系统的限制2.异步更新队列3.父组件和子组件的生命周期4.子组件内部对 props 的处理 三、组件通信的几种场景(解决方案)1.子组件想修改父组件的数据2.子组件传…

Rust GUI学习 小部件系列(一):如何在iced窗口中使用颜色选择器colorpicker

注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 前言: 本系列是iced的小部件应用介绍系列,主要介绍iced、iced_aw两个库中涉及的各种小部件的使用及实例演示。 本文所介绍的是co…

Redis入门到入坑(一)

Redis入门到入坑(一) Redis缓存入门简介Redis初始操作Redis数据存储操作 Redis常用数据类型简介String类型操作实践Hash类型应用实践List类型应用实践Set类型应用实践 Java中操作redis准备工作Jedis的应用快速入门实现RedisTemplate应用项目工程实践 Red…

嵌入式安全性基础知识-计算机系统安全知识+信息安全基础+网络安全协议-嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。 本章的主要内容见下图: 1、计算机系统系统…

设计模式——2_6 观察者(Observer)

这世界没有一件事情是虚空而生的,站在光里,背后就会有阴影,这深夜里一片寂静,是因为你还没有听见声音 ——马良《坦白书》 文章目录 定义图纸一个例子:在RPG游戏里应对善变的天气定义元素Area & Weather 给 Area 和…

Linux--Ubuntu安装【保姆级教程】

Linux操作系统时程序员必须要学的操作系统。接下来我们就来看一下Linux操作系统是如何安装的 我们在 Vmware 虚拟机中安装 linux 系统,所以需要先安装 vmware 软件,然后再 安装 Linux 系统。 一.所需安装文件: Vmware 下载地址(现在最新版的…

蓝桥刷题--N皇后和最近公共祖先

1.N皇后 #include<iostream> using namespace std;const int N 12; int vis[N][N], n, ans;void dfs(int dep) {// 在这个搜索中dep表示行&#xff0c;i表示列// 1 搜索出口if(dep n 1){ans;return;}// 2 继续搜索for(int i 1; i < n; i){// 2.1 排除非法情况if(v…

SQL-Labs靶场“34-35”关通关教程

君衍. 一、34关 POST单引号宽字节注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入 二、35关 GET数字型报错注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入 SQL-Labs靶场通关教程&#xff1a; SQL注入第一课 SQL注入思路基础 SQL无列…

TWT:一个让WiFi6更省电的特性

更多精彩内容在公众号。 再wifi6前&#xff0c;已经有了不少节能特性&#xff1a;PSM,PSMP,APSD。在一个 Beacon 周期内&#xff0c;终端 会观察 AP 是否会向其发送数据&#xff0c;如果是&#xff0c;那么终端就保持等待&#xff0c;直到接收完成后&#xff0c; 才会进入休眠模…

【C语言】动态内存分配

1、为什么要有动态内存分配 不管是C还是C中都会大量的使用&#xff0c;使用C/C实现数据结构的时候&#xff0c;也会使用动态内存管理。 我们已经掌握的内存开辟方式有&#xff1a; int val 20; //在栈空间上开辟四个字节 char arr[10] { 0 }; //在栈空间…

Yocto学习笔记1-下载与首次编译

Yocto学习笔记1-下载与首次编译 1、基础环境介绍2、注意点3、安装依赖3.1 yocto常规系统构建所需依赖库&#xff08;较全&#xff09;3.2 龙芯适配时的最小依赖库&#xff08;最小&#xff09; 4、下载4.1 通过git克隆4.2 查看所有远程分支4.3 签出一个长期支持的稳定版本4.4 查…

leetcode 15.三数之和 JAVA 双指针法

题目 思路 双指针法 去重 为啥要去重呢&#xff1f;因为题目中说了要返回不重复的三元组。拿示例1来看&#xff0c;&#xff08;-1&#xff0c;0&#xff0c;1&#xff09;和&#xff08;0&#xff0c;1&#xff0c;-1&#xff09;虽然都等于0&#xff0c;但其实它们里面的数…

【python_往企业微信群中发送文件】

python_往企业微信群中发送文件 这个是用企业微信群机器人的功能&#xff0c;没有用到后台应用。群机器人 #-*- coding:utf-8-* import requests#类型&#xff1a;voice,file file_type"file" file_path"D:\desktop\不过.jpg" webhookkey"xxxx"#…

ShuffleNet模型详解

ShuffleNet论文地址&#xff1a;1707.01083.pdf (arxiv.org) ShuffleNetv2论文地址&#xff1a;1807.11164.pdf (arxiv.org) ShuffleNetv1 简介 ShuffleNet 是专门为计算能力非常有限的移动设备设计的。架构采用了逐点分组卷积和通道shuffle两种新的运算&#xff0c;在保持…

【异或】Leetcode 136. 只出现一次的数字

【异或】Leetcode 136. 只出现一次的数字 解法1 只需要全部异或一下&#xff0c;剩下的就是剩下的元素 ---------------&#x1f388;&#x1f388;题目链接 136. 只出现一次的数字&#x1f388;&#x1f388;------------------- 解法1 只需要全部异或一下&#xff0c;剩下的…

Fast-R-CNN论文笔记

目标检测之Fast R-CNN论文精讲&#xff0c;Fast RCNN_哔哩哔哩_bilibili 一 引言 1.1 R-CNN和SPPNet缺点 &#x1f600;R-CNN Training is a multi-stage pipeline 多阶段检测器&#xff08;两阶段和一阶段检测器&#xff09; 1️⃣首先训练了一个cnn用来提取候选区域的特征…

深入浅出Reactor和Proactor模式

Reactor模式和Proactor模式是两种常见的设计模式&#xff0c;用于处理事件驱动的并发编程。它们在处理IO操作时有着不同的工作方式和特点。 对于到来的IO事件&#xff08;或是其他的信号/定时事件&#xff09;&#xff0c;又有两种事件处理模式&#xff1a; Reactor模式&…

jupyter | 查询/列出available kernels

jupyter kernelspec list 添加kernel python -m ipykernel install --user --name 虚拟环境名 --display-name 在jupyter中显示的环境名称 移除kernel jupyter kernelspec remove 环境名