北京航空航天大学计算机学院 计算机组成实验指导书
VerilogHDL 开发流水线处理器 (2 )
V1.5@2014.12.07
高小鹏
修订记录
V1.5@2014.12.07
1. 修改了溢出设计要求。具体参见1.b)。
V1.4@2014.12.03
2. 修改了乘除法部件的Op 控制信号。具体参见8.d)。
3. 修改了数据扩展模块的Op 控制信号。具体参见21.b) 。
4. 针对部分同学的问题,增加了第八部分。
V1.3@2014.12.02
1. 增加了对于溢出异常的描述。具体参见第错误!未找到引用源。条。
2. 调整了CMP 的输出。具体参见第6 条。
3. 修复了GPR 的WD 描述。具体参见第7 条。
V1.2@2014.11.30
1. 调整了ALU 的A 、B 输入的描述。具体参见第5 条。
V1.1@2014.11.30
1. 去除了ALU 中的除Over 外的所有标志。
2. 去除了ALU 中Op 的位数定义。位数定义自行设置。
3. 增加了CMP 部件。具体参见第6 条。
一、 设计说明
1. 处理器应MIPS-C3 指令集。
a) MIPS-C3={LB 、LBU 、LH 、LHU 、LW 、SB、SH、SW、ADD 、ADDU 、
SUB、SUBU、MULT 、MULTU 、DIV 、DIVU 、SLL、SRL、SRA、SLLV、
SRLV、SRAV、AND 、OR、XOR 、NOR 、ADDI 、ADDIU 、ANDI 、ORI、
XORI 、LUI、SLT、SLTI、SLTIU、SLTU、BEQ 、BNE 、BLEZ 、BGTZ 、
BLTZ、BGEZ 、J 、JAL、JALR 、JR 、MFHI、MFLO 、MTHI、MTLO}。
b) 所有运算类指令均可以不支持溢出。
北京航空航天大学计算机学院 计算机组成实验指导书
2. 处理器为流水线设计。
二、 设计要求
3. 集中式控制器或分布式控制器架构均可以。
4. 流水线顶层架构。如果你才有了集中式控制器,则我们建议参考 《数字设计
和计算机体系结构》中的图7-58 作为流水线的顶层视图。
a) 该图仅在宏观的结构层面作为参考,并不能支持本project 的全部指令。
b) 建议采用3 控制器架构,即将图中的Hazard Unit 进一步拆分为暂停控制
器和转发控制器,即:
1)主控制器:功能如同单周期设计,指令译码、功能部件控制、MUX(不
包括转发MUX)控制等。
2 )暂停控制器:根据相关检测,只处理暂停IF/ID 的指令。
3 )转发控制器:根据相关检测,只处理转发。
5. ALU 。ALU 完成所有的加、减、与或非、移位运算。本project 规范ALU 的
设计接口。ALU 接口必须如下,不得修改!
信号名 方向 描述
第1 个运算数
A[31:0] I
当执行移位指令时,A[4:0]为移位位数。
B[31:0] I 第2 个运算数
北京航空航天大学计算机学院 计算机组成实验指导书
运算类型。
Op[X :0] I 具体编号可以自行定义。
X 自行定义。
C[31:0] O ALU 计算结果
溢出
Over O 0 :无溢出
1:有溢出
6. CMP 。CMP 用于实现b 类指令的比较操作。