• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Stop Condition of Liberate trio in characterizing a DFF

Stats

  • Replies 1
  • Subscribers 125
  • Views 164
  • Members are here 0

Stop Condition of Liberate trio in characterizing a DFF

TN202507027633
TN202507027633 9 days ago

Hi all,

Currently i am characterizing setup time of a DFF, and i have a question regarding the stop condition of Liberate trio. 

- Testbench : 

 The criteria for setup time is degradation and i sweep variable "constraint_delay_degrade" from 0.1 to 1 with the step of 0.1 to observe the setup time reported by the tool. (I purposely set the variable "constraint_delay_degrade_abstol " small  such that it cannot impact the criteria)

- Result :

 There are many cases that i think Liberate stops "too early".

 For instance :

 When "constraint_delay_degrade" is 0.9, the setup time is 17.64ps and ck2q is 4.26ps. The relative difference percentage of this ck2q compared to "relaxed" ck2q is only about 62.6%, which is much less than 90%.

 Furthermore, in the case when "constraint_delay_degrade" is 0.8, the relative difference percentage is higher than the case of 0.9 and equal to 77.8%. (I expect that the 0.9 case should give a higher value of ck2q or relative difference percentage than the 0.8 case)

- Question : 

 So my question is, what is the criteria for Liberate to stop searching ? I read in the Liberate manual that it will stop when the number of iteration or simulation time exceeds specified value, but none of these cases is likely to happen in my testbench. The manual also mentions about Brent's algorithm, but i cannot find more information about this in the manual. Therefore, i think it would be great if i can know more about this topic. Please give me any hints for this one.

Thanks for your support

  • Cancel
  • Sign in to reply
Parents
  • Guangjun Cao
    Guangjun Cao 9 days ago

    Hi,

    With delay pushout as the method, Liberate will stop searching when the clk2q delay increases by the percentage defined by constraint_delay_degrade. The last two simulations will check by slightly varying the clk/d timing and ensure changes in clk2q delay is with constraint_delay_degrade_abstol. then one of the last two clk/D timing is used in .lib.

    Before doing bisectional search, tool will check if the defined vector is valid. This typically is done within the first 3-5 simulations. During this phase, D edge is wither well before (for setup) or after (hold) clk. clk2q delay is measure at such points and used as the reference. Next, during the bisection search, each time, clk/d timing is varied, clk2q delay is measured and compared to the reference. once constraint_delay_degrade(defalt is 10% of reference) is reached, tool will refine the steps until adjecent simulations do not show changes more than  constraint_delay_degrade_abstol(2ps by default).

    Hope this is helpful.

    Guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Guangjun Cao
    Guangjun Cao 9 days ago

    Hi,

    With delay pushout as the method, Liberate will stop searching when the clk2q delay increases by the percentage defined by constraint_delay_degrade. The last two simulations will check by slightly varying the clk/d timing and ensure changes in clk2q delay is with constraint_delay_degrade_abstol. then one of the last two clk/D timing is used in .lib.

    Before doing bisectional search, tool will check if the defined vector is valid. This typically is done within the first 3-5 simulations. During this phase, D edge is wither well before (for setup) or after (hold) clk. clk2q delay is measure at such points and used as the reference. Next, during the bisection search, each time, clk/d timing is varied, clk2q delay is measured and compared to the reference. once constraint_delay_degrade(defalt is 10% of reference) is reached, tool will refine the steps until adjecent simulations do not show changes more than  constraint_delay_degrade_abstol(2ps by default).

    Hope this is helpful.

    Guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information