Verilog设计分频器(一)

分频器,顾名思义,就是将一个波形,分成具有若干占空比的波。占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。占空比(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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Metroplitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值