微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求分析两段简单的verilog的计数器的代码写法上的不同会带来什么不同的效果,

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

时间:10-02 整理:3721RD 点击:
代码一:
        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的好处是什么?

为什么只能看到一段

什么情况?

我有发两段啊,分别注明了第一段和第二段了

只是不懂第二段代码那种写法的好处是在哪里

不知道有什么区别,可以综合一下看看原理图

将时序逻辑和组合逻辑分开,有点像三段式状态机的写法。就看到过锆石科技的视频这样写计数器,不知道好在哪

如果彻底理解时序逻辑和组合逻辑,就知道这样写的好处了,我是这样认为的。我也是从锆石科技的文章里理解的,分清时序逻辑和组合逻辑确实挺重要的

计数器没必要这样吧,一个信号用一个always就行了。感觉分两段写两个信号还麻烦些

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top