实验(三):微程序计数器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.mfbz.cn/a/163142.html

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

相关文章

windows nodejs 15.0.0下载安装

下载 Node v15.0.0 (Current) | Node.js (nodejs.org) 下载地址 https://nodejs.org/dist/v15.0.0/node-v15.0.0-x64.msi 安装 双击运行 等待安装完成 确认安装成功 管理员运行cmd 查看版本号

微信(小程序开发): 解决播放音乐没有声音的情况 代码不报错的情况下依旧没有声音的解决方案

解决无声的问题 在此之前,确保代码能够正常执行哈!发这个其实没什么,就是有些人光写代码不调试出现了这个问题 其实解决方法特别简单 第一步: 打开项目后,点击三个点,然后选择模拟操作 第二步&#xff…

AIGC 是通向 AGI 的那条路吗?

AIGC 是通向 AGI 的那条路吗? 目录 一、背景知识 1.1、AGI(人工通用智能) 1.1.1、概念定义 1.1.2、通用人工智能特质 1.1.3、通用人工智能需要掌握能力 1.2、AIGC 二、AIGC 是通向 AGI 的那条路吗? 三、当前实现真正的 A…

python趣味编程-5分钟实现一个打字速度测试(含源码、步骤讲解)

Python速度打字测试是用 Python 编程语言编写的,速度打字测试 Python项目理念,我们将构建一个令人兴奋的项目,通过它您可以 检查 甚至 提高 您的打字速度。 为了创建图形用户界面(GUI),我们将使用 用于处理图形的pygame库。 Python 打字速度测试有利于学生或初学者提高…

基于动物迁徙算法优化概率神经网络PNN的分类预测 - 附代码

基于动物迁徙算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于动物迁徙算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于动物迁徙优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

问卷工具价格一览:合理定价,满足您的预算需求

在市场调研、市场营销和客户反馈收集等方面,问卷调查是一项重要而有效的工具。而在众多的问卷工具中,Zoho Survey以其丰富的功能和灵活的定价模式而备受关注。Zoho Survey的定价如何?今天我们来聊一聊。 Zoho Survey提供了多种定价方案&…

JRC Monthly Water History, v1.4数据集

简介: JRC Monthly Water History产品,是利用1984至2020年获取的landsat5、landsat7和landsat8的卫星影像,生成的一套30米分辨率的全球地表水覆盖的月度地表水监测地图集。该数据集共有442景数据,包含1984年3月至2020年12月间的月…

【心得】PHP的文件上传个人笔记

目录 1 php的文件上传绕过 黑名单绕过 2 php文件上传的00截断 3 iconv字符转换异常后造成了字符截断 4 文件后缀是白名单的时候的绕过 web服务器的解析漏洞绕过 5.高级文件上传绕过 1 .htaccess nginx.htaccess 2 服务端内容检测 3 配合伪协议来绕过 4.配合日志包含绕…

云课五分钟-0ALinux文件系统及权限-查询命令如何使用

前篇: 云课五分钟-09Linux基础命令实践-AI助力快速入门 视频: 云课五分钟-0ALinux文件系统及权限-查询命令如何使用 文本: Linux文件系统及权限示例教程(Ubuntu) 一、Linux文件系统基础 在Linux中,一切…

〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

WordPress主题WoodMart v7.3.2 WooCommerce主题和谐汉化版下载

WordPress主题WoodMart v7.3.2 WooCommerce主题和谐汉化版下载 WoodMart是一款出色的WooCommerce商店主题,它不仅提供强大的电子商务功能,还与流行的Elementor页面编辑器插件完美兼容。 主题文件在WoodMart Theme/woodmart.7.3.2.zip,核心在P…

【SQL server】 表结构的约束和维护

表结构的约束和维护 修改表结构 (1)添加列 (2)删除列 (3)修改列alter table 表名 add 新列名 数据类型给员工表添加一列邮箱 alter table People add PeopleMail varchar(200)删除列 alter table People drop column PeopleMain修改列 alter table 表名 alter column 列名 数据…

基于海洋捕食者算法优化概率神经网络PNN的分类预测 - 附代码

基于海洋捕食者算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于海洋捕食者算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于海洋捕食者优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针…

基于传统Session的登录

前言: 本人的一些简历上要回答的点。所以再此整理。 亮点: 使用Filter过滤器进行未登录状态自动跳转到登录页面的拦截,实现统一的权限管理。 1 登陆功能 1.1实体类和结果类 前端页面 约定 res.data.code为1时是登录成功。 数据库的empl…

DPAFNet:一种用于多模式脑肿瘤分割的残差双路径注意力融合卷积神经网络

DPAFNet: A Residual Dual-Path Attention-Fusion Convolutional Neural Network for Multimodal Brain Tumor Segmentation DPAFNet:一种用于多模式脑肿瘤分割的残差双路径注意力融合卷积神经网络背景贡献实验方法ulti-scale context feature extraction block&…

python趣味编程-5分钟实现一个益智数独游戏(含源码、步骤讲解)

Puzzle Game In Python是用 Python 编程语言Puzzle Game Code In Python编写的,有一个 4*4 的棋盘,有 15 个数字。然后将数字随机洗牌。 在本教程中,我将教您如何使用Python 创建记忆谜题游戏。 Python Puzzle Game游戏需要遵循以下步骤,首先是将图块数量移动到空的图块空…

浏览器黑暗模式插件

1.Opera浏览器本身黑暗主题 2.Chrome 3.Edge

【心得】PHP文件包含基本利用个人笔记

本文可能比较凌乱,快速总结保证自己看得懂(真.个人笔记) 文件包含的本质:代码复用、并行开发、模块化、增加移植性 include和eval的区别: include和eval一样,都不是函数,都是语言结构&#xf…

交通 | 神奇动物在哪里?Operations Research经典文章

论文作者:Robert G. Haight, Charles S. Revelle, Stephanie A. Snyder​ 论文原文:Robert G. Haight, Charles S. Revelle, Stephanie A. Snyder, (2000) An Integer Optimization Approach to a Probabilistic Reserve Site Selection Problem. Operat…

9 HDFS架构剖析

问题 100台服务器,存储空间单个200GB 20T 5T文件如何存储? 128MB一块 128MB81GB 1288*10241TB 5T数据分成的128MB的块数 8192 * 5 客户端(client)代表用户通过与namenode和datanode交互来访问整个文件系统。 HDFS集群有两类节点: 一个na…
最新文章