CPU设计实战-汪文祥 邢金璋
第4章 实践任务二
实验环境 lab4.zip
前言
在lab3的实验环境下,添加lab4的指令测试序列,增加相应代码用阻塞技术解决相关引发的冲突
一、实验内容
我们在译码级判断当前时刻处于执行级、访存级或者写回级的指令的目的操作数的寄存器号是否与译码级源操作数的寄存器号是否相同,所以必须将执行级、访存级和写回级的目的寄存器号直接传递到译码级。在各流水级添加代码如下:
EXE_stage:
output [ 4:0] EXE_dest, //执行级目的操作数寄存器号
assign EXE_dest = es_dest & {5{es_valid}};
MEM_stage:
output [ 4:0] MEM_dest //访存级目的操作数寄存器号
assign MEM_dest = ms_dest & {5{ms_valid}};
WB_stage:
output [ 4:0] WB_dest //写回级目的操作数寄存器号
assign WB_dest = ws_dest & {5{ws_valid}};
ID_stage:
input [ 4:0] EXE_dest, //执行级目的操作数寄存器号