微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 分频出来的时钟不稳定 问题 请高手指教

分频出来的时钟不稳定 问题 请高手指教

时间:10-02 整理:3721RD 点击:
FPGA 是xilinx kintex 7 ,  
从参考时钟153.6MHz, 用计数器分频出16Hz 出来, 最后管脚量的时钟有10ms抖动(附图是示波器打上persistent view)
单独测参考时钟153.6Mhz 很稳定



不明白code哪里有问题  请高手指教
reg [22:0] clk_sync_out_count;
reg clk_sync_out_r;
parameter CLK_div_N1=23'd4799999;
  //16Hz output has jitter



  always @(posedge refclki or posedge reset)
  begin
    if (reset == 1'b1)
begin
clk_sync_out_count   <= 23'd0;
clk_sync_out_r         <= 1'b0;
  end
    else
begin
  if (clk_sync_out_count == CLK_div_N1)
  begin
clk_sync_out_r<=~clk_sync_out_r;
clk_sync_out_count   <= 23'd0;
  end
else
  clk_sync_out_count<=clk_sync_out_count+1;
  end

  end //end alway


OBUF #(
.DRIVE(12),
.IOSTANDARD("DEFAULT"),
.SLEW("SLOW")
) OBUF_inst (
.O(clk_sync_out),
.I(clk_sync_out_r)
);

把reset和refclki都拉出来看看先。

   refclki 是稳定的 管脚可以量到reset 没有拉出来看  可以试试弄出来看看
另外做了个实验 分频出9.6MHz 的时钟 时钟是稳定的
我想是不和counter bit数太高 有没有关系

看下有没有如下问题:
1.pll锁定信号是不是一直锁定的?有没有出现失锁现象。
2.时序约束中有没有时序告警?

你的reset管脚是否有高频干扰? 试一试把:
always @(posedge refclki or posedge reset)
改成:
always @(posedge refclki)
因为reset肯定比一个refclki 时钟周期长,不怕检测不到reset。
或者干脆去掉代码中的复位逻辑试一试。

建议你检查一下时序。看静态时序分析的结果

Xilinx FPGA内部有DLL,建议用来同步此种分频出来后的clock 减低 jitter

同意7#建议。使用DLL/DCM/PLL 等内建结构来产生高需求的时钟


那个IP 最低只能做到1MHz , 做不到16Hz

产生9.6MHz 没有问题, refclki 是稳定的 pll 一直lock 没发现跳动refclki 有约束, 16Hz 出来  , 太慢了 我想也不需要需要约束吧  9.6MHz 也没有约束 出来的信号挺好

用PLL分成低频时钟,然后再产生16HZ。

时序有问题,fpga出来的不会这么差!

代码好像没有问题,建议你先仿真,然后看板子结果
一般来说前后仿真对了输出就应该对,如果不对 你就应该查一下你的板子了。

计数器  分段来做,保证你可靠运行

同意
建议如何分段? 有经验值吗?



   就是计数器位数不要一下子那么大!可以分成几部分,不然计数器跑不了很高的速度!

#4楼和#6楼的建议你有没有试一试?你的设计能达到这么高的频率吗?

没有试过分这么倍·

信元不够了。

感谢小编分享。蠋蝛蠝癧蛯

感谢小编分享。

clk_sync_out_count == CLK_div_N1改成 clk_sync_out_count > CLK_div_N1试试,或者把输出加 assign clk_out = clk_sync_out_r;

或者分级分频

最大可能还是你时序有问题,150多M的速度不算慢了,你分9.6M计数器组合逻辑小,你分16Hz,计数器组合逻辑大很多,很有可能会不满足。


最好不要用分频的时钟,在系统时钟下产生一个16k时钟的时能信号,替代16k的时钟。


分频的不是组合逻辑,计数器大应该也没有问题啊


我说的是23个cnt的q端出去要经过一堆组合逻辑再loop回到23个cnt的d端。如果只有5个cnt的话这部分组合逻辑就小很多。

Gooooooooooooood。

你选择的芯片支持这么高的时钟输入么?建议看手册确认。


可以试着再分频一次

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top