1. 偶数倍,整数分频:
对原时钟进行偶数倍整数分频,可对其计数,计数器不同bit位即为各分频时钟,bit0 = 原时钟、bit1 = 2分频、bit2 = 4分频、bit3 = 8分频...
example:
reg[5:0] div_cnt; // 本例到16分频,如需更高增加counter位数即可,位数按分频倍数需要定义
always @ (posedge clk_ori or negedge rstn)
if (!rstn)
div_cnt <= 0;
else
div_cnt <= div_cnt + 1;
wire clk_div2 = div_cnt[1];
wire clk_div4 = div_cnt[2];
wire clk_div8 = div_cnt[3];
wire clk_div16 = div_cnt[4];
2. 对原时钟3分频,占空比等长
reg[2:0] div_cnt; // 位数按分频倍数需要定义
always @ (posedge clk_ori or negedge rstn)
if (!rstn)
div_cnt <= 0;
else
if(div_cnt == 2) // counter的巧用
div_cnt <= 5;
else
div_cnt <= div_cnt + 1;
wire clk_div3 = div_cnt[2];