• 实验(三):微程序计数器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,但是我们通过反复的实验和观察,最终成功地得到了正确的实验结果。

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

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

  • 相关阅读:
    【数据结构】优先级队列(堆)
    APC学习记录
    pytorch加载darknet权重文件
    前后端分离&vue简介
    一些感悟(随笔小记)
    linux-windows服务设置
    ELK8.8部署安装并配置xpark认证
    一个简单的HTML 个人网页
    The Record of Reminding myself
    基于nodemailer实现邮件发送
  • 原文地址:https://blog.csdn.net/qq_61228493/article/details/134485625