实验(三):微程序计数器uPC实验

一、实验内容与目的

        实验要求:

        利用 CP226 实验仪上的 K16..K23 开关做为 DBUS 的数据,其它开关做为控制信号,实现微程序计数器 uPC 的写入和加1功能。

        实验目的:

1、了解模型机中微程序的基本概念。

2、了解 uPC 的结构、工作原理及其控制方法。

3、了解模型机中程序计数器PC 的工作原理及其控制方法。

4、了解程序执行过程中顺序和跳转指令的实现方法。

二、实验步骤

2.1 实验一:微程序计数器 uPC 实验

实验电路:

74HC161 是一片带预置的 4 位二进制记数器。功能如下:

当 RST = 0 时,记数器被清 0

当 IREN = 0 时,在CK 的上升沿,预置数据被打入记数器

当 IREN = 1 时,在CK 的上升沿,记数器加一

TC 为进位,当记数到 F(1111)时,TC=1;CEP,CET 为记数使能,当 CEP,CET=1 时,记数器工作,CEP,CET=0 时,记数器保持原记数值

图1 uPC 原理图

图2 uPC 工作波形图

在 CP226 中,指令 IBUS[7:0]的高六位被接到 uPC 预置的高六位,uPC 预置的低两位被置为 0。一条指令最多可有四条微指令。

微程序初始地址为复位地址 00,微程序入口地址由指令码产生,微程序下一地址有计数器产生。

连接线表:

连接信号孔接入孔作用状态说明
1J2 座J3 座将 K23-K16 接入 DBU[7:0]实验模式:手动
2IRENK0预置 uPC低电平有效
3EMENK1EM 存储器工作使能低电平有效
4EMWRK2EM 存储器写使能低电平有效
5EMRDK3EM 存储器读使能低电平有效
6CK已连uPC 工作脉冲上升沿打入

实验 1:uPC 加一实验

置控制信号为:

K3(EMRD)K2(EMWR)K1(EMEN)K0(IREN)
1111

按一次 STEP 脉冲键,CK 产生一个上升沿,数据 uPC 被加一。

实验 2:uPC 打入实验

二进制开关K23-K16 用于 DBUS[7:0]的数据输入,置数据 12H

K23K22K21K20K19K18K17K16
00010010

置控制信号为:

K3(EMRD)K2(EMWR)K1(EMEN)K0(IREN)
1000

当 EMWR,EMEN=0 时,数据总线(DBUS)上的数据被送到指令总线(IBUS)上。按住 STEP 脉冲键,CK 由高变低,这时寄存器 uPC 的黄色预置指示灯亮,表明 uPC被预置。放开STEP 键,CK 由低变高,产生一个上升沿,数据 10H 被写入 uPC 寄存器。

2.2 实验二:PC 实验

实验电路:

PC 是由两片 74HC161 构成的八位带预置记数器,预置数据来自数据总线。记数器的输出通过 74HC245(PCOE)送到地址总线。PC 值还可以通过 74HC245(PCOE_D)送回数据总线。

图3 PC 原理图

在 CPP226 中,PC+1 由PCOE 取反产生。

当 RST = 0 时,PC 记数器被清 0

当 LDPC = 0 时,在CK 的上升沿,预置数据被打入PC 记数器

当PC+1 = 1 时,在CK 的上升沿,PC 记数器加一

当PCOE = 0 时,PC 值送地址总线

图4 PC 打入控制原理图

PC 打入控制电路由一片 74HC151 八选一构成(isp1016 实现)。

ELPIR3IR2CyZLDPC
1XXXX1
0001X0
0000X1
001X10
001X01
01XXX0

当 ELP=1 时,LDPC=1,不允许PC 被预置

当 ELP=0 时,LDPC 由 IR3,IR2,Cy,Z 确定

当 IR3 IR2 = 1 X 时,LDPC=0,PC 被预置

当 IR3 IR2 = 0 0 时,LDPC=非 Cy,当 Cy=1 时,PC 被预置

当 IR3 IR2 = 0 1 时,LDPC=非 Z,当 Z=1 时,PC 被预置

