找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

查看: 1640|回复: 5

[求助] mux后的时钟创建

[复制链接]
发表于 2024-9-12 11:28:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

在写sdc的时候遇到一个问题,clk1 和clk2 是异步时钟,经过mux选择后还经过了分频器。
我分别在mux的I0和I1创建了时钟,并在p点创建了相应的generated_clock,请问这两个generated_clock应该设为asynchronous还是physically_exclusive,大概是这样的:

        create_clock -period $periods -name  CLK1  [get_pins mux/I0]

        create_clock -period $periods -name  CLK2  [get_pins mux/I1]
        create_generated_clock -name GCLK_div_clk1 -source     [get_pins mux/I0]       -divide_by 2 [get_pins DIV/p]

        create_generated_clock -name GCLK_div_clk2 -source     [get_pins mux/I1]       -divide_by 2 [get_pins DIV/p] -add
分组的时候应该是:         set_clock_groups -name asyngroup -asynchronous   -group " CLK1 GCLK_div_clk1" -group "CLK2   GCLK_div_clk2 "
还是:                            set_clock_groups -name asyngroup -asynchronous   -group " CLK1 " -group "CLK2 "
                                      set_clock_groups -name asyngroupdiv -physically_exclusive   -group " GCLK_div_clk1  " -group " GCLK_div_clk2 "


aaa.png
发表于 2024-9-12 11:40:19 | 显示全部楼层
同求大神指导,我一般都是设成
set_clock_groups -name asyngroupdiv -physically_exclusive   -group " GCLK_div_clk1  " -group " GCLK_div_clk2 "
set_clock_groups -name asyngroup -asynchronous   -group " CLK1 GCLK_div_clk1" -group "CLK2   GCLK_div_clk2
回复 支持 反对

使用道具 举报

发表于 2024-9-12 14:19:49 | 显示全部楼层
flyskyseu 发表于 2024-9-12 11:40
同求大神指导,我一般都是设成
set_clock_groups -name asyngroupdiv -physically_exclusive   -group " GC ...

如果是不考虑SI的话,只用-asynchronous就可以了。如果考虑串扰的SI的分析,需要设置成physically_exclusive,就是避免不必要的的串扰分析。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-13 10:18:30 | 显示全部楼层
hxy2018 发表于 2024-9-12 14:19
如果是不考虑SI的话,只用-asynchronous就可以了。如果考虑串扰的SI的分析,需要设置成physically_exclus ...

谢谢大佬回复,另外请教一个问题,如果像下图这样clk1和clk2完全异步,sdc
里可不可以不创建clk1和clk2 ,而是只在p点后直接create_clock,频率按两个时钟里最严的约,这样会有什么不妥吗?

                               
登录/注册后可看大图

回复 支持 反对

使用道具 举报

发表于 2024-9-13 18:56:16 | 显示全部楼层
jiexin01 发表于 2024-9-13 10:18
谢谢大佬回复,另外请教一个问题,如果像下图这样clk1和clk2完全异步,sdc
里可不可以不创建clk1和clk2  ...

如果mux前没有时钟驱动的cell,而且你能确定哪个时钟是最差情况,可以只在mux输出创建一个时钟。如果是普适情况,应当尽量往前创建。因为最差情况不仅只考虑最高频率,还有transition/latency/duty cycle以及这两个时钟与其他同步时钟在交汇处的相位关系等因素。
回复 支持 反对

使用道具 举报

发表于 2024-9-17 21:12:12 | 显示全部楼层
jiexin01 发表于 2024-9-13 10:18
谢谢大佬回复,另外请教一个问题,如果像下图这样clk1和clk2完全异步,sdc
里可不可以不创建clk1和clk2  ...

一般不会这样定义,除非能保证ck1和clk2和后面定义的clock没有相交,没有CDC的问题才行,否则很难设约束。如果有CDC,又设置成async的话,那么CDC path上的cell就漏约了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|关于我们|联系我们|隐私声明|EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2026-1-16 08:29 , Processed in 0.036924 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表