1. 项目概述
作为一名计算机体系结构课程的助教,我每年都会带领学生完成单总线CPU设计的实验。这个实验是计算机组成原理课程中最具挑战性的实践环节之一,它要求学生从零开始构建一个能够执行MIPS指令集的简易CPU。今天我想和大家分享这个实验的第二部分——单总线CPU设计的完整实现过程。
这个实验分为六个关卡,从指令译码器设计开始,逐步完成时序发生器、硬布线控制器,最终实现完整的单总线CPU。每个关卡都环环相扣,前一个实验的输出就是下一个实验的输入。通过这个实验,学生能够深入理解CPU的工作原理,特别是控制器的设计思路和实现方法。
2. 实验环境准备
2.1 Logisim软件配置
实验使用Logisim作为主要开发工具,这是一个开源的数字电路模拟器,特别适合教学用途。我建议使用2.7.1版本,因为这个版本稳定性最好,而且与我们提供的实验资料包完全兼容。
安装完成后,需要导入实验基础文件MipsOnBusCpu-3.circ。这个文件已经包含了CPU的基本框架,包括寄存器文件、ALU、内存等组件,学生需要在此基础上完成控制器的设计。
注意:不要修改基础文件中已有的电路结构,特别是子电路的接口定义。任何对预设引脚的修改都可能导致后续实验无法正常进行。
2.2 实验资料准备
实验资料包中应包含以下内容:
- 基础电路文件(MipsOnBusCpu-3.circ)
- 测试用例文件(sort-5.hex)
- 实验指导手册
- 参考设计文档
建议在开始实验前,先仔细阅读实验指导手册,了解每个关卡的具体要求和评分标准。
3. 指令译码器设计
3.1 MIPS指令格式解析
MIPS指令是32位固定长度的,主要分为三种格式:
-
R型指令(寄存器型):
- opcode(6位) | rs(5位) | rt(5位) | rd(5位) | shamt(5位) | funct(6位)
-
I型指令(立即数型):
- opcode(6位) | rs(5位) | rt(5位) | immediate(16位)
-
J型指令(跳转型):
- opcode(6位) | address(26位)
在本次实验中,我们需要识别的指令包括:
- LW (Load Word)
- SW (
