题解 | #占空比50%的奇数分频#

占空比50%的奇数分频

http://www.nowcoder.com/practice/ccfba5e5785f4b3f9d7ac19ab13d6b31

alt

需要声明一个计数器cnt,计数最大值为7。

另外声明两个寄存器clk1,clk2。

clk1:clk_in上升沿到来时cnt=2|cnt=6时对clk1取反;

clk2:clk_in下降沿到来时cnt=2|cnt=6时对clk1取反;

clk_out7为clk1与clk2取逻辑或。

`timescale 1ns/1ns

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

//*************code***********//
reg    [2:0]    cnt;
reg            clk1;
reg            clk2;

always@(posedge clk_in or negedge rst)begin 
    if(!rst)begin 
       cnt <= 3'd0; 
    end
    else    if(cnt == 3'd6)begin 
       cnt <= 3'd0; 
    end
    else    begin 
       cnt <= cnt + 1'b1; 
    end
end 

always@(posedge clk_in or negedge rst)begin 
    if(!rst)begin 
       clk1 <= 1'b0; 
    end
    else    if((cnt == 3'd3) || (cnt == 3'd6))begin 
       clk1 <= ~clk1; 
    end
end

always@(negedge clk_in or negedge rst)begin 
    if(!rst)begin
       clk2 <= 1'b0; 
    end
    else    if((cnt == 3'd3) || (cnt == 3'd6))begin
       clk2 <= ~clk2; 
    end
end

assign clk_out7 = clk1 | clk2;

//*************code***********//
endmodule
全部评论

相关推荐

搞机墨镜猫:参考一下其他人简历吧, 把项目放最上面,没有项目就展开写实习,实习项目具体做了啥,现在很空 奖项写含金量高的,还有校园经历也是,不是运营岗基本上可以都删了
点赞 评论 收藏
分享
评论
7
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务