首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数器,通过6个值循环,然后重置。

计数器,通过6个值循环,然后重置。
EN

Stack Overflow用户
提问于 2022-09-22 19:23:15
回答 2查看 96关注 0票数 0

这是一个计数器,每次只循环6个值(0,1,2,3,4,5,0,1,.)。计数器应该包括一个“重置”信号,当复位高时,计数器值将被重置为0(异步复位),并且计数器值应该在时钟上升的边缘上增加。

这是我的密码。但是,一旦它达到数字5,我将如何使它复位呢?

代码语言:javascript
复制
always @(posedge CLOCK_50 or negedge reset_n) begin
           if (!reset_n)
               count <= 0;
           else if (enable)
               count <= count + 1;
end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-23 15:51:46

简单地使用

代码语言:javascript
复制
always @(posedge CLOCK_50 or negedge reset_n) begin
    if (!reset_n)
        count <= 0;
    else if (enable)
        count <= (count == 5)? 'd0 : count + 1;
end

或分割梳子和seq

代码语言:javascript
复制
assign count_next = (count == 5)? 0 : count + 1;
always @(posedge CLOCK_50 or negedge reset_n) begin
    if (!reset_n)
        count <= 0;
    else if (enable)
        count <= count_next;
end
票数 -1
EN

Stack Overflow用户

发布于 2022-09-22 19:44:40

使用另一个if/else检查count是否为5,然后将其设置为0:

代码语言:javascript
复制
reg [2:0] count;

always @(posedge CLOCK_50 or negedge reset_n) begin
    if (!reset_n) begin
        count <= 0;
    end else if (enable) begin
        if (count == 5) begin
            count <= 0;
        end else begin
            count <= count + 1;
        end
    end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73819739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档