zoukankan      html  css  js  c++  java
  • SDC是如何炼成的?Exception篇

    讲述SDC中的各式各样的Exception,大体上可以分为“加严”和“放松”两种类型,如下面几个命令:

    ##更严格##
    set_max_delay

    set_min_delay

    set_data_check...

    ##更放松##

    set_false_path

    set_multicycle_path

    set_case_analysis

    set_disable_timing...

    需要强调的是需要加严的部分,对于异步路径,往往需要通过set_max_delay来约束,防止路径过长。而且有些跨时钟域(CDC)的路径,为了保证握手时的数据一致性,需要用到格雷码(Gray Code),约束时更加需要注意。



    多周期路径:

    之前的文章有提到多半周期路径,是为了加快数据的处理速度。这里的多周期路径则是针对那些不需要太快的处理速度,一定程度上节省面积和功耗。多周期路径常常发生在memory读写路径,某些复位路径,从慢时钟域到快时钟域的路径等等。

    当然,多周期路径是需要电路结构配合实现的,但总体思路有两个:

    (1)通过Enable信号控制Clock的采样时刻

    (2)通过Enable信号控制Data的变化时刻

    下面举一个通过方法(2)实现n-1个周期路径的例子:

     上图主体上是从D1寄存器到D2寄存器的一条路径,中间经过了很长的组合逻辑。特殊之处在于D1/D2的数据变化是受FSM状态机控制的,其中D1数据变化发生在第1个时钟周期后(FF1的输出信号使能),D2数据变化发生在第n的时钟周期后(FFn的输出信号使能)。从下面的波形图可以看出,D1_OUT到D2_OUT经过了n-1个周期。

     优先级顺序

    对于几个常见的exception命令,使用时要特别注意优先级顺序,避免出现想要的约束不起作用的情况。

    假设有一条从UFF1(CLKA)到UFF2(CLKB)的路径,想通过以下命令进行约束,最终的效果是怎样的呢?

    # CMD1s
    et_multicycle_path 2 -from CLKA -to CLKB
    # CMD2, 优先级比CMD1高,覆盖

    set_multicycle_path 3 -from UFF1/CP
    # CMD3,优先级更高,覆盖

    set_max_delay 6.6 -from UFF1/CP -to UFF2/D
    # CMD4,优先级比CMD3低,忽略

    set_max_delay 5 -from CLKA -to CLKB
    # CMD5,优先级最高,覆盖

    set_false_path -to UFF2/D

    可以看出,最终的效果还是false path,设置的max_delay不起作用。
     
  • 相关阅读:
    骆驼命名法,帕斯卡命名法和匈牙利命名法<转>
    海量数据库查询优化<转>
    备份数据库并生成Rar
    标准http状态码[英文注释版本]<转>
    IIS自动停止,iis自动关闭。应用程序池假死、自动重启以及iis权限等解决办法 <转>
    Flex/Silverlight的技术比较<转>
    .NET平台测试驱动开发模拟框架Moq简明教程(实例剖析)<转>
    VisualStudio用IE8调试时遇到的问题(转)
    English learning
    JS调用WebService示例
  • 原文地址:https://www.cnblogs.com/lelin/p/12689761.html
Copyright © 2011-2022 走看看