MIPS微程序CPU设计(Logism)

【设计任务】

  1. 掌握多周期MIPS CPU中各条指令(8条指令)的数据通路;
  2. 掌握多周期MIPS CPU(8条指令和)微程序控制器设计的基本原理;
  3. 能利用相关原理在Logisim平台中设计实现8条指令的多周期微程序MIPS CPU,包括微程序地址转移电路,微程序控制器设计,微程序代码设计,CPU数据通路电路设计。

【设计方法和电路工作原理】

  1. 核心指令集8条 (可实现内存区域冒泡排序)
    在这里插入图片描述

2.指令的划分
在这里插入图片描述

3.电路实现指令译码逻辑
R型指令:ADD、SLT
I型指令:LW、SW、BEQ、BNE、ADDI
SysCall指令
在这里插入图片描述

  1. ALU控制器逻辑
    当AluOP=5时,ALU执行加法;当AluOP=6,ALU执行减法;当AluOP=(0B)H时执行有符号数比较。
    在这里插入图片描述

  2. 构建多周期MIPS CPU数据通路
    在这里插入图片描述

电路图:
在MIPS多周期CPU(微程序)子电路中,利用如下组件构建CPU数据通路 PC、MEM、IR、DR、RegFile、ALU、Controller。
在这里插入图片描述

  1. 实现微程序地址转移逻辑
    在这里插入图片描述

由指令状态变换图可得
R_Type的微程序入口地址为7;ADDI的微程序入口地址为11
LW的微程序入口地址为2;SW的微程序入口地址为5
BEQ的微程序入口地址为7;BNE的微程序入口地址为10
SYSCALL的微程序入口地址为13
利用微程序地址转移逻辑自动生成自动生成逻辑表达式
在这里插入图片描述

将表达式输入至组合逻辑电路分析表达式中,即可自动生成微程序地址转移逻辑。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.根据状态图构建微程序
在这里插入图片描述

  1. 多周期MIPS取指令阶段T1
    在这里插入图片描述

此时,AluSrcB=01,即SrcB=4;IRWrite=1表示写入当前指令,PCWrite=1表示PC更新为PC+4;MemRead表示读取内存,P=0表示下一条指令按下址字段取指令,即下一阶段是译码阶段。译码指令的微指令地址为0001,即下址为0001
在这里插入图片描述

所以取指令对应的微指令为(13201)H
2) 多周期MIPS取指令阶段T2
在这里插入图片描述

此时P=1,由于下一条指令由微程序入口决定。
在这里插入图片描述

  1. R型指令执行状态周期T3~T4
    在这里插入图片描述
    在这里插入图片描述

R1阶段 AluControl=10即运算方式由Func决定,AluSrcA=1表示ScrA取R1的值。下一微指令是R2,即下址为1000.
R2阶段写回寄存器RD,RegDst=1写回选中RD,同时RegWrite=1写入寄存器。回到取指令,即下址为0000.

  1. LW指令执行状态周期T3~T5
    在这里插入图片描述

同理可得
在这里插入图片描述

  1. Beq指令执行状态周期T3
    在这里插入图片描述

同理可得

在这里插入图片描述

得到总的微指令
在这里插入图片描述

将微指令对应的十六进制复制到控制存储器

在这里插入图片描述

输入信号
1.指令字Opcode,Func字段(12位)
2. 时钟信号、复位信号
输出信号
1.多路选择器选择信号
2.内存访问控制信号
3.寄存器写使能信号
4. 运算器控制信号、指令译码信号
在这里插入图片描述

构建多周期MIPS CPU
在这里插入图片描述

运行程序:
在这里插入图片描述

实现冒泡排序

在这里插入图片描述

在这里插入图片描述
总电路图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 53
    点赞
  • 385
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Who_Am_I.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值