MIPS微程序CPU设计(Logism)

时间:2024-05-23 18:37:46

【设计任务】

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

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

  1. 核心指令集8条 (可实现内存区域冒泡排序)
    MIPS微程序CPU设计(Logism)

2.指令的划分
MIPS微程序CPU设计(Logism)

3.电路实现指令译码逻辑
R型指令:ADD、SLT
I型指令:LW、SW、BEQ、BNE、ADDI
SysCall指令
MIPS微程序CPU设计(Logism)

  1. ALU控制器逻辑
    当AluOP=5时,ALU执行加法;当AluOP=6,ALU执行减法;当AluOP=(0B)H时执行有符号数比较。
    MIPS微程序CPU设计(Logism)

  2. 构建多周期MIPS CPU数据通路
    MIPS微程序CPU设计(Logism)

电路图:
在MIPS多周期CPU(微程序)子电路中,利用如下组件构建CPU数据通路 PC、MEM、IR、DR、RegFile、ALU、Controller。
MIPS微程序CPU设计(Logism)

  1. 实现微程序地址转移逻辑
    MIPS微程序CPU设计(Logism)

由指令状态变换图可得
R_Type的微程序入口地址为7;ADDI的微程序入口地址为11
LW的微程序入口地址为2;SW的微程序入口地址为5
BEQ的微程序入口地址为7;BNE的微程序入口地址为10
SYSCALL的微程序入口地址为13
利用微程序地址转移逻辑自动生成自动生成逻辑表达式
MIPS微程序CPU设计(Logism)

将表达式输入至组合逻辑电路分析表达式中,即可自动生成微程序地址转移逻辑。
MIPS微程序CPU设计(Logism)

MIPS微程序CPU设计(Logism)
MIPS微程序CPU设计(Logism)

7.根据状态图构建微程序
MIPS微程序CPU设计(Logism)

  1. 多周期MIPS取指令阶段T1
    MIPS微程序CPU设计(Logism)

此时,AluSrcB=01,即SrcB=4;IRWrite=1表示写入当前指令,PCWrite=1表示PC更新为PC+4;MemRead表示读取内存,P=0表示下一条指令按下址字段取指令,即下一阶段是译码阶段。译码指令的微指令地址为0001,即下址为0001
MIPS微程序CPU设计(Logism)

所以取指令对应的微指令为(13201)H
2) 多周期MIPS取指令阶段T2
MIPS微程序CPU设计(Logism)

此时P=1,由于下一条指令由微程序入口决定。
MIPS微程序CPU设计(Logism)

  1. R型指令执行状态周期T3~T4
    MIPS微程序CPU设计(Logism)
    MIPS微程序CPU设计(Logism)

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

  1. LW指令执行状态周期T3~T5
    MIPS微程序CPU设计(Logism)

同理可得
MIPS微程序CPU设计(Logism)

  1. Beq指令执行状态周期T3
    MIPS微程序CPU设计(Logism)

同理可得

MIPS微程序CPU设计(Logism)

得到总的微指令
MIPS微程序CPU设计(Logism)

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

MIPS微程序CPU设计(Logism)

输入信号
1.指令字Opcode,Func字段(12位)
2. 时钟信号、复位信号
输出信号
1.多路选择器选择信号
2.内存访问控制信号
3.寄存器写使能信号
4. 运算器控制信号、指令译码信号
MIPS微程序CPU设计(Logism)

构建多周期MIPS CPU
MIPS微程序CPU设计(Logism)

运行程序:
MIPS微程序CPU设计(Logism)

实现冒泡排序

MIPS微程序CPU设计(Logism)

MIPS微程序CPU设计(Logism)
总电路图:
MIPS微程序CPU设计(Logism)
MIPS微程序CPU设计(Logism)
MIPS微程序CPU设计(Logism)
MIPS微程序CPU设计(Logism)
MIPS微程序CPU设计(Logism)