「HDLBits题解」Counters

这篇具有很好参考价值的文章主要介绍了「HDLBits题解」Counters。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益


题目链接:Count15 - HDLBits

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

endmodule

题目链接:Count10 - HDLBits

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

endmodule

题目链接:Count1to10 - HDLBits

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

endmodule

题目链接:Countslow - HDLBits

module top_module (
    input clk,
    input slowena,
    input reset,
    output reg [3:0] q
);
    always @(posedge clk) begin
        if (reset) q <= 0 ; 
        else if (slowena) q <= q == 9 ? 0 : q + 1 ; 
        else q <= q ; 
    end

endmodule

题目链接:Exams/ece241 2014 q7a - HDLBits

module top_module (
    input clk,
    input reset,
    input enable,
    output reg [3:0] Q,
    output c_enable,
    output c_load,
    output [3:0] c_d
); 
    reg [3:0] cnt_4o ;

    always @(posedge clk) begin
        if (reset) Q <= 1 ; 
        else if (enable) Q <= Q == 12 ? 1 : Q + 1 ;
        else Q <= Q ; 
    end

    assign c_enable = enable ; 
    assign c_load = reset | (enable && Q == 12) ; 
    assign c_d = c_load ? 1 : 0 ; 

    count4 the_counter (clk, c_enable, c_load, c_d, cnt_4o);

endmodule

题目链接:Exams/ece241 2014 q7b - HDLBits

