Verilog设计分频器(一)

匿名 (未验证) 提交于 2019-12-02 22:56:40

分频器,顾名思义,就是将一个波形,分成具有若干占空比的波。占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。占空比(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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!