微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 已解决 综合,时钟下降沿问题

已解决 综合,时钟下降沿问题

时间:10-02 整理:3721RD 点击:

coding中用到了时钟的下降沿,可以综合吗,还是一定要改为上升沿,如果不可以改,又该怎么办?一般情况遇到此种问题该如何处理,请不吝赐教,谢谢

rising和falling都可以..没有问题.

都可以啊
create_clock -name clk -period 10 -waveform { 5 10 }
这不就是下降沿么,
ddr 还双沿处理呢,照样行啊,

是不是这样理解:如果系统中只存在一个时钟,所有的时序都用的是时钟的下降沿,这样按照正常的综合就可以。但是如果有的用的是时钟下降沿,有的用时钟上升沿,就是两种沿混着用,这种情况下综合应该会遇到问题吧?请多帮我解释下,谢谢

混用也不会出问题
除非你的设计有问题

你好,我的理解是,如果存在混用的情况,岂不是某些路径只会有半个周期的时序路径,综合时对应的时间裕度就会变小,正常都是一个周期的,之前理解的和其他人说到的都是说尽量用时钟上升沿,可否帮我再详细解释下遇到这种混用的情况,该如何进行综合,谢谢

就是sdc的 create_clock 把相位写好就行了啊
是有可能有半周期的path,很经常,

create_clock 把相位写好,具体如何理解?
平时时钟定义都是这么写的,比如 create_clock -period 40 -waveform [list 0 20] -name CK [get_ports CK]。如果在系统中既用到了CK的上升沿,又用到了CK的下降沿,那么在定义该时钟时会有什么不同?
还有若存在半个周期的路径,时序是不是容易出现问题?
我在这方面没有多少经验,请多指导,谢谢

麻烦你再帮我看下我的疑惑,打扰了,谢谢。

如果有些path确实用到半周期, create_clock倒是不需要改,
因为根据clock传播的规律, 有些path自然会用下降沿去采样下一个周期,也就是半周期,
比如memory出来的一些path,
create_clock -name clk -period 40 -waveform { 0 20 }; #缺省是上升沿半周期,
create_clock -name clk_b-period 40 -waveform { 20 40} ; #已经是下降沿 开始的,
至于clock 有的path是上升沿,有的是下降沿,这个不是通过create_clock就控制了的,
timing path自己自然知道了,只要仿真能过就行了,
至于半周期有很大的violation,你就要考虑了,是不是加一拍,或者改成普通1周期path,
否则是有可能没法过的,
还有个-phase 选项吧,create_clock ,还可以控制占空比,什么时候什么沿,
你man下看看


我在综合里定义了一个时钟create_clock -name CK-period 20 -waveform [list 10 0] [get_ports CK]用到了CK的下降沿触发,报出的结果有error: Invalid waveform. Edges must be an even number of monotonically increasing values less than one period in duration. 好像告诉不能以递减的方式来定义。
在之前按照create_clock -name CK-period 20 -waveform [list 0 10] [get_ports CK],我的setup time 报告中,路径的时序都是由起点0(CK rise edge)分析到终点10(CK fall edge),时序路径只有半个周期,slack为负值。为什么分析终点没有到20,不知道为什么会这样,又该如何处理,麻烦再帮忙解惑,谢谢!

我又追问了一个问题,有空的时候帮我看下,谢谢。非常期待

时钟相位改变,相当于就是上升沿和下降沿改变了啊,在code中,最好另外用一个always语句来处理下降沿触发的逻辑。

下降沿触发是单独用一个always来处理的。现在我问的是下降沿综合分析路径的起点问题。现在我已明白。路径分析起点从input port开始,set_input_delay默认是上升沿开始的,所以每次总是从上升沿开始。现在只要在set_input_delay命令中加上-clock_fall,路径分析就可以从下降沿开始了,终点也是下降沿。这样分析路径会有一个周期。

sorry是我写错了,改回来了,
半周期是 create_clock -p 20 -w { 10 20}不是 -w {100 }
10 0 当然是语法错误了,

你那个是半周期path,当然是10ns了,否则就是20ns 周期,
至于为啥半周期, 不太清楚,和设计有关吧,
现在是timing满足不了是吧,

我用了一个很简单的代码,就一个时钟,采用下降沿触发。现在只要在set_input_delay命令中加上-clock_fall,DC综合后路径分析就可以从下降沿开始了,终点也是下降沿,这样分析路径是一个周期。如果没有加上-clock_fall,分析路径是从时钟上升沿到时钟下降沿,半个周期了。

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

网站地图

Top