请教一下为什么上板子时,我把计数那段雨具单独写一个always块,res就一直为0,根本没计数。如下:
module detect(
input clk,
input rst,
input[15:1] SW,
output reg[2:0] res
);
reg[2:0] tmp;
reg[15:1] sec;
//初始化
always @(posedge clk) begin
if(!rst) begin
tmp=3'b000;
res=3'b0;
sec=SW;
end
else if(sec>0) begin
tmp={tmp[1:0],sec[15]};
sec=sec<<1;
end
else tmp=3'b0;
end
//计数
always @(posedge clk) begin
if(tmp==3'b101) begin
res=res+1;
tmp=3'b000;
end
end
endmodule
但是我把他放进第一个always块中,就能计数了,请问这是为什么呀?
module detect(
input clk,
input rst,
input[15:1] SW,
output reg[2:0] res
);
reg[2:0] tmp;
reg[15:1] sec;
//初始化
always @(posedge clk) begin
if(!rst) begin
tmp=3'b000;
res=3'b0;
sec=SW;
end
else if(sec>0) begin
tmp={tmp[1:0],sec[15]};
sec=sec<<1;
if(tmp==3'b101) begin
res=res+1;
tmp=3'b000;
end
end
else tmp=3'b0;
end
endmodule