该题链接:https://hdlbits.01xz.net/wiki/Cs450/gshare
(相关资料图)
这题主要是看不懂题目,没法理解题目意思,而且对cpu的gshare预测分支不了解,所以做不出来。
当train_valid=1时,PHT的位置由train_pc与train_history异或得到,而PHT的值则是由状态机或者说由train_taken来决定。状态机是之前题目中的饱和计数器,当状态是11或10时,会决定predict_taken为1. predict_taken的值有PHT的状态决定。
其中寄存器代码编写与上题差不多。
module top_module(
input clk,
input areset,
input predict_valid,
input [6:0] predict_pc,
output predict_taken,
output [6:0] predict_history,
input train_valid,
input train_taken,
input train_mispredicted,
input [6:0] train_history,
input [6:0] train_pc
);
reg pht1[127:0],pht0[127:0];//定义128个1位寄存器pht1
wire [6:0]ad,ad2;
assign predict_taken=pht1[ad2];
assign ad=train_history^train_pc;
assign ad2=predict_history^predict_pc;
always@(posedge clk or posedge areset)begin
if(areset)
for(int i=0;i<128;i++)begin
pht1[i]=0;pht0[i]=1;end
else if(train_valid&train_taken)begin
if({pht1[ad],pht0[ad]}==2'b11)
{pht1[ad],pht0[ad]}<=2'b11;
else
{pht1[ad],pht0[ad]}<={pht1[ad],pht0[ad]}+1;
end
else if(train_valid&~train_taken)begin
if({pht1[ad],pht0[ad]}==2'b00)
{pht1[ad],pht0[ad]}<=2'b00;
else
{pht1[ad],pht0[ad]}<={pht1[ad],pht0[ad]}-1;
end//之前的饱和计数器
end
always@(posedge clk or posedge areset)begin
if(areset)
predict_history<=0;
else if(train_mispredicted & train_valid)
predict_history <= {train_history[5:0],train_taken};
else if(predict_valid )
predict_history <= {predict_history[5:0],predict_taken};
end
endmodule
下一篇:最后一页
X 关闭
该题链接:https: hdlbits 01xz net wiki Cs450 gshare这题主要是看不懂题目,没法理解题目意思,而且对cpu的gshare预测分支不了解,所以做不
阳春三月,又逢一年踏春赏樱的好时节。这个樱花季,上海宝山国际民间艺术博览馆也为大家同步送上一份春天的礼物,“2023水+墨:都市镜像”近日
直播吧3月26日讯斯基拉报道,意大利前锋雷特吉在过去几周被推荐给了米兰双雄,马竞对这名球员有意。23岁的雷特吉是一名前锋,目前在墨西哥的老
金蝶软件怎么连续打印记账凭证,金蝶打印凭证怎么连续打印这个很多人还不知道,现在让我们一起来看看吧!1、你买了凭证纸张吧,看纸张的右侧面
桌游《三国杀》一共有108张牌,包括:1、基本牌53张,分别是:30张“杀”、15张“闪”、8张“桃”。2、锦囊牌35张,分别是:6张“过河拆桥”、
到底是有多失望,才会亲手斩断八年情缘,转身带着三千万的嫁妆另嫁他人?胡杏儿婚礼当天,无数好友替她打抱不平道,这八年来如果黄宗泽求一次
Copyright ? 2015-2022 每日科技网版权所有 备案号:浙ICP备2022016517号-15 联系邮箱:5 146 761 13 @qq.com