MIPS 指令译码器设计

关于 MIPS 体系

MIPS 体系结构 是20世纪80年代初发明的一款 RISC(精简指令系统计算机)体系架构。MIPS是一个双关语,它既是 Microcomputer without Interlocked Pipeline Stages 的缩写, 同时又是 Millions of Instructions Per Second 的缩写。相比 Intel x86 的 CISC (复杂指令系统计算机)架构, MIPS 是一种非常优雅,简洁,高效的 RISC 体系架构,非常适合于教学研究,我国的龙芯处理器就是基于MIPS指令系统的。最初MIPS是为32位系统设计的,后来又发展出了64位MIPS,但依然对32位模式向下兼容。

关于指令译码器

指令译码器(Instruction Decoder,ID) 是控制器中的主要部件之一。计算机能且只能执行“指令”。指令由操作码地址码组成。操作码表示要执行的操作性质,即执行什么操作,或做什么;地址码是操作码执行时的操作对象的地址。计算机执行一条指定的指令时,必须首先分析这条指令的操作码是什么,以决定操作的性质和方法,然后才能控制计算机其他各部件协同完成指令表达的功能。这个分析工作由指令译码器来完成。

实验目的:

理解指令译码的基本概念,能将32位MIPS指令字译码成不同的指令译码信号。

实验内容:

利用比较器等功能模块将32位MIPS 指令字译码生成 LW、SW、BEQ、SLT、ADDI、OtherInstr信号:
MIPS 指令译码器设计_第1张图片

信号 位宽 功能描述
IR 32 MIPS指令字IR
LW 1 当前指令为lw指令时输出为1
SW 1 当前指令为sw指令时输出为1
BEQ 1 当前指令为beq指令时输出为1
ADD 1 当前指令为addi指令时输出为1
SLT 1 当前指令为slt指令时输出为1
OtherInstr 1 当前指令为其他指令时输出为1

理解指令译码的基本概念,能将32位MIP指令字译码成不同的指令译码信号。

指令译码器是控制器核心功能部件,负责将指令字翻译成一根根的指令译码信号,每一根指令译码信号代表一条具体的指令,如上图中的 I1…Im 。

实验步骤

相关指令的规格通过参考MIPS英文指令手册进行查询。
MIPS 指令译码器设计_第2张图片
MIPS 指令译码器设计_第3张图片
MIPS 指令译码器设计_第4张图片
MIPS 指令译码器设计_第5张图片
MIPS 指令译码器设计_第6张图片
查询MIPS英文指令手册可以得知,各指令的高六位分别为:

Sw:101011; 换算成16进制为:2B;
在这里插入图片描述

Lw:100011; 换算成16进制为:23;
在这里插入图片描述

Addi:001000; 换算成16进制为:08;
在这里插入图片描述

Beq:000100; 换算成16进制为:04;
在这里插入图片描述

SLT 指令需要和低六位 FUNCT 一起判断:

OP:000000; 换算成16进制为:00;

FUNCT:101010;换算成16进制为:2A;
MIPS 指令译码器设计_第7张图片
最后用逻辑或非门总结到 OtherInstr:
MIPS 指令译码器设计_第8张图片
电路完成图:
MIPS 指令译码器设计_第9张图片

测试为:

预期输入:
Cnt      IR           LW    SW    BEQ   ADDI  SLT   OtherI
0000     2010ffff     0     0     0     1     0     0
0001     20110000     0     0     0     1     0     0
0002     ae300200     0     1     0     0     0     0
0003     22100001     0     0     0     1     0     0
0004     22310004     0     0     0     1     0     0
0005     ae300200     0     1     0     0     0     0
0006     22100001     0     0     0     1     0     0
0007     22310004     0     0     0     1     0     0
0008     ae300200     0     1     0     0     0     0
0009     22100001     0     0     0     1     0     0
000a     22310004     0     0     0     1     0     0
000b     ae300200     0     1     0     0     0     0
000c     22100001     0     0     0     1     0     0
000d     22310004     0     0     0     1     0     0
000e     ae300200     0     1     0     0     0     0
000f     22100001     0     0     0     1     0     0
0010     22310004     0     0     0     1     0     0
0011     ae300200     0     1     0     0     0     0
0012     22100001     0     0     0     1     0     0
0013     22310004     0     0     0     1     0     0
0014     ae300200     0     1     0     0     0     0
0015     22100001     0     0     0     1     0     0
0016     22310004     0     0     0     1     0     0
0017     ae300200     0     1     0     0     0     0
0018     20100000     0     0     0     1     0     0
0019     2011001c     0     0     0     1     0     0
001a     8e130200     1     0     0     0     0     0
001b     8e340200     1     0     0     0     0     0
001c     0274402a     0     0     0     0     1     0
001d     11000002     0     0     1     0     0     0
001e     ae330200     0     1     0     0     0     0
001f     ae140200     0     1     0     0     0     0
0020     2231fffc     0     0     0     1     0     0
0021     12110001     0     0     1     0     0     0
0022     1000fff7     0     0     1     0     0     0
0023     22100004     0     0     0     1     0     0
0024     2011001c     0     0     0     1     0     0
0025     12110001     0     0     1     0     0     0
0026     1000fff3     0     0     1     0     0     0
0027     1000ffff     0     0     1     0     0     0
0028     00000000     0     0     0     0     0     1
实际输入:
Cnt      IR           LW    SW    BEQ   ADDI  SLT   OtherI
0000     2010ffff     0     0     0     1     0     0
0001     20110000     0     0     0     1     0     0
0002     ae300200     0     1     0     0     0     0
0003     22100001     0     0     0     1     0     0
0004     22310004     0     0     0     1     0     0
0005     ae300200     0     1     0     0     0     0
0006     22100001     0     0     0     1     0     0
0007     22310004     0     0     0     1     0     0
0008     ae300200     0     1     0     0     0     0
0009     22100001     0     0     0     1     0     0
000a     22310004     0     0     0     1     0     0
000b     ae300200     0     1     0     0     0     0
000c     22100001     0     0     0     1     0     0
000d     22310004     0     0     0     1     0     0
000e     ae300200     0     1     0     0     0     0
000f     22100001     0     0     0     1     0     0
0010     22310004     0     0     0     1     0     0
0011     ae300200     0     1     0     0     0     0
0012     22100001     0     0     0     1     0     0
0013     22310004     0     0     0     1     0     0
0014     ae300200     0     1     0     0     0     0
0015     22100001     0     0     0     1     0     0
0016     22310004     0     0     0     1     0     0
0017     ae300200     0     1     0     0     0     0
0018     20100000     0     0     0     1     0     0
0019     2011001c     0     0     0     1     0     0
001a     8e130200     1     0     0     0     0     0
001b     8e340200     1     0     0     0     0     0
001c     0274402a     0     0     0     0     1     0
001d     11000002     0     0     1     0     0     0
001e     ae330200     0     1     0     0     0     0
001f     ae140200     0     1     0     0     0     0
0020     2231fffc     0     0     0     1     0     0
0021     12110001     0     0     1     0     0     0
0022     1000fff7     0     0     1     0     0     0
0023     22100004     0     0     0     1     0     0
0024     2011001c     0     0     0     1     0     0
0025     12110001     0     0     1     0     0     0
0026     1000fff3     0     0     1     0     0     0
0027     1000ffff     0     0     1     0     0     0
0028     00000000     0     0     0     0     0     1

在这里插入图片描述

你可能感兴趣的:(计算机组成原理)