占空比为50%的奇数分频器设计思路
1. 首先进行上升沿触发的N模计数,计数器从零开始,到 (N-1)/2 处时钟翻转,然后经过 (N+1)/2再次翻转
得到一个占空比非50%的输出时钟out1.
2. 同时进行下降沿触发的N模计数,计数方法同上升沿相同,然后得到一个占空比非50%的输出时钟out2
3.把以上两步得到的输出时钟out1和out2相“与”得到的输出out即占空比为50%的N分频(N为奇数)。
下面是占空比为50%的N分频代码,修改参数N的值就可以实现任意奇数分频:
module div_odd(clk,out
);
input clk;
output out;
reg [m:0] a=0,b=0; //m为满足 2^(m+1)>N 的任意整数
reg out1,out2;
always@(posedge clk)
begin
if(a<(N-1)/2)
begin
a<=a+1;
out1<=0;
end
else if(a==N-1)
a<=0;
else
begin
a<