题解 | #无占空比要去的奇数分频#

无占空比要去的奇数分频

http://www.nowcoder.com/practice/12d0615157a04e43bb7f41debc3cfa5b

这道题比占空比50%的奇数分频要简单很多,而且答案并不唯一。不过Testbench只限定了一种分频结果。
设置一个计数器cnt,计数范围0-4,每个clk_in周期加1。当计数器数值在0~1时,clk_out5==1;当计数器数值在2~4时,clk_out5==2。这样就实现了周期为5、占空比为35\frac{3}{5}clk_out5

`timescale 1ns/1ns

module odd_div (    
    input     wire rst ,
    input     wire clk_in,
    output    wire clk_out5
);
//*************code***********//
    reg [2:0] cnt;
    reg clk_out5_r;
    
    always@(posedge clk_in or negedge rst) begin
        if(~rst)
            clk_out5_r <= 0;
        else
            clk_out5_r <= cnt<=1;
    end
    
    always@(posedge clk_in or negedge rst) begin
        if(~rst)
            cnt <= 0;
        else
            cnt <= cnt==4? 0: cnt+1;
    end
    
    assign clk_out5 = clk_out5_r;
//*************code***********//
endmodule
Verilog篇题解 文章被收录于专栏

本人对牛客网verilog篇题目一些理解

全部评论
我个人觉得这个代码是不正确的,按照这种定义,cnt记5个上升沿,才会归0,而题目中要求是上升沿和下降沿之和为5.
点赞 回复 分享
发布于 2022-08-21 18:56 黑龙江
当计数器数值在2~4时,clk_out5应该是0
点赞 回复 分享
发布于 2022-04-18 20:46

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务