zoukankan      html  css  js  c++  java
  • clock sense和analysis mode

    PrimeTime会自动track clock tree中的inverter和buffer,从而得到每个register的clock sense。

    如果clock tree中,只有buffer和inverter,到达register clock的clock signal可以表示为"unate"。

    positive unate:rising edge的clock source引起register clock pin的rising edge。

    negative unate:rising edge的clock source引起register clock pin的falling edge。

    clock被PT评断为non-unate的情况:

    异或逻辑中,clock unate的极性跟另一个input有关,PT认为是一个non-unate的信号。

    PrimeTime认为pulse generator的输出不是unate。

    在non-unate的clock network中,可以通过命令set_clock_sense来设置需要分析的clock的sense。

    如果对一个unate的clock,使用这个命令,sense与实际的sense不一致时,PrimeTime产生一个error。

    set_clock_sense -positive -clock [get_clocks CLK] [get_pins mux1.z]----------只有positive sense的clock传递过去。

    -clock来指定pin上的clock,一个pin上可能有多个clock source。

    set_clock_sense -stop_propagation +timing arc 表示clock在这个timing arc上, physically上不会进行propagate。

    set_clock_sense -logical_stop_propagation 表示clock可能会作为data继续进行propagate,但是不会作为

    clock进行分析。

    set_clock_sense -logical_stop_propagation -clocks CLK U3/A

    pulse clock:一些短的pulse,它的rising和falling edge都由一个clock的同一个edge来trigger。

    pulse clock的定义可以由一个pulse generator cell/create_generated_clock/set_clock_sense

    -edge {1 1 3}表示第一个上升沿和下降沿都是1时刻,3时刻是下一个上升沿。

    在半导体设备中,process/temperature/voltage对器件性能影响很大,在PrimeTime中,通过命令

    set_operating_conditions来设置operate condition,(process, temperature, voltage)

    PrimeTime提供的三种analysis mode;

    1)single operating mode,  launch clock,data基于该condition的max,capture clock基于该condition的min.

    2)best-case/worst-case mode,对于setup check,使用worst case,对于hold check,使用bese-case

                                                  相同点:launch clock,data基于该condition的max,capture clock基于该condition的min.

                                                  不同点:使用两个condition。

    3)On-Chip-Varient mode,允许同一个path在进行setup和hold check时,可以使用不同的PVT(operating mode)

                                                   相同点:对于setup mode,launch clock和data使用max delay,capture clock使用min delay。

                                                   不同点:但是max delay和min delay的condition是不同的

                                                   相同点:对于hold mode,launch clock和data使用min delay,capture clock使用max delay。

                                                   不同点:但是max delay和min delay的condition是不同的

    在一个minimum-maximum的analysis中,这个minimum和maximum的值可以是:

    1)Input and Output external delays

    2)Port wire load model/Net wire load model

    3)Delays annotated form Standard Delay Format(SDF)

    4)Port Fanout number

    5)Net capacitance/resistance

    6)Clock latency and Clock transition time

    7)Input port driving cell

    在计算maximum时,PT使用longest path, worst-case operating conditions, longest transition times, maximum cell delays

    Net delay value的值,可以直接通过两个sdf的文件来标识,也可以让PT基于不同的operating condition来计算。

    Best-case/Worst-case相对于Single operating condition来说,只是节约了时间,并没有加强约束。

    但是OCV的结果会更加悲观。

    Worst-case(data delay最大),用于检查setup check,Best-case(data delay最小),用于检查hold check。

    但是data端用Worst case,capture clock端用Best case只能用OCV来分析。

    OCV(On chip varient):由于cell位置的不同,在制造过程中,而带来的cell/net的uncertainty。

    OCV在CTS之前,ideal clock network中,可以用set_clock_uncertainty来建模 

                           在CTS之后,用propagated clock latency来建模

    使用bc-wc进行时序分析时的delay信息来源:

    1)从两个SDF files中annotate delay;  读取两个sdf文件或者一个sdf文件中有min/max信息

    read_sdf  -analysis_type bc_wc my_design.sdf(读取sdf中的max/min两种数值)

    2)让PrimeTime自己计算delay;  需要设置两个operating condition来进行计算

    set_operating_conditions -min BCCOM -max WCCOM

    OCV通过用两种极端的condition来计算最worst的情况,

    还有一种set_derate的情况,也可以用来分析更worst的情况,人工增加某段延时,或者某个path的延时。

    set_timing_derate -early 0.8 -late 0.2

    -early设置path中的最短路径,-0.8表示减少20%的mergin,如setup check中的capture clock

                                                                                       hold check中的data path

    -late设置path中的最短路径,-1.2表示增加20%的mergin,如setup check中的data path

                                                                                       hold check中的capture clock

    set_timing_derate -net_delay -early 0.8 [get_cells hier_cell]

    report_timing_derate -net -early 0.80

    report_timing_derate [get_cells U*]

    报告出design中derate的情况

    set_operating_conditions -analysis_type on_chip_variation -min BEST -max WORST

    report_timing -delay_type min

    report_timing -delay_type max

    Clock Reconvergence Pessimism removal(CRPR)

    在OCV模式下的,更精确的一种限制,对于两条共享一段physical segment的path,同时被设置了min delay

    path和max delay path。通过CRPR来消除这种不合理的path segment

    在primetime中,通过timing_remove_clock_reconvergence_pessimism来设置。

    这时的report,slack会更加合理。

    通过set_pulse_clock_min_width和set_pulse_clock_max_width来对clock pulse的width进行约束。

    对于level-high的pulse width check,Primetime用rising edge的max delay和falling edge的min delay来进行检查

    在OCV模式下,也需要设置CPRP,来使得check更加合理。

  • 相关阅读:
    wireshark1
    攻防世界Crypto高手进阶区部分Writeup
    flag_in_your_hand1
    扩展GridView之添加单选列
    C#关于日期月天数和一年有多少周及某年某周时间段的计算
    C# 开发和使用中的32个技巧
    TSQL编程的全局变量
    计算当前月底天数
    存储过程编写经验和优化措施
    ASP.NET 程序中常用的三十三种代码
  • 原文地址:https://www.cnblogs.com/-9-8/p/5730446.html
Copyright © 2011-2022 走看看