MIPS微程序CPU设计(Logism)
【设计任务】
- 掌握多周期MIPS CPU中各条指令(8条指令)的数据通路;
- 掌握多周期MIPS CPU(8条指令和)微程序控制器设计的基本原理;
- 能利用相关原理在Logisim平台中设计实现8条指令的多周期微程序MIPS CPU,包括微程序地址转移电路,微程序控制器设计,微程序代码设计,CPU数据通路电路设计。
【设计方法和电路工作原理】
- 核心指令集8条 (可实现内存区域冒泡排序)
2.指令的划分
3.电路实现指令译码逻辑
R型指令:ADD、SLT
I型指令:LW、SW、BEQ、BNE、ADDI
SysCall指令
-
ALU控制器逻辑
当AluOP=5时,ALU执行加法;当AluOP=6,ALU执行减法;当AluOP=(0B)H时执行有符号数比较。 -
构建多周期MIPS CPU数据通路
电路图:
在MIPS多周期CPU(微程序)子电路中,利用如下组件构建CPU数据通路 PC、MEM、IR、DR、RegFile、ALU、Controller。
- 实现微程序地址转移逻辑
由指令状态变换图可得
R_Type的微程序入口地址为7;ADDI的微程序入口地址为11
LW的微程序入口地址为2;SW的微程序入口地址为5
BEQ的微程序入口地址为7;BNE的微程序入口地址为10
SYSCALL的微程序入口地址为13
利用微程序地址转移逻辑自动生成自动生成逻辑表达式
将表达式输入至组合逻辑电路分析表达式中,即可自动生成微程序地址转移逻辑。
7.根据状态图构建微程序
- 多周期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,由于下一条指令由微程序入口决定。
- R型指令执行状态周期T3~T4
R1阶段 AluControl=10即运算方式由Func决定,AluSrcA=1表示ScrA取R1的值。下一微指令是R2,即下址为1000.
R2阶段写回寄存器RD,RegDst=1写回选中RD,同时RegWrite=1写入寄存器。回到取指令,即下址为0000.
- LW指令执行状态周期T3~T5
同理可得
- Beq指令执行状态周期T3
同理可得
得到总的微指令
将微指令对应的十六进制复制到控制存储器
输入信号
1.指令字Opcode,Func字段(12位)
2. 时钟信号、复位信号
输出信号
1.多路选择器选择信号
2.内存访问控制信号
3.寄存器写使能信号
4. 运算器控制信号、指令译码信号
构建多周期MIPS CPU
运行程序:
实现冒泡排序
总电路图: