基于proteus的一个微程序CPU

本文详细介绍了如何基于Proteus设计一个微程序CPU,包括指令集定义、CPU架构、微程序控制器设计、取指与中断处理等关键步骤。文章还探讨了微指令结构、微地址转移、中断处理流程,并列举了各种运算和控制指令的微程序流程图。此外,还提到了CPU的存储器操作、I/O操作、跳转指令以及算术逻辑运算指令的实现。
摘要由CSDN通过智能技术生成

指令集与CPU架构

本文将设计一个微程序CPU,微程序的原理请参见前述博客基于proteus的CPU控制器设计(微程序版)。设计CPU之初,首先要定义一套较完备的机器指令集,该指令集应满足用户所需的全部功能,包括程序结构(顺序、循环及分支),算术逻辑运算,IO外设控制等等。
本文所述CPU的指令集如下1所示,指令格式定义如下:指令OP码为指令第一字节的高四位,即指令寄存器IR的{I7,I6,I5,I4}位。而RA和RB是指由{I3,I2}和{I1,I0}定义的逻辑寄存器,RA或RB都可以选择四个物理寄存器(R0~R3)中的任何一个。

表1. 微程序CPU指令集
在这里插入图片描述
如下图1所示,微程序CPU微程序控制器(CONTROLLER)、时序电路(CLOCK)及数据通路组成。数据通路包括:程序存储器ROM、数据存储器RAM及通用寄存器R0~R3;IO接口;算术逻辑运算器(74LS181)及附带移位寄存器(74LS194);程序计数器(PC)、ALU运算结果标志位寄存器(PSW)及其断点寄存器(BP_PC、BP_PSW)。数据通路的所有部件都共同挂在一条8位系统总线BUS上。

图1. 微程序CPU电路图
微程序CPU电路图
微程序CPU电路图1的架构如下图2所示,图2右侧是时序电路(CLOCK)和微程序控制器(CONTROLLER),左侧则是由8位系统总线BUS串联起来的数据通路,挂在总线BUS上的CPU部件包括:存储器ROM/RAM及其地址寄存器AR;指令寄存器IR;通用寄存器R0~R3;算术逻辑运算器ALU及其附属的缓存器DA(兼作移位功能)和DB;外设I/O接口;程序计数器PC及其断点寄存器(BP_PC);中断向量地址(IVA)。此外,数据通路还包括右边的运算结果标志位寄存器(PSW)及其断点寄存器(BP_PSW)。

图2. 微程序CPU架构
在这里插入图片描述

微程序控制器

微程序CPU的微指令结构如下图3所示,微指令字长24位,其中1-5位是下一条微指令地址,即下址字段[uA4, uA0];6-8位是判断字段P1~P3;9-24位则是微命令字段,对应数据通路的所有微操作信号:其中置1的位表示执行相应的微操作;反之,置0的位则是不执行相应的微操作。

图3. 微指令结构图
微指令结构图
其中,微指令的15-13位和12-10位采用字段编译法(3-8译码),分别对应源部件输出到总线BUS和总线BUS打入目标部件的微操作信号,如下表2所示:

表2. 微指令字段编译列表
在这里插入图片描述
此外,由于微程序控制器数据通路相互独立,两者操作可以并行执行,微程序CPU的微指令周期只需要T1和T2两个状态,微指令状态机循环输出节拍序列{T1,T2},使状态顺序转移:T1→T2→T1→…

表3. 微指令状态机
在这里插入图片描述
如下图4所示, 24位微指令存储器MROM1-3共存放了32条微指令,所以微地址是MABUS_4-0。当信号ON或T1节拍上升沿&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值