侧边栏壁纸
    • 累计撰写 302 篇文章
    • 累计收到 527 条评论
    【4】Verilog练习-秒计数器设计
    我的学记|刘航宇的博客

    【4】Verilog练习-秒计数器设计

    刘航宇
    2022-05-24 / 0 评论 / 212 阅读 / 正在检测是否收录...

    秒计数器设计


    代码

    //秒计数器,0-9循环
    `timescale 1ns/10ps
    module s_counter(
                        clk,
                        res,
                        s_num
                        );
    input                clk;
    input                res;
    output[3:0]            s_num;
    parameter            frequency_clk=24;//24MHZ;
    reg[24:0]            con_t;//秒脉冲分频计数器;
    reg                    s_pulse;//秒脉冲尖;
    reg[3:0]            s_num;
    always@(posedge clk or negedge res)
        if(~res)begin
        con_t<=0;s_pulse<=0;s_num<=0;
        end
        else begin
            //if(con_t==frequency_clk*1000000-1)begin
            if(con_t==frequency_clk*1000-1)begin//仿真便于观察
                con_t<=0;
            end
            else begin
                con_t<=con_t+1;
            end
            if(con_t==0)begin
                s_pulse<=1;
            end
            else begin
                s_pulse<=0;
            end
            if(s_pulse) begin
                if(s_num==9)begin
                    s_num<=0;
                end
                else begin
                s_num<=s_num+1;
                end
            end
    end
    endmodule
    //-----testbench of s_counter---
    module s_counter_tb;
    reg                    clk,res;
    wire[3:0]            s_num;
    s_counter s_counter(
                        .clk(clk),
                        .res(res),
                        .s_num(s_num)
                        );
    initial begin
                        clk<=0;res<=0;
            #17            res<=1;
            #1000000    $stop;
    end
    always #5 clk<=~clk;
    endmodule

    现象

    扩展:数码管


    2
    【5】Verilog练习-相邻16点相加
    « 上一篇 2022-05-25
    【3】Verilog练习-时序逻辑与伪随机码发生器设计和仿真
    下一篇 » 2022-05-23

    评论 (0)

    取消