计数器,计数到一个值就不计数了!这么回事

2019-07-15 23:33发布

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`hffffffff)Q1<=32`h00000000;
                  else Q1<=Q1+1`b1;end
                          end
endmodule       

逻辑分析仪图 逻辑分析仪图
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
stojakovic7769
1楼-- · 2019-07-16 01:11
楼主加上一句if(Q1<32`hffffffff)
                       Q1<=Q1+1`b1;

别单纯的用else判断

陈孝虎
2楼-- · 2019-07-16 01:40
stojakovic7769 发表于 2015-9-5 20:30
楼主加上一句if(Q1

能留个联系方式请教下你么,
yangzhiyuan0928
3楼-- · 2019-07-16 03:05
同问,我用ISim做功能仿真时没出现这样的问题呀,不过最好还是这样写,把 begin
          if(Q1==32'hffffffff)        Q1<=32'h00000000;
         else Q1 <= Q1 + 1'b1;
end
改写成:
begin
        if(Q1 < 32'hffffffff)  Q1 <= Q1 + 1'b1;
        else Q1 <= 32'b0;
houxiaoxiao
4楼-- · 2019-07-16 05:32
 精彩回答 2  元偷偷看……

一周热门 更多>