目录
偶数分频
奇数分频
N+0.5分频
任意小数分频
偶数分频
偶数分频是最简单的,N分频需要计数到(N-1),并在(N/2 - 1)和(N - 1)处更改输出的取值即可,只需要单一时钟沿计数。下面是四分频电路的实现:
代码:
module div4(
input wire clk,
input wire rst,
output reg clk_div4
);
reg [1:0] cnt;
always @(posedge clk or posedge rst) begin
if (rst) begin
// reset
cnt <= 2'b00;
end
else if (cnt == 2'b11) begin
cnt <= 2'b00;
end
else begin
cnt <= cnt + 1'b1;
end
end
always @(posedge clk or posedge rst) begin
if (rst) begin
// reset
clk_div4 <= 1'b0;
end
else if (cnt == 2'b01) begin
clk_div4 <= 1'b1;
end
else if(cnt == 2'b11) begin
clk_div4 <= 1'b0;
end
end
endmodule
testbench:
module tb_4();
reg clk,rst;
wire clk_div4;
initial
begin
clk = 0;
rst = 1;
#5
rst = 0;
end
always #10 clk = ~clk;
div4 inst(
.clk(clk),
.rst(rst),
.clk_div4(clk_div4));
endmodule
仿真波形图如下: