首页 > 其他分享 >牛客进阶题目16:占空比50%的奇数分频

牛客进阶题目16:占空比50%的奇数分频

时间:2023-01-08 22:34:17浏览次数:44  
标签:分频 wire 进阶 波形 clk 对齐 rst 占空比 reg

根据题目中波形可以看出,周期为7,高电平和低电平分别持续3.5个周期。继续观察波形,输出信号拉高时和输入时钟下降沿对齐,拉低时和输入时钟上升沿对齐。由于同一个信号不能同时和上升沿和下降沿对齐。因此可以推断其是由两个信号进行组合逻辑得来,其中一个信号与上升沿对齐,另一个信号与下降沿对齐。由于手画的波形太丑,这里放一张题解中的波形。

alt

`timescale 1ns/1ns

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

//*************code***********//
reg clk_pos ;
reg clk_neg ;
reg [2:0]   cyc_cnt ;

always @(posedge clk_in or negedge rst) begin
    if(!rst)
        cyc_cnt <= 'd0 ;
    else begin
        if(cyc_cnt == 6)
            cyc_cnt <=  0    ;
        else
            cyc_cnt <= cyc_cnt + 1 ;
    end
end

always @(posedge clk_in or negedge rst) begin
    if(!rst)
        clk_pos <= 1'b0 ;
    else if(cyc_cnt == 3)
        clk_pos <= 1'b1 ;
    else if(cyc_cnt == 6)
        clk_pos <= 1'b0 ;
    else
        clk_pos <= clk_pos ;
end
always @(negedge clk_in or negedge rst) begin
    if(!rst)
        clk_neg <= 1'b0 ;
    else if(cyc_cnt == 3)
        clk_neg <= 1'b1 ;
    else if(cyc_cnt == 6)
        clk_neg <= 1'b0 ;
    else
        clk_neg <= clk_neg ;
end

assign clk_out7 = clk_pos | clk_neg ;
//*************code***********//
endmodule

标签:分频,wire,进阶,波形,clk,对齐,rst,占空比,reg
From: https://www.cnblogs.com/icwangpu/p/17035598.html

相关文章