• 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. Liberate-max_transition

Stats

  • Locked Locked
  • Replies 22
  • Subscribers 126
  • Views 20414
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Liberate-max_transition

fengye
fengye over 6 years ago

Hi, everyone,

     When I use liberate to characterize some standard cells, like OAI21M0R at much lower voltage 0.3V. I set  such parameter with auto-index.

set_var max_transition 1.2e-7
set_var min_transition 1.0e-8
set_var min_output_cap 1e-17

However, I get the following error reminder

.........*Error* (char_library -auto_index) : the maximum load for OAI21M1R:Z is smaller than the specified min_output_cap (5.80844e-18F <= 1e-17F). This problem might be caused by insufficient drive strength or a max_transition value that is too small.

If I increase the max_transition value, the D-flipflop cannot meet the sequential timing. Did anyone meet this question?

  • Cancel
Parents
  • BarPouy
    BarPouy over 5 years ago

    Hi fengye

    Just I read your post. I assume your library operates in subthreshod regime. I'm also characterising a subthreshold library and I faced the same issue like you.

    The node I'm using is a ULP (not GP) technology with relative high threshold (near to 0.6V). To specify max_transition I run a Monte Carlo simulation on the extracted netlist of the largest bufx12 (not inv) in my library with a Load of 50fF, e.g. for TT-corner (25°) and vdd =0.4V. Then I measured the worst rise/fall transition of the output from 30% to 70%. This is in the mentioned corner 11.243 ns (fall). Actually this cell, with x12 strength, should drive 24fF, but I drived it for a fanout of 2.

    For the min_transition I selected for the same cell a load of 0.1fF and I measured the best rise/fall transition of the output from 30% to 70% and halved it. This is 0.3635 ns. For min_output_cap I set the same load of 0.1fF which I use to specify min_transition.

    I defined the index_1 / index_2 of all templates (delay, power and constraint) the same: # I'm not sure this strategy is optimal?

    {0 1/12 2/12 3/12 ... 12/12}  # actually this is in form of {0 0.08334 0.16667 0.25 0.33334 0.41667 0.5 0.58334 0.66667 0.75 0.83334 0.91667 1} referring to strengths x1 to x12 (as index_1)

    in case of index_2 the max load (here 50fF should be assigned to the last value of the index, i.e. '1' and the other loads should be assigned to the other values of the index appropriately (That is what I expected, but I'm not sure?)

    However I've an issue with the cells with the smaller than x12 strength. Some cells have, say, max 8 or 6 or even 2 strengths. What happen for such cell with such strategys? e.g for a D-FF there are only two strengths of x1 and x2. It is not possible to drive such load (I mean 50fF) with a D-FF of x1 in subthreshold regime. Therefore it does not make sense to assign such big load to the last value of the D-FF index. One Solution could be to specify for each cell class, i.e. the same count of strength, an index schema, e.g with max 9 values for the cell class with 8 strengths or only 3 values for D-FF. I'm not sure this is a good or even common strategy?

    How have you done?

    The other question is the simulation of the cell, even largest buf in SS / -40° /0.4V corner to specify max_transition. My cell has issue, i.e the time is too larg. Have you faced also this issue? Or, in other words have you specified also a corner of SS / -40° /0.3V for your library)?

    Thaking you in anticipation!

    BarPouy

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • BarPouy
    BarPouy over 5 years ago

    Hi fengye

    Just I read your post. I assume your library operates in subthreshod regime. I'm also characterising a subthreshold library and I faced the same issue like you.

    The node I'm using is a ULP (not GP) technology with relative high threshold (near to 0.6V). To specify max_transition I run a Monte Carlo simulation on the extracted netlist of the largest bufx12 (not inv) in my library with a Load of 50fF, e.g. for TT-corner (25°) and vdd =0.4V. Then I measured the worst rise/fall transition of the output from 30% to 70%. This is in the mentioned corner 11.243 ns (fall). Actually this cell, with x12 strength, should drive 24fF, but I drived it for a fanout of 2.

    For the min_transition I selected for the same cell a load of 0.1fF and I measured the best rise/fall transition of the output from 30% to 70% and halved it. This is 0.3635 ns. For min_output_cap I set the same load of 0.1fF which I use to specify min_transition.

    I defined the index_1 / index_2 of all templates (delay, power and constraint) the same: # I'm not sure this strategy is optimal?

    {0 1/12 2/12 3/12 ... 12/12}  # actually this is in form of {0 0.08334 0.16667 0.25 0.33334 0.41667 0.5 0.58334 0.66667 0.75 0.83334 0.91667 1} referring to strengths x1 to x12 (as index_1)

    in case of index_2 the max load (here 50fF should be assigned to the last value of the index, i.e. '1' and the other loads should be assigned to the other values of the index appropriately (That is what I expected, but I'm not sure?)

    However I've an issue with the cells with the smaller than x12 strength. Some cells have, say, max 8 or 6 or even 2 strengths. What happen for such cell with such strategys? e.g for a D-FF there are only two strengths of x1 and x2. It is not possible to drive such load (I mean 50fF) with a D-FF of x1 in subthreshold regime. Therefore it does not make sense to assign such big load to the last value of the D-FF index. One Solution could be to specify for each cell class, i.e. the same count of strength, an index schema, e.g with max 9 values for the cell class with 8 strengths or only 3 values for D-FF. I'm not sure this is a good or even common strategy?

    How have you done?

    The other question is the simulation of the cell, even largest buf in SS / -40° /0.4V corner to specify max_transition. My cell has issue, i.e the time is too larg. Have you faced also this issue? Or, in other words have you specified also a corner of SS / -40° /0.3V for your library)?

    Thaking you in anticipation!

    BarPouy

    • Cancel
    • Vote Up 0 Vote Down
    • 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