在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8145|回复: 12

[求助] 时钟约束问题

[复制链接]
发表于 2011-11-1 11:27:44 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 sweeting 于 2011-11-1 11:31 编辑

时钟clk ,分频clk_div2,clk_div3,clk_div4    分频时钟之间互斥,分频时钟与clk需要分析时序关系,分频位例化clk_buf
sdc:
create_clock -name clk -period 100 [get_ports clk]
create_gegerated_clock -name clk_div2 -source clk -master_clock clk [get_pins clk_buf/Y] -devide_by 2 -add
create_gegerated_clock -name clk_div3 -source clk -master_clock clk [get_pins clk_buf/Y] -devide_by 3 -add
create_gegerated_clock -name clk_div4 -source clk -master_clock clk [get_pins clk_buf/Y] -devide_by 4 -add

set_clock_groups -physically_exclusive -name phy_excl_2 -group[get_clocks clk_div2] -group [get_clocks clk_div3 clk_div4]
set_clock_groups -physically_exclusive -name phy_excl_3 -group[get_clocks clk_div3] -group [get_clocks clk_div2 clk_div4]
set_clock_groups -physically_exclusive -name phy_excl_4 -group[get_clocks clk_div4] -group [get_clocks clk_div2 clk_div3]

设置变量
set timing_enable_multiple_clocks_per_reg true
 楼主| 发表于 2011-11-1 11:35:25 | 显示全部楼层
pt   check_timing 时,检查出warning

Information: Checking 'unexpandable_clocks'
Warning: There is 1 clock set for which periods were not expandable.
Failed clocks set                 related clocks
-----------------------------------------------------------
1                                         clk_div2
1                                         clk_div3
1                                         clk_div4
1                                         clk
 楼主| 发表于 2011-11-1 11:43:46 | 显示全部楼层
warning 可以忽略吗,还是怎么处理?
同一位置产生多个时钟,这种约束是否有问题啊?应该怎么约束?

投片在即,急啊,请大家帮忙救火~
发表于 2011-11-1 11:52:18 | 显示全部楼层
你设计就只有这4个时钟么?
你用试一下:set_clock_groups -physically_exclusive -name phy_excl -group[get_clocks clk_div2] -group [get_clocks clk_div3] -group [get_clocks clk_div4]

按理说100和200,300,400不应该是unexpandable啊。
 楼主| 发表于 2011-11-1 12:46:32 | 显示全部楼层
设计很多时钟,搞不定的拿上来讨论,没必要全部吧。

set_clock_groups -physically_exclusive -name phy_excl -group[get_clocks clk_div2] -group [get_clocks clk_div3] -group [get_clocks clk_div4]  
这个命令试过了,结果一样的。
发表于 2011-11-1 13:29:47 | 显示全部楼层
去掉clk_div3,clk_div4
 楼主| 发表于 2011-11-1 14:06:27 | 显示全部楼层
本帖最后由 sweeting 于 2011-11-1 14:09 编辑

老大,我不太明白啊
去掉clk_div3,clk_div4,只分析clk_div2吗?  还能检查到所有的timing吗,还是通过别的什么方式检查?

另外,具体几分频是通过外部软件控制的, 所以各种分频都可能存在;时序路径含有正反沿,担心时序问题;
发表于 2011-11-1 14:28:20 | 显示全部楼层
既然“分频时钟之间互斥”,只要在clk_div2下时序收敛,clk_div3,clk_div4自然就OK了
发表于 2011-11-1 14:44:20 | 显示全部楼层
他既然说你的时钟unexpandable,意思就是2个时钟域之间不能得到一个最小公倍数的时钟周期. 比如时钟周期为1/3ns和1/7ns。你改一下时钟周期看看。
又或者只在clk_buf/Y处用create_clock定义个时钟看看,不要用create_generated_clock,各种方法试一下撒,解决以后才去看到底是哪里出问题了。
发表于 2011-11-1 15:17:08 | 显示全部楼层
我试验了一下,如果2个时钟之间的最小公倍数过大的话才会发生unexpandable的情况。原因就是你设计中存在2个时钟的最小公倍数远远大于他们本身,或者一个时钟的周期远远大于另外一个时钟周期。
比如一个时钟周期为1000,另外一个为3333333333,就会报这个warning。具体看pt中:man PTE-052有详细解释。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-14 00:19 , Processed in 0.033518 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表