分频器,顾名思义,就是将一个波形,分成具有若干占空比的波。占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。占空比(Duty Ratio)在电信领域中有如下含义:例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。在一段连续工作时间内脉冲占用的时间与总时间的比值。
在CVSD调制(continuously variable slope delta modulation)中,比特”1”的平均比例(未完成)。
引申义:
在周期型的现象中,某种现象发生后持续的时间与总时间的比。
例如,在俗语中有句话:「三天打渔,两天晒网」,是说五天里有两天在晒网,即周期为5天,”打渔”的占空比为5分之3。
在Verilog数字系统设计中,我们要深入理解输入与输出端口,以及模块化设计。下图为其模块:
可以看出,我们要得到分配后的时钟,为其输出端口。
例如,我们要设计一个三天打鱼两天晒网的分频器,可以设计Verilog代码如下:
module div( input clk,rst_n; output [4:0] Q; output clk_div;); always@(posedge clk or negedge rst_n) begin if(!rst_n) begin Q<=0; clk_div<=1; end else if(Q<=4) begin //两天晒网 clk_div<=1; Q<=Q+1; end else if(Q<=10&&Q>4) begin //三天打鱼 Q<=Q+1; clk_div<=0; end else Q<=0; //自动清零 end endmodule
其testbeach测试代码如下:
`timescale 1ns/1ns module div_tb(); reg clk,rst_n; wire [4:0]Q; wire clk_div; initial begin clk=0; #10 forever clk=~clk; end initial begin rst_n=0; #20 rst_n=1; end div u1( .clk(clk), .rst_n(rst_n), .Q(Q), .clk_div(clk_div)); endmodule
文章来源: Verilog设计分频器(一)