50占空比
奇分频(n)
always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
cnt <= 0;
else if (cnt == n-1)
cnt <= 0;
else
cnt <= cnt + 1'b1;
end
always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
clk_1<= 0;
else if (cnt == (n-1)/2)
clk_1 <= 1'b1 ;
else if (cnt == (n-1))
clk_1 <= 1'b0 ;
else
clk_1 <= clk_1 ;
end
always @ (negedge clk or negedge rst_n)
begin
if (!rst_n)
clk_2 <= 1'b0;
else if (cnt == (n-1)/2 )
clk_2 <= 1'b1 ;
else if (cnt == (n-1) )
clk_2 <= 1'b0;
else
clk_2 <= clk_2 ;
end
assign clk_out = (clk_1 | clk_2);
偶分配(n)
always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
cnt <= 0;
else if (cnt == (n-1)/2 )
cnt <= 0;
else
cnt <= cnt + 1'b1;
end
always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
clk_out <= 1'b0;
else if (cnt == (n-1)/2 )
clk_out <= ~clk_out ;
else
clk_out <= cclk_out ;
end