不能计数能复位,复位后计数值直接就变成20h不计数
时间:10-02
整理:3721RD
点击:
module Verilog1(clk,rst,en,dout);
input clk,en,rst;
output [31:0] dout;
reg [31:0] Q1;
assign dout=Q1;
always @(posedge clk or negedge rst)
begin
if(!rst)
Q1<=0;
else if(en)
begin
if(Q1==32`h0ffffffff)Q1<=32`h00000000;
else Q1<=Q1+1;end
else Q1<=Q1;
end
endmodule
input clk,en,rst;
output [31:0] dout;
reg [31:0] Q1;
assign dout=Q1;
always @(posedge clk or negedge rst)
begin
if(!rst)
Q1<=0;
else if(en)
begin
if(Q1==32`h0ffffffff)Q1<=32`h00000000;
else Q1<=Q1+1;end
else Q1<=Q1;
end
endmodule
问题不明确,清吧问题详细的说出,好让大家能知道你在问什么
是不是这个判断语句问题? if(Q1==32`h0ffffffff),好像多个0
把 else Q1 <= Q1;这句去掉就可以了
把else语句去掉就OK了
其实异步复位是个很严重问题,建议改成同步