求分析两段简单的verilog的计数器的代码写法上的不同会带来什么不同的效果,

2019-07-15 21:43发布

代码一:
        always@(posedge CLK_25M)
                if(cnt == 20'd1000000)
                        begin
                                cnt <= 20'd0;
                        end
                else cnt <= cnt + 1'd1;

代码二:
        always @ (posedge CLK_25M or negedge rst_n)
        begin
                if (!rst_n)
                        time_cnt <= 27'h0;
                else
                        time_cnt <= time_cnt_n;
        end
       
        always @ (*)
        begin
                if (time_cnt == SET_TIME_1S)
                        time_cnt_n <= 27'h0;
                else
                        time_cnt_n <= time_cnt + 27'h1;
        end


两段代码都是计数器,后者将时序逻辑和组合逻辑分成了两个always的好处是什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。