《计算机组成原理实验》指导手册
实验四 多周期 CPU
一. 实验目标
1. 理解计算机硬件的基本组成、结构和工作原理;
2. 掌握数字系统的设计和调试方法;
3. 熟练掌握数据通路和控制器的设计和描述方法。
二. 实验内容
1. 多周期 CPU
待设计的多周期 CPU 可以执行如下 6 条指令:
• add: rd <- rs + rt; op = 000000, funct = 100000
• addi: rt <- rs + imm; op = 001000
lw: rt <- M(rs + addr); op = 100011
sw: M(rs + addr) <- rt; op = 101011
beq: if (rs = rt) then pc <- pc + 4 + addr << 2
else pc <- pc + 4; op = 000100
• j: pc <- (pc+4)[31:28] | (add<<2)[27:0]; op = 000010
待设计的 CPU 的逻辑符号如图-1 所示,端口声明如下:
module cpu_one_cycle //单周期 CPU
(input clk, //时钟(上升沿有效)
input rst //异步复位,高电平有效
);
……
endmodule 图-1 CPU 逻辑符号
满足上述指令的功能,设计多周期 CPU 的数据通路和控制器(橙色部分)如图-2 所示,
其中控制器的状态图如图-3 所示。具体实现时 ALU 和寄存器堆可以利用实验 1 和实验 2 设计
的模块,指令和数据存储共用一个 RAM 存储器,采用 IP 例化实现,容量为 512 x 32 位的分
布式存储器。