计数器的电路的描述

来源:互联网 发布:淘宝交易订单管控 编辑:程序博客网 时间:2024/05/22 15:05
计数器的电路如下︰
module Div20x (rst, clk, cet, cep, count,tc);
//TITLE   'Divide-by-20 Counter with enables'
//enable CEP is a clock enable only
//enable CET is a clock enable and enables the TC output
// 使用 Verilog 语言描述的一个计数器

    parameter size = 5;
    parameter length = 20;

    input rst;  // 这些输出/输入表示这个模组的对外连线
    input clk;
    input cet;
    input cep;

    output [size-1:0] count;
    output tc;

    reg [size-1:0] count;  // 宣告硬件内的暂存器
    wire tc;               // 连接线
   
    // 下方的 always 叙述是属于平行执行的叙述,当任何时间 rst 或 clk 讯号
    // 有从 low 到 high 的转变时候就会被执行,即边沿触发
    always @ (posedge rst or posedge clk)
        begin                            
            if (rst)             // 这个模拟计数器的重设
                count <= 5'b0;
            else if (cet && cep) // 这个模拟两个 enable 讯号都为 true
            begin
                if (count == length-1)
                begin
                    count <= 5'b0;
                end
                else
                    count <= count + 5'b1;  // 5'b1 是 5 bits 宽度且等于 1 的数值
            end
        end

    // 后面运算式的值会持续不断地指定给 tc
    assign tc = (cet && (count == length-1));

endmodule

 
原创粉丝点击