请使用D触发器设计一个同时输出2/4/8分频的50%占空比的时钟分频器
注意rst为低电平复位
`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 clk_in_2,clk_in_4,clk_in_8;
assign clk_out2 = clk_in_2;
assign clk_out4 = clk_in_4;
assign clk_out8 = clk_in_8;
//二分频,每一个时钟翻转一次
always@(posedge clk_in or negedge rst)begin
if(!rst)
clk_in_2 <= 0 ;
else
clk_in_2 <= ~clk_in_2 ;
end
//四分频,每一个二分频时钟翻转一次
always@(posedge clk_in_2 or negedge rst)begin
if(!rst)
clk_in_4 <= 0 ;
else
clk_in_4 <= ~clk_in_4 ;
end
//八分频,每一个四分频时钟翻转一次
always@(posedge clk_in_4 or negedge rst)begin
if(!rst)
clk_in_8 <= 0 ;
else
clk_in_8 <= ~clk_in_8 ;
end
//*************code***********//
endmodule