微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 时钟分频处理的问题,请大家帮忙看看

时钟分频处理的问题,请大家帮忙看看

时间:10-02 整理:3721RD 点击:
下面是我时钟部分的代码always@(negedge OSC_CLK or negedge CLR_X) begin
   if(CLR_X==0)
      OSC_CLK2 <= 0;
   else
      OSC_CLK2 <= ~OSC_CLK2;
end
always@(negedge OSC_CLK2 or negedge CLR_X) begin
   if(CLR_X==0)
      OSC_CLK4 <= 0;
   else
      OSC_CLK4 <= ~OSC_CLK4;
end
always@(negedge OSC_CLK4 or negedge CLR_X) begin
   if(CLR_X==0)
      OSC_CLK8 <= 0;
   else
      OSC_CLK8 <= ~OSC_CLK8;
end
always@(*) begin
   if(ALS_enable==1)
      case(ADC_TIME)
      2'b00: CLK = OSC_CLK;
      2'b00: CLK = OSC_CLK2;
      2'b00: CLK = OSC_CLK4;
      2'b00: CLK = OSC_CLK8;
      endcase
   else
      CLK = OSC_CLK;
end
CLK是我实际的工作时钟,由于设计需要,在ALS_enable为1时,CLK需要根据ADC_TIME选择降频后的时钟
ALS_enable是工作中反馈回来的信号,在工作期间会变化;ADC_TIME是配置信息,设定好就不会变了
我想问的是,在综合时,对这几个时钟该怎么约束才是可靠的呢?
我是对OSC_CLK2、OSC_CLK4、OSC_CLK8约束为generate clock
然后OSC_CLK、OSC_CLK2、OSC_CLK4、OSC_CLK8之间设faulse path
不知道有什么不对或需要补充的,请大家指点一下,谢谢

求指点啊,没经验,不知道自己弄的对不对

我觉得应该用计数器做分频器

不推荐使用这种分频方法,
所有分频后时钟基于同一个时钟源较好,比如
源为clk,可以用一个计数器分频得到clk_div2/clk_div4/clk_div8


谢谢你,已修改为计数器分频,请问我的CLK在综合时该怎么约束呢?因为CLK的频率在工作中会变化,不知道怎么约束才合理


谢谢,已修改为计数器分频,能不能说下在综合时如何约束CLK呢?CLK的频率会变化

要是最高频率不是很高的话,就按最高的约束,要是太高,请教高手吧

时钟用最高约束
分频这样写,以二分频为例:
create_generated_clock -name clk_div2 -source [get_ports clk] -divede_by 2 [get_pins U/Q]
U/Q代表clk_div2的输出dff的q端。



    LZ的这个分频很高端啊,这种分频有什么好处不,虽然约束,DFT会麻烦点


非常感谢你的细心回答,那对最高频率约束,我用下面的语句对吗?  
set_case_analysis 0 [get_ports ADC_TIME[0]]
set_case_analysis 0 [get_ports ADC_TIME[1]]

我觉得可以,你就是让mux选择最高频信号接入dff。
具体不太懂了,不能瞎说,只能帮到这了。


好的,感谢

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

网站地图

Top