对按键计数,编译不通过!!
module dc_counter(rstn,up,down,dout);
input rstn;
input up;
input down;
output[8:0] dout;
reg[8:0] dout_r;
reg[3:0]cnt;
always@(posedge up or negedge rstn)//计数范围50~450
begin
if(! rstn)
dout_r<=9'd450;
else
begin
if(dout_r>=9'd449)
dout_r<=450;
else
dout_r<=dout_r+1;
end
end
always@(posedge down or negedge rstn)
begin
if(! rstn)
dout_r<=9'd450;
else
begin
if(dout_r<=9'd50)
dout_r<=9'd50;
else
dout_r<=dout_r-1;
end
end
assign dout=dout_r;
endmodule
是的,不能再两个always块里对一个变量赋值!!你可以再定义一个reg变量,输出等于这两个reg相加就行啦!!不过还是要用时钟信号比较正规,你这个写法本身就是不对的,我刚学fpga的时候也像你这么写,哈哈,posedge后面只能跟时钟!!!!!很重要!