题解 | #时钟分频(偶数)#

时钟分频(偶数)

https://www.nowcoder.com/practice/49a7277c203a4ddd956fa385e687a72e

`timescale 1ns/1ns

module even_div
    (
    input     wire rst ,
    input     wire clk_in,
    output    wire clk_out2,
    output    wire clk_out4,
    output    wire clk_out8
    );
//*************code***********//
reg [3:0]cnt;
always@(posedge clk_in or negedge rst)
if(!rst)
    cnt<=0;
else begin
    if(cnt==7)
        cnt<=0; 
    else    
        cnt<=cnt+1;   
end

reg rclk_out2;
reg rclk_out4;
reg rclk_out8;
always@(posedge clk_in or negedge rst)
if(!rst)begin
    rclk_out2<=0;
    rclk_out4<=0;
    rclk_out8<=0;
end
else begin
    case(cnt)
    0:begin
        rclk_out2<=1;
        rclk_out4<=1;
        rclk_out8<=1;
    end
    1:begin
        rclk_out2<=0;
        rclk_out4<=1;
        rclk_out8<=1;
    end
    2:begin
        rclk_out2<=1;
        rclk_out4<=0;
        rclk_out8<=1;
    end
    3:begin
        rclk_out2<=0;
        rclk_out4<=0;
        rclk_out8<=1;
    end
    4:begin
        rclk_out2<=1;
        rclk_out4<=1;
        rclk_out8<=0;
    end
    5:begin
        rclk_out2<=0;
        rclk_out4<=1;
        rclk_out8<=0;
    end
    6:begin
        rclk_out2<=1;
        rclk_out4<=0;
        rclk_out8<=0;
    end
    7:begin
        rclk_out2<=0;
        rclk_out4<=0;
        rclk_out8<=0;
    end
    endcase
end
assign clk_out2=rclk_out2;
assign clk_out4=rclk_out4;
assign clk_out8=rclk_out8;
//*************code***********//
endmodule

全部评论

相关推荐

点赞 评论 收藏
分享
牛客84809583...:举报了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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