VL40 占空比50%的奇数分频

题目:

描述

设计一个同时输出7分频的时钟分频器,占空比要求为50%

注意rst为低电平复位

信号示意图:

波形示意图:

输入描述:

输入信号 clk_in rst 
类型 wire

输出描述:

输出信号  clk_out7
类型  wire

提交代码:

第一反应是写一个双边沿触发的计数器,参考HD Dualedge思路

题解给的思路更好,加了一个计数器,解决问题(画一下波形图易得)

`timescale 1ns/1ns

module odo_div_or
   (
    input    wire  rst ,
    input    wire  clk_in,
    output   wire  clk_out7
    );

//*************code***********//
reg [2:0]cnt;
reg p, n;

always@(negedge rst, posedge clk_in)begin
    if (~rst)
    p <= 0;
    else if(cnt == 3)
    p <= 1;
    else if(cnt == 6)
    p <= 0;
end

always@(negedge rst, negedge clk_in)begin
    if (~rst)
    n <= 0;
    else if(cnt == 3)
    n <= 1;
    else if(cnt == 6)
    n <= 0;
end

assign clk_out7 = p || n;

always@(negedge rst, posedge clk_in)begin
    if(~rst)
    cnt <= 0;
    else
    cnt <= cnt == 6 ? 0 : cnt + 1;
end

// always@(negedge rst, posedge clk_in)begin
//     if(~rst)
//     clk_out7 <= 0;
//     else 
//     clk_out7 <= ~clk_out7;
// end

//*************code***********//
endmodule

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值