zoukankan      html  css  js  c++  java
  • dc概论之多周期路径multicycle_path续1

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://bb2hh.blogbus.com/logs/38665424.html

     注明:如需转载,请注明作者出处,谢谢~,Author:pythonlong
     以下根据资料和个人体会整理,如果错误,疑问欢迎请指正,讨论!!

    在设置multicycle_path的过程中,一定要注意到底start clock 是多周期,还是end clock 是多周期。这关系到时序分析。默认情况下,set_multicycle_path对建立时间的分析是设置end clock为多周期,对保持时间分析师设置start clock为多周期。
    即:
    set_multicycle_path -setup 2 -from a -to b 
    等价于
    set_multicycle_path -setup 2 -end -from a -to b 

    set_multicycle_path -hold 1 -from a -to b
    等价于
    set_multicycle_path -hold 1 -start -from a -to b

    了解multicycle的,应该都知道设置setup的周期是X,那么设置hold的周期为X-1。
    下面的设置我们也会按照这样默认的规矩来设置。

    下面再分析一次快时钟采集慢时钟:

    假设我们已经知道3*clk1>delay>2*clk1
    那么,如果我们不仔细思索,大概会写成如下:
    set_multicycle_path -setup 3 -from clk1 -to clk2
    set_multicycle_path -hold 2 -from clk1 -to clk2
    下面我们扩展成默认写法:
    set_multicycle_path -setup 3 -end -from clk1 -to clk2
    set_multicycle_path -hold 2 -start -from clk1 -to clk2
    那么我们看下时序分析:B点setup检查,A点hold检查

    这里我们会发现,和我们预计的不太一样,问题就出在工具的默认设置上。
    这里我们不看setup的check,这个和我们想要检查的一样。
    我们看下hold的设置:
    set_multicycle_path -hold 2 -start -from clk1 -to clk2
    我们来了解下start,这个start说明start clock是多周期的。
    dc默认a点作为hold的check点。这里又有默认的start,所以就产生上图的hold check。
    如何才能让dc做我们想要的check 呢?改成下面形式:
    set_multicycle_path -setup 3 -end -from clk1 -to clk2
    set_multicycle_path -hold 2 -end -from clk1 -to clk2
    分析结果:B点setup检查,A点hold检查

    我们再看一下慢采快。

     

    同样,假设我们已经知道3*clk1>delay>2*clk1
    那么,同样,如果我们不仔细思索,大概会写成如下:
    set_multicycle_path -setup 3 -from clk1 -to clk2
    set_multicycle_path -hold 2 -from clk1 -to clk2
    扩展成默认写法:
    set_multicycle_path -setup 3 -end -from clk1 -to clk2
    set_multicycle_path -hold 2 -start -from clk1 -to clk2
    那么我们看下时序分析:B点setup检查,A点hold检查  

     

     分析和快采慢一样。


    修改成:
    set_multicycle_path -setup 3 -start -from clk1 -to clk2
    set_multicycle_path -hold 2 -start -from clk1 -to clk2
    分析如下:B点setup检查,A点hold检查

    建议:
    快采慢:

    慢采快:

     

     

  • 相关阅读:
    「初级篇」跟我一起学docker(二)--核心概念和安装
    程序员有哪些借口可以让自己写出低质量的代码?
    「初级篇」跟我一起学docker(一)--认识
    后端程序猿怎么提高技术?提高编码质量?
    河南这么大的省,也所谓的准一线,为什么IT行业就是发展不起来呢?
    JAVA使用Gson解析json数据,实例
    JAVA equals 和 “==”的异同
    JAVA WEB 对返回数据进行按中文名称首字母A~Z升序排序
    JAVA验证数字的正则表达式,来一发
    【转】Java.util.ArrayList.set()方法实例
  • 原文地址:https://www.cnblogs.com/liuokay/p/2005688.html
Copyright © 2011-2022 走看看