连接线表

连接信号孔接入孔作用状态说明
1J2 座J3 座将 K23-K16 接入 DBU[7:0]实验模式:手动
2PCOEK5PC 输出到地址总线低电平有效
3JIR3K4预置选择 1
4JIR2K3预置选择 0
5JRZK2Z 标志输入
6JRCK1C 标志输入
7ELPK0预置允许低电平有效
8CK已连PC 工作脉冲上升沿打入

实验 1:PC 加一实验

置控制信号为:

K5(PCOE)K0(ELP)
01

按一次 STEP 脉冲键,CK 产生一个上升沿,数据PC 被加一。

实验 2:PC 打入实验

二进制开关K23-K16 用于 DBUS[7:0]的数据输入,置数据 12H

K23K22K21K20K19K18K17K16
00010010

置控制信号为:

IR3 (K4)IR2 (K3)JRZ (K2)JRC (K1)ELP (K0)LDPC黄色PC 预置指示灯
XXXX11
00X100
00X001
011X00
010X01
1XXX00

每置控制信号后,按一下STEP 键,观察PC 的变化。

三、实验过程分析

2.1 实验一:微程序计数器 uPC 实验

实验 1uPC 加一实验

图5 CK 产生一个上升沿,数据 uPC +1

实验 2uPC 打入实验

当 EMWR,EMEN=0 时,数据总线(DBUS)上的数据被送到指令总线(IBUS)上。按住 STEP 脉冲键,CK 由高变低,这时寄存器 uPC 的黄色预置指示灯亮,表明 uPC被预置。放开STEP 键,CK 由低变高,产生一个上升沿,数据 10H 被写入 uPC 寄存器。

图6 数据 10H 被写入 uPC 寄存器

2.2 实验二:PC 实验

实验 1uPC 加一实验

图7 CK 产生一个上升沿,数据PC 被+1

实验 2uPC 打入实验

图8 黄色PC 预置指示灯灭

图9 黄色PC 预置指示灯亮

图10 黄色PC 预置指示灯灭

图11 黄色PC 预置指示灯亮

图12黄色PC 预置指示灯灭

图13 黄色PC 预置指示灯亮

四、实验总结

本次实验通过使用CP226实验仪,旨在深入了解微程序计数器(uPC)和程序计数器(PC)的基本概念、工作原理及其控制方法,以及顺序和跳转指令在程序执行过程中的实现方法。通过实验,我们成功地实现了uPC的写入和加1功能,并使用开关模拟程序执行过程中的顺序和跳转指令。实验结果表明,我们的实验结果与理论分析基本相符,从而验证了微程序计数器和程序计数器的工作原理。

通过本次实验,我们深入理解了微程序计数器和程序计数器在计算机中的作用和使用方法,掌握了其基本结构和控制方法,加深了对顺序和跳转指令在程序执行过程中的实现方法的认识。实验过程中,我们遇到了某些困难和挑战,比如在实验过程中出现了一些bug,但是我们通过反复的实验和观察,最终成功地得到了正确的实验结果。

尽管本次实验取得了成功,但是我们也意识到实验中存在的局限性和不足之处。例如,实验过程中我们没有对微程序计数器和程序计数器的硬件实现进行深入的研究和探索,这可能导致我们的认识存在某些不足。此外,我们在实验过程中只使用了简单的微程序计数器和程序计数器进行实验,实际应用中的微程序计数器和程序计数器可能更加复杂。

总之,本次实验让我们更深入地了解了微程序计数器和程序计数器的基本原理和工作方式,增强了我们对计算机中指令执行的理解。在未来的学习和实践中,我们将继续探索更深入的计算机体系结构和编程相关的问题,不断提高自己的能力和水平。

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

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

相关文章

分支限界法(1)--旅行商问题

一、概述 有n个城市,旅行者要访问所有n个城市,最终回到起始点,假设起始点给定为1,城市间距离已知,求能够完成旅行的最短距离。题干如下图。 算法:分支限界法,使用队列进行bfs搜索。 二、代码 i…

