Advertisement

基于Bresenham算法的小数分频器分数率除法器实现于FPGA平台

阅读量:

最近一位朋友向我提出了一个问题。需要将其分割为一条2.048MHz的主时钟信号,并且确保主从边沿之间的相位抖动最小化。我联想到,在计算机图形学中用于绘制直线的经典Bresenham算法可能会提供解决方案,并最终实现了这一目标。

输入时钟频率设定为... ,输出时频配置值设为... ,类似于在坐标系中绘制一条连接点(\text{源频}+1,\text{目标频})至目标点(1,1) 的曲线轨迹线段。以输入信号波形周期为基础控制绘图工具沿x轴方向移动,则相应的y轴方向移动速度即代表输出信号波形周期变化情况。

Verilog代码如下:

module divider (clk_in,clk Out,nrst); input reg_clk In,nrst; output reg_clk Out; reg clock Out;}

parameter input_freq = 33000; // both in kHz
parameter output_freq = 2048;

reg[16:0] err; // change to 18 bits if necessary, look down

always @(posedge clk_in or negedge nrst)
begin
if (nrst == 1'b0) begin
clk

全部评论 (0)

还没有任何评论哟~