Cs450/counter 2bc
根据state大小判断拿的程度。
module top_module(
input clk,
input areset,
input train_valid,
input train_taken,
output [1:0] state
);
//00没拿,01weak没拿,10weak拿了,11拿了
always@(posedge clk or posedge areset)
if(areset)
state<=2'b01;
else if(train_valid & train_taken) //拿了+1
if(state==2'd3)
state<=state;
else
state<=state+2'b1;
else if(train_valid & ~train_taken)//没拿-1
if(state==0)
state<=state;
else
state<=state-2'b1;
endmodule
Cs450/history shift
判断是否拿预测值。
module top_module(
input clk,
input areset,
input predict_valid,