代码随想录算法训练营第四十八天|121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

文档讲解:代码随想录 视频讲解:代码随想录B站账号 状态:看了视频题解和文章解析后做出来了 121. 买卖股票的最佳时机 class Solution:def maxProfit(self, prices: List[int]) -> int:if len(prices) 0:return 0dp [[0] * 2 for _ in r…

学习.NET验证模块FluentValidation的基本用法

开源博客项目Blog .NET中使用FluentValidation验证部分对象实例的属性值,本文学习FluentValidation模块的基本用法,后续再学习Blog .NET项目FluentValidation模块的用法。   FluentValidation模块支持Linq 表达式,同时支持链式操作&#xf…

Ubuntu20.04 安装微信 【优麒麟的镜像源方式安装】

缺点:是网页版本的嵌入,功能少。 推荐wine方式安装:Ubuntu20.04 安装微信 【wine方式安装】推荐 从优麒麟的镜像源安装原生微信 应用下载-优麒麟|Linux 开源操作系统 新建文件software.list sudo vi /etc/apt/sources.list.d/…

操作系统:进程(一)

进程的基本概念 一般的解释是:进程是程序的一个执行实例,是正在执行的程序。我们写的程序编译后是一段二进制的文件。启动的时候加载到系统里面执行,就是以进程的形式执行。也就是说,我们编译后的可执行程序是一个静态的概念&…

【数据结构】树与二叉树(二十):树获取大儿子、大兄弟结点的算法(GFC、GNB)

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语 5.2 二叉树5.3 树5.3.1 树的存储结构1. 理论基础2. 典型实例3. Father链接结构4. 儿子链表链接结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法1. 获取大儿子结点的算法(GFC)…

为什么软件公司很少用Python开发Web项目?

实际上,Python在Web开发方面有着广泛的应用,许多软件公司也确实使用Python来开发Web项目。 Python拥有诸如Django、Flask等流行的Web框架,这些框架使得开发者能够迅速、高效地开发出Web应用。 然而,Python在Web开发中的使用可能会…

利用 Pandoc + ChatGPT 优雅地润色论文,并保持 Word 公式格式:Pandoc将Word和LaTeX文件互相转化

论文润色完美解决方案:Pandoc 与 ChatGPT 的强强联合 写在最前面其他说明 一、通过 Pandoc 将 Word 转换为 LaTeX 的完整指南步骤 1: 安装 PandocWindows:macOS:Linux: 步骤 2: 准备 Word 文档步骤 3: 转换文档步骤 4: 检查并调整输出步骤 5: 编译 LaTeX 文档总结 二…

图新地球地图导入操作步骤

1、下载图源,如下: 2、将其全部复制或部分复制,然后回到桌面,打开文件所在位置,如下: 3、将复制的数据粘贴到文件夹下,具体如下: 4、复制到路径如下: 5、复制结果如下&am…

应用场景丨迭代市政综合管廊监测系统建设

市政综合管廊是指在城市地下建造的隧道空间,将市政、电力、通讯、燃气、给排水等各种管线集于一体,实施统一规划、设计、建设和管理。综合管廊有利于解决反复开挖路面、架空线网密集、管线事故频发等问题,是保障城市运行的重要基础设施和“生…

OpenGL 坐标投影与反投影(Qt)

文章目录 一、简介1.1投影1.2反投影二、应用代码三、实现效果参考资料一、简介 在学习OpenGL一段时间之后,我们都会了解坐标的转换过程,如下图所示: 1.1投影 正如图中所述,OpenGL将一个3D坐标投影到一个2D空间主要有以下几个步骤,这也是我们比较熟知的几个步骤: 现实局部…

ElasticSearch快速入门

一、全文检索 1、什么是全文检索 全文索引是一种通过对文本内容进行全面索引和搜索的技术。它可以快速的在大量文本数据中查找包含特定关键词或短语的文档,并返回相关的搜索结果。 全文检索广泛应用于各种信息管理系统和应用中,如搜索引擎、文档管理系…