HDLBits 计数器

本文详细介绍了使用HDLBits实现的各种计数器,包括4位二进制计数器、十进制计数器、带有暂停功能的计数器以及1-12计数器和频率分频器的设计。内容涵盖了同步复位、使能控制以及BCD计数器的应用,适用于FPGA开发和数字逻辑设计的学习。
摘要由CSDN通过智能技术生成

HDLBits

Count15

Build a 4-bit binary counter that counts from 0 through 15, inclusive, with a period of 16. The reset input is synchronous, and should reset the counter to 0.

module top_module (
    input clk,
    input reset,      // Synchronous active-high reset
    output [3:0] q);
    always @(posedge clk) begin
        if(reset) q <= 4'h0;
        else begin
            if(q == 4'hf ) q <= 0;
            else q <= q + 4'h1;
        end
/*
	q <= q+1;		// Because q is 4 bits, it rolls over from 15 -> 0.
		// If you want a counter that counts a range different from 0 to (2^n)-1, 
		// then you need to add another rule to reset q to 0 when roll-over should occur.
*/
    end
endmodule

 Count10

Build a decade counter that counts from 0 through 9, inclusive, with a period of 10. The reset input is synchronous, and should reset the counter to 0.

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

 Count1to10

Make a decade counter that counts 1 through 10, inclusive. The reset input is synchronous, and should reset the counter to 1.

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值