module top_module (
    input clk,
    input reset,
    output OneHertz,
    output [2:0] c_enable
); 
    reg [3:0] q0, q1, q2 ;

    bcdcount counter0 (clk, reset, c_enable[0], q0);
    bcdcount counter1 (clk, reset, c_enable[1], q1);
    bcdcount counter2 (clk, reset, c_enable[2], q2);

    assign c_enable = {q0 == 9 & q1 == 9, q0 == 9, 1'b1}; 
    assign OneHertz = q2 == 9 & q1 == 9 & q0 == 9 ; 

endmodule

题目链接:Countbcd - HDLBits

module top_module (
    input clk,
    input reset,   // Synchronous active-high reset
    output [3:1] ena,
    output reg [15:0] q
);
    always @ (*) begin 
        if (q[3:0] == 9 && q[7:4] == 9 && q[11:8] == 9) ena = 7 ; 
        else if (q[3:0] == 9 && q[7:4] == 9) ena = 3 ; 
        else if (q[3:0] == 9) ena = 1 ; 
        else ena = 0 ;
    end

    sub_cnt u1(clk, reset, 1'b1, q[3:0]) ;
    sub_cnt u2(clk, reset, ena[1], q[7:4]) ;
    sub_cnt u3(clk, reset, ena[2], q[11:8]) ;
    sub_cnt u4(clk, reset, ena[3], q[15:12]) ;

endmodule 
       
module sub_cnt (
    input clk,
    input reset,      // Synchronous active-high reset
    input enable, 
    output reg [3:0] q
); 
    always @(posedge clk) begin
        if (reset) q <= 0 ; 
        else if (enable) q <= q == 9 ? 0 : q + 1 ; 
        else q <= q ; 
    end

endmodule

题目链接:Count clock - HDLBits文章来源地址https://www.toymoban.com/news/detail-818969.html

module top_module(
    input clk,
    input reset,
    input ena,
    output reg pm,
    output reg [7:0] hh,
    output reg [7:0] mm,
    output reg [7:0] ss
); 
    wire [2:0] enable ; 

    assign enable = {mm == 8'h59 & ss == 8'h59 & ena, ss == 8'h59 & ena, ena} ; 

    cnt60 uss(clk, reset, enable[0], ss) ; 
    cnt60 umm(clk, reset, enable[1], mm) ; 

    always @(posedge clk) begin
        if (reset) begin 
            hh <= 8'h12 ; 
            pm <= 0 ; 
        end
        else 
            if (enable[2]) 
                if (hh == 8'h12) hh <= 8'h1 ; 
                else if (hh == 8'h11) begin 
                    pm <= ~pm ; 
                    hh[3:0] <= hh[3:0] + 1'h1 ; 
                end
                else 
                    if (hh[3:0] == 4'h9) begin 
                        hh[3:0] <= 4'h0 ; 
                        hh[7:4] <= hh[7:4] + 1'h1 ; 
                    end
                    else 
                        hh[3:0] <= hh[3:0] + 1'h1 ; 
            else 
                hh <= hh ;
    end
endmodule

module cnt60(
    input clk, 
    input reset, 
    input ena, 
    output reg [7:0] q 
);
    always @(posedge clk) begin
        if (reset) q <= 8'h0 ; 
        else 
            if (ena) 
                if (q[3:0] == 4'h9) 
                    if 
                        (q[7:4] == 4'h5) q <= 8'h0 ; 
                    else begin 
                        q[7:4] <= q[7:4] + 1'h1 ; 
                        q[3:0] <= 4'h0 ; 
                    end
                else 
                    q[3:0] <= q[3:0] + 1'h1 ; 
            else 
                q <= q ; 
    end
endmodule

到了这里,关于「HDLBits题解」Counters的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 「HDLBits题解」Cellular automata

    本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Rule90 - HDLBits 题目链接:Rule110 - HDLBits 题目链接:Conwaylife - HDLBits

    2024年01月24日
    浏览(36)
  • 「HDLBits题解」Shift Registers

    本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Shift4 - HDLBits 题目链接:Rotate100 - HDLBits 题目链接:Shift18 - HDLBits 题目链接:Lfsr5 - HDLBits 题目链接:Mt2015 lfsr - HDLBits 题目链接:Lfsr32 - HDLBit

    2024年01月22日
    浏览(37)
  • 「HDLBits题解」Alwaysblock2

    本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Alwaysblock2 - HDLBits

    2024年01月17日
    浏览(40)
  • 「HDLBits题解」Karnaugh Map to Circuit

    本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 相关资料:卡诺图化简法-CSDN博客 题目链接:Kmap1 - HDLBits  题目链接:Kmap2 - HDLBits 题目链接:Kmap3 - HDLBits 题目链接:Kmap4 - HDLBits 题目链接:Exams/ece241

    2024年01月19日
    浏览(36)
  • 「HDLBits题解」Latches and Flip-Flops

    本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Dff - HDLBits 题目链接:Dff8 - HDLBits 题目链接:Dff8r - HDLBits 题目链接:Dff8p - HDLBits 题目链接:Dff8ar - HDLBits 题目链接:Dff16e - HDLBits 题目链接:

    2024年01月19日
    浏览(37)
  • HDLbits---Verilog Language---Procedures

    2024年02月13日
    浏览(54)
  • verilog学习 | HDLBits:在线学习答案

    HDLBits 在提供 Verilog 基础语法教程的同时,还能够在线仿真 Verilog 模块。 以下是各单元解法答案。希望可以帮助您了解 Verilog 的工作原理。 HDLBits 在提供 Verilog 基础语法教程的同时,还能够在线仿真 Verilog 模块。 ⚠️ 注意:顶层的模块名称和端口名称 top_module 不能更改,否

    2024年02月16日
    浏览(34)
  • Verilog刷题[hdlbits] :Module add

    You are given a module add16 that performs a 16-bit addition. Instantiate two of them to create a 32-bit adder. One add16 module computes the lower 16 bits of the addition result, while the second add16 module computes the upper 16 bits of the result, after receiving the carry-out from the first adder. Your 32-bit adder does not need to handle carry-in (assu

    2024年02月06日
    浏览(45)
  • HDLbits---Verilog Language---module:Hierarchy

    2024年02月15日
    浏览(42)
  • HDLBits-Verilog学习记录 | Verilog Language-Modules(1)

    practice:You may connect signals to the module by port name or port position. For extra practice, try both methods. 两种方法: 1、You may connect signals to the module by port name 注:mod_a的端口与top_module的输入输出端口顺序一致,按照位置从左到右适配 2、port position 注:这里直接将两者进行绑定 practice: Thi

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包