一、偶数分频器
偶数分频器原理不在介绍,直接给出verilog代码。
module even_div
#(
parameter DIV = 4,
parameter WIDTH = 8
)(
input clk,
input en,
input rst_n,
output reg locked,
output reg clk_out
);
reg [WIDTH-1:0] div_reg = DIV;
always@(posedge clk or negedge rst_n)begin
if(!rst_n)begin
locked <= 1'b0;
clk_out <= 1'b0;
div_reg <= 0;
end
else begin
if(!en)begin
locked <= 1'b0;
clk_out <= 1'b0;
div_reg <= 0;
end
else begin
//clk_out locked.
locked <= 1'b1;
//divide counter
if(div_reg < (DIV-1'b1))begin
div_reg <= div_reg + 1'b1;
end
else begin
div_reg <= 0;
end
//According value in Divide Counter, clk_out is output
if(div_reg<(DIV>>1))begin
clk_out <= 1'b1;
end
else begin
clk_out <= 1'b0;
end
end
end
end
endmodule
二、奇数分频
如图所示,任意奇数分频器的关键在于clk_a和clk_b的实现,若能实现clk_a和clk_b,然

本文介绍了使用Verilog实现偶数、奇数及任意小数分频器的方法。包括具体的Verilog代码示例,以及如何通过组合不同类型的分频器来达到小数分频的效果。
最低0.47元/天 解锁文章
8211

被折叠的 条评论
为什么被折叠?



