MIPS Instructions
Bit # [31..26] [25..21] [20..16] [15..11] [10..6] [5..0] operations
R-type op rs rt rd sa func
add 000000 rs rt rd 00000 100000 rd <- rs + rt
sub 000000 rs rt rd 00000 100010 rd <- rs - rt
and 000000 rs rt rd 00000 100100 rd <- rs & rt
or 000000 rs rt rd 00000 100101 rd <- rs | rt
sll 000000 00000 rt rd sa 000000 rd <-- rt<<sa
srl 000000 00000 rt rd sa 000010 rd <-- rt>>sa(logical)
sra 000000 00000 rt rd sa 000011 rd <-- rt>>sa(arithmetic)
I-type op rs rt immediate
addi 001000 rs rt immediate rt <- rs + (sign-extend)immediate
andi 001100 rs rt immediate rt <- rs & (zero-extend)immediate
ori 001101 rs rt immediate rt <- rs | (zero-extend)immediate
lw 100011 rs rt immediate
rt <- memory[rs +
(sign-extend)immediate]
sw 101011 rs rt immediate
memory[rs + (sign-extend)immediate]
<- rt
beq 000100 rs rt immediate
if (rs == rt) PC <- PC+4 +
(sign-extend)immediate<<2
bne 000101 rs rt immediate
if (rs != rt) PC <- PC+4 +
(sign-extend)immediate<<2
J-type op Address
j 000010 Address PC <- (PC+4)[31..28],address<<2
图1 MIPS指令集
三、CPU 设计
CPU设计主要参考李亚民的网站(http://cis.k.hosei.ac.jp/~yamin/research/,利用
MAX+PLUS II中的gdf按图形描述电路,或用tdf按文字描述电路,仿真时在scf文件中画出输
入信号,通过模拟可以得到电路输出信号,以此来判断电路的正确性。在本次实验中,在除
了使用Max Plus II提供的图形设计功能实现基本电路之外元器件外,对于一些比较复杂的
逻辑功能,如CU等,选用AHDL语言来帮助实现基本电路。
我们先从搭建底层部件开始,从最基本的 AND,OR 部件开始搭建功能模块,然后通过一
个个模块,组合成高级的模块,最后构造 CPU,典型的底层部件包括以下三个部分:
1. 底层零件
主要包括 32 位加法器,D-触发器,选择器,0 判断器,部分元件 Max+PLUS II 现有的
lpm 模块已经有实现,不过自己实际制作一遍可能会更有收获。
2. ALU 模块
将 ALU 的操作码用四个 bit 表示,后两位表示加/减,或者移位的位数,前面两位表示
操作类型。对操作数分别做 and, or, add/sub 和移位的操作,用一个四路选择器选择实际
3
评论0
最新资源