HDLBits刷题合集—12 Counters

这篇博客汇总了HDLBits中的计数器题目,包括4位二进制、十进制以及4位BCD计数器的设计,涵盖了同步复位、暂停计数、分频器和12小时时钟的应用。通过代码展示了如何实现不同类型的计数器,并强调了在设计中考虑控制信号的重要性。
摘要由CSDN通过智能技术生成

HDLBits刷题合集—12 Counters

HDLBits-99 Count15

Problem Statement
构建一个4位二进制计数器,其计数范围从0到15(包括0和15),周期为16。置位输入是同步的,应该将计数器重置为0。

在这里插入图片描述代码如下:

module top_module (
    input clk,
    input reset,  // Synchronous active-high reset
    output [3:0] q);
    
    always @(posedge clk) begin
        if (reset)
            q <= 4'b0000;
    	else
            q <= q + 1'b1;
    end
endmodule

HDLBits-100 Count10

Problem Statement
构建一个十进制计数器,其计数范围从0到9(包括0和9),周期为10。置位输入是同步的,应该将计数器重置为0。

在这里插入图片描述

代码如下:

module top_module (
    input clk,
    input reset,   // Synchronous active-high reset
    output [3:0] q);
    
    always @(posedge clk) 
        begin
            if (reset)
                q <= 4'b0000;
            else if (q < 4'b1001)
                q <= q + 1'b1;
            	else
                q <= 4'b0000;
        end
        
endmodule

HDLBits-101 Count1to10

Problem Statement
构建一个十进制计数器,其计数范围从0到9(包括0和9),周期为10。置位输入是同步的,应该将计数器重置为1。

在这里插入图片描述
代码如下:

module top_module (
    input clk,
    input reset,
    output [3:0] q);
    
    always @(posedge clk)
        begin
            if (reset)
                q <= 4'b0001;
            else if (q <= 4'b1001)
                	q <= q + 1'b1;
            	else
                    q <= 4'b0001;
        end
        
endmodule

HDLBits-102 Countslow

Problem Statement
构建一个十进制计数器,其计数范围从0到9(包括0和9),周期为10。置位输入是同步的,应该将计数器重置为0。

我们希望能够暂停计数器,而不是总是每个时钟周期递增,因此slowena输入指出计数器应该何时递增。

在这里插入图片描述
代码如下:

module top_module (
    input clk,
    input slowena,
    input reset,
    output [3:0] q);
    
    always @(posedge clk) begin
        if (reset)
            q <= 4'b0000;
        else if (slowena == 1)
            begin
                if (q <= 4'b1000)
            	q <= q + 1'b1;
        		else
            	q <= 4'b0000;
            end
    end
    
endmodule

HDLBits-102 Countslow

Problem Statement
设计一个从1计数到12的计数器,输入和输出如下:
Reset:同步高电平复位,强制计数器为1
Enable:高电平有效,以使计数器计数
Clk:时钟输入上升沿触发
Q[3:0]:计数器的输出
c_enable, c_load, c_

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值