喜欢2次
团队编号:CICC1156
团队名称:兔飞猛进
在 tb_top 文件中可添加以下代码,进行分支预测正确数量、错误数量的统计
wire prdt = `EXU.alu_cmt_bjp_prdt;
wire rslv = `EXU.alu_cmt_bjp_rslv;
wire bjp = `EXU.alu_cmt_bjp;
`
integer all_count = 0;
integer fail_count = 0;
wire temp;
assign temp = rslv^prdt;
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begin
all_count = 0;
fail_count = 0;
end
else if(pc_vld[0]&bjp) begin
all_count = all_count + 1;
if(temp) begin
fail_count = fail_count + 1;
end
end
end
1、可以采用跨层次引用的方式,将 预测跳转情况、实际跳转情况、是否为跳转指令 等信号拿到。
2、在时钟上升沿时判断是否为跳转指令时,不仅要判断bjp信号,也要判断pc_vld[0]是否为1(即当前指令是否有效),对数量进行更新。
3、正确率 = (all_count-fail_count)/all_count;
4、错误率 = fail_count/all_count;