数字电路中经常会遇到需要将时钟信号进行分频,一般分为奇数分频和偶数分频,同时对占空比的要求也不一样,常见的是需要保持占空比仍为50%。本文通过Verilog代码实现简单的分频电路。文末附上所有代码和仿真波形。
二分频
二分频电路简单,只需要一个D触发器,将触发器的输出Q反相之后再接回输入D端即可完成。
三分频
三分频电路比较复杂一点,因为要保证占空比为50%,所以势必分频后的时钟信号有一个沿是跟着输入时钟的下降沿变化的,想清楚这一点,下面的波形图就很容易得到。
可见需要首先产生两个特殊的三分频的电路,其占空比为1/3,将两个信号或之后就得到了占空比为50%的三分频信号。
四分频
偶数分频的电路都比较简单,只需要控制好计数器进行翻转即可。
五分频
五分频电路类似三分频,具体见代码和仿真波形。
代码
module divider
(
input clk,
input rst_n,
output reg div_clk_2,
output wire div_clk_3,
output reg div_clk_4,
output wire div_clk_5
);
//div_2
always @ (posedge clk or negedge rst_n) begin
if(!rst_n)