深度解析create_clock与create_generated_clock的区别

深度解析create_clock与create_generated_clock的区别

吾爱IC社区将用本文为各位揭秘create_clock与create_generated_clock之间的联系和区别,为何要单独create一个generated_clock,以及这两种方式create的clock,它们clock之间的联系以及timing check。

create_generated_clock 是用来说明generated clock与source clock的相位(边沿)关系,同时根据source clock找到master clock以及source clock 和master clock的关系,

最终会确定generated clock和master clock的相位(边沿)关系。
所以在genereated clock的时候一定要明确generated clock与master clock的相位关系(rise->rise or rise->fall or fall->rise or fall->fall),这些关系由桥梁source clock嫁接,所以需要明确generated clock和source clock,以及source clock和master clock的关系,如果根据声明找到的generated clock和master clock的关系和实际的关系不一致,否则会造成一些分析错误。
如:sta的时候找不到generated clock和source clock相位关系,会将generated clock的source latency 设置为0
如下图:

如果直接声明如下,
create_clock -period 10 clk
create_generated_clock -name CLKdiv2
-divide_by 2
-source clk
[get_pins Udiv/Q]
那么根据声明,generated 和master clock的关系如下(工具会根据source clock 找到master clock,并确定source clock 和master clock的关系,当前source clock即master clock)

上面的STA 分析其实是错误,可以看到timing report:

而实际上的,generated 和 master clock的关系如下

对应的timing report:

解决方法有2种:

  1. 改变generated clock的source,即让generated clock和source clock的路径唯一且单一(单一是指,声明的相位边沿关系和实际的相位边沿关系一致)。一般做法就是将source clock设置在触发器的clock端。如下:
    create_generated_clock -name CLKdiv2
    -divide_by 2
    -source [get_pins Udiv/CP]
    [get_pins Udiv/Q]
    这样generated clock和source clock的关系和声明的一直。工具会根据声明的source clock 找到它的master clock,同时确定source clock和master clock相位相反的关系,由此就确定了generated clock和master clock的关系。
  2. 直接声明generated clock和master clock的相位边沿关系。如下:

create_generated_clock \

-name CLKdiv2 \

-edges {2 4 6}

-source CLK \

[get_pins Udiv/Q]

http://www.52-ic.com/100.html

  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值