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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3057|回复: 5

[求助] 今日一题

[复制链接]
发表于 2013-5-14 19:34:44 | 显示全部楼层 |阅读模式

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

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

x
未命名.jpg

如图一个时钟网络:如何创建时钟才能够让pr正确分析设计中的路径;

如下设计有什么问题:

create_clock –name global_clk –period 10

create_generated_clock –name clk1 [get_pinsdiv2/z] –source [get_ports global_clk] –divide_by 2

create_generated_clock –name clk1 [get_pinsdiv4/z] –source [get_ports global_clk] –divide_by 4

set_clock_groups –logically_exclusive-group [get_clocks clk1] –group [get_clocks clk2] \

–group [get_clocks global_clk]


create_generated_clock –name clk5_1 [get_pinsmux1/z] \

–source [get_ports global_clk] –combinational

create_generated_clock –name clk5_2 [get_pinsmux1/z] \

–master_clock clk1 –combinational -add

create_generated_clock –name clk5_3 [get_pinsmux1/z] \

–master_clock clk2 –combinational -add


set_clock_groups –physically_exclusive-group [get_clocks clk5_1] –group [get_clocks clk5_2] \

–group [get_clocks clk5_3]


create_generated_clock –name clk4 [get_pinsdiv8/z] \

–source [get_pins mux1/z] –divide_by 8

create_generated_clock –name clk3 [get_pinsdiv16/z] \

–source [get_pins mux1/z] –divide_by 16


set_clock_groups –logically_exclusive-group [get_clocks clk4] \

–group [get_clocks clk3] –group[get_clocks clk5]


Encounter工具在进行逻辑B中时序检查的时候会出现clk1clk4两个时钟之间的检查由于这两个时钟在逻辑B中同一时刻只能有一个时钟进入到逻辑B,所以在报告的clk1clk4之间的检查是错误的检查方式,请问怎么消除这种情况?如果我将clk1clk4设置成false路径,那实际存在数据交互的逻辑a和逻辑b之间的时序检查也被取消了。所以请有类似经验的帮忙回答一下。

发表于 2013-5-15 13:28:47 | 显示全部楼层
楼主这个case,setup timing最worst的case是a和b两个reg都是global_clk这个10M的clock,所以我建议你在clk1~clk5 之间设setup time 的false path.只要保证a和b在10M clock下没有setup violation即可.
  但是hold time就不一定了,取决于clock path的skew, 所以在做hold time fix的时候clk1~clk5之间所有可能的path都要分析到.
 楼主| 发表于 2013-5-15 13:56:06 | 显示全部楼层
回复 2# warner_eda


    创建时钟树的时候我想,把
clk1,clk2,clk3,clk4,clk5都通过create_generated_clock来创建成和global_clk之间的关系
但是分析的时候我想只创建global_clk时钟,不知道这样是不是能够达到设计要求。
就是不知道在时序分析的时候因为global_clk的时钟频率很高是100MHz,这样在优化的时候会不会导致时钟树被优化的不平衡了?
比如:优化以后在global_clk驱动a逻辑的时候,clk3驱动逻辑而导致从global_clk起点出发的时钟经过了分频到达clk3再到达逻辑b,这样的路径延迟和global_clk直接到达a逻辑的延迟不平衡。会不会出现这种情况呢?
发表于 2013-5-15 14:07:22 | 显示全部楼层
[quote]回复  warner_eda
应该不会有你说的情况出现, 一般clock skew也就在几百ps左右,clk3经过分频最小的clock period也有160ns.只要global clk -> global clk能满足, global_clk到其他的分频clock就不会timing vio. 几百ps的clock skew影响很小
发表于 2013-5-15 14:09:28 | 显示全部楼层
不过要提醒楼主的是,在做CTS的时候要注意这几个clock的balance. 如果skew偏大会有hold time violation。过多的hold time violation path会影响area和timing fix的迭代次数。
发表于 2014-3-2 20:21:40 | 显示全部楼层
To 楼主,
create_generated_clock –name clk4 [get_pinsdiv8/z] \
–source [get_pins mux1/z] –divide_by 8
这个语句不用加-master吗?若要加master,你在mux之后定义了多个时钟,应该加哪一个master呢?谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-27 03:43 , Processed in 0.020226 second(s), 7 queries , Gzip On, Redis On.

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