hdlbits时序电路 counters

本文介绍了Verilog中实现不同计数器的方法,包括Count15、Count10、Count1to10、Countslow等,强调了在Verilog中赋值操作符`=`与相等判断`==`的区别。同时还涵盖了半加器、全加器、3位加法器等基本数字逻辑电路的实现,并讨论了如何判断溢出和实例化计数器模块。

 小补充:

verilog、=、==、区别

在Verilog中,=和==有不同的含义。=用于无阻塞赋值,在并行结构中表示同时执行,该语句在下一个时间点被评估为真实信号的赋值。==用于检查两种操作数(通常是数字)是否相等,并返回True或False。两个操作数必须类型匹配且值相等才能返回True,否则将返回False。[1]

简单来说,“=”表示赋值,而“==”表示相等运算符。例如,a = b; 表示将b赋值给a,而if (a == b) 表示如果a和b的值相等,则执行语句。

Count15

module top_module (
    input clk,
    input reset,      // Synchronous active-high reset
    output [3:0] q);
    always @(posedge clk)
        begin
            if(reset)//复位置零
                q<=4'd0;
            else if(q==4'd15)//加到15置零
                q<=4'd0;
            else
                q<=q+4'd1;         
        end
endmodule
 

Count10(从0计数到9)

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

//这个4‘d9的4 代表的是4位2进制的意思。最多是2的4次方,8421,最多是0~15.每个位里面只能填0或者1.

Count1to10(从 1 计数到10)

module top_module (
    input clk,
    input reset,
    output [3:0] q);
    
    always @(posedge clk)
        begin
        &nb

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值