微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 关于set_false_path的几个问题,请大神解疑

关于set_false_path的几个问题,请大神解疑

时间:10-02 整理:3721RD 点击:
set_false_path 问题:
clk、clk_64(clk的64分频,以下同理)、clk_128、clk_256,它们之间如-from clk to clk_64是否可以设置为false_path?

看此贴http://bbs.eetop.cn/viewthread.php?tid=316442&from=favorites中的Q1.1可知上述时钟是同步时钟,按照其说法,可以不定义为false_path,可是书上讲两个不同时钟域之间的时序路径可以定义为false_path。问关于上述时钟,我是否可以有如下定义:
set_false_path -from [get_clocks clk] to [get_clocks clk_64]
set_false_path -from [get_clocks clk_64] to [get_clocks clk]
....................
clock两两之间的时序路径定义为false_path


逻辑上都有做同步处理的才设为false path,没有就不行
另外,时钟域间设false path太土了,一般用set_clock_groups

set_clock_groups 中-options: -physically_exclusive -logically_exclusive -asynchronous感觉一个都不符合啊

时钟之间是否false path是有前端逻辑功能设计需求决定的,主要看前端是否为同步时钟域,不是后端能随便设置的约束。

它们都是来自于同一个时钟,且频率存在整数倍关系,属于同步时钟,此处不应该设置为false_path

正常情况这种分频时钟默认源时钟和分频时钟是同步的,也就是要检查时序,如果一定要设置为false path,必须注意一点,比如aclk进行4分频得到了bclk,如果想设置aclk和bclk为异步,必须在bclk的后面加一个CKBUF或者clock-gating,在这个上面再定义一个generated clock,cclk,然后定义aclk和cclk为异步,aclk和bclk还是保持同步关系,不然分频的功能无法保证。希望可以解答你的疑惑。

如果两个时钟是分频异步的关系,分频的时钟直接create clock,不需要用generated clock了,再使用set_clock_groups,异步分别放在两个group里即可。

你说的也是一种方法,但是如果分频电路的寄存器输出有自反馈的话,这种方法是有问题的,会打断寄存器Q端自反馈的timing arc,这样就影响到了分频本身的时序检查。所以在我们公司是用这种写法的。

就像你上面说的,我们也会在分频Q后加buffer或clock gating,不论同步与否,分频时钟的定义点都不建议定在Q上。时钟定义在Q上是个笨办法,重新综合或者pr之后如果名称变了还得再修改SDC。

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

网站地图

Top