• 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. Input Capacitance Characterization in Cadence Liberate

Stats

  • Locked Locked
  • Replies 26
  • Subscribers 125
  • Views 30816
  • 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

Input Capacitance Characterization in Cadence Liberate

anurans
anurans over 6 years ago

Hi All,

I have a transistor level description of a custom standard cell which is made of pass transistors and transmission gates. 

As can be seen, since the input buffering (i.e. an inverter) is missing (i.e. input B) in this type of a cell, the input capacitance seen at B input depends on the capacitive load presents at the output. How can we indicate this to Liberate and make the input capacitance of the cell a function of output load capacitance instead of a fixed value ? 

Thanks in advance

Anuradha

  • Cancel
  • Guangjun Cao
    Guangjun Cao over 6 years ago in reply to anurans

    are we still talking about the same cell? if so, you will not be able to get a valid ccs mode for such a cell. CCS model creation relies on the related PG pins, which does not exit in your case.

    Guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • anurans
    anurans over 6 years ago in reply to Guangjun Cao

    Yes Guang, it's about the same cell. But without the "harness", characterization works just fine. The only issue is the capacitance and power numbers generated by the tool were wrong. 

    I was wondering whether we cannot use one of "input pins" as a PG pin to the output since output capacitance is truly excited by the input signal in this type of a cell. So end of the day, does this mean that we have no way to characterize this type of cell at all ? 

    Thanks alot for all the inputs so far Guang....

    Anuradha

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 6 years ago in reply to anurans

    The cell is not a standard cell. Nor is it supported by Liberty format. 

    Since there is no PG pin, power does not make any sense to a downstream STA tool.

    Guangjun

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • anurans
    anurans over 6 years ago in reply to Guangjun Cao

    Hi Again,

    I saw a similar post regarding a transmission gate type (non-standard) cell characterization issue : 
    https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/41066/characterization-of-a-transmission-gate-liberate

    So would Liberate AMS do a better job in characterizing such non-standard cells ? 

    Anuradha

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 6 years ago in reply to anurans

    It is about Liberty specification/support, not how this should be characterized. we have discussed this before. If you can find a specification for this cell in Liberty documentation, and how this cell should be characterized, please let me know.

    Guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • anurans
    anurans over 6 years ago in reply to Guangjun Cao

    Dear Gaungjun, 

    Hi, sorry for bringing this post up again. But this question is related to the very "harness" example shown in Liberate manual (pg 132, Product Version 16.1, October 2017). You can take a look at it again here:

    https://pastebin.com/QZrD6Xb6

    This example is for an "un-buffered mux" which is quite similar to the cell type we have discussed here. This example suggests to use external input drivers (two cascaded inverters) and an external load as a wrapper to the cell that's characterized. This technique seems to solve the large input capacitance and timing errors that observed in normal characterization process. However two things are not clear (Manual doesn't explain it) :

    1. Are the driving inverters in the wrapper (harness subckt) also taken into account for power measurements ?

    2. When measuring the capacitance to the inputs of the actual cell, does the measurement system isolate the capacitance loading introduced by driving circuits in the wrapper ?

    Looking forward to your explanation. Thanks

    Anuradha

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 6 years ago in reply to anurans

    Hi Anuradha,

    The example is a generic one, it is not necessary an recommendation for a particular type of cell.

    1. a harness will be used to provide a driver or bias or load. power characterized based on current flowing in/out a port of you block to be characterized.

    2. capacitance is characterized based on the current in/out of a port over a period of time, ie. charge. 

    So, if there is current path from your power to the harness through the ports to be characterized, the characterized model might be affected.  

    Regards,

    Guangjun

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • anurans
    anurans over 6 years ago in reply to Guangjun Cao

    Hi, one strange observation I find after using the input drivers in the harness, is the non-monotonicity in index1 data. Take a look at this (in the generated .lib file) :

    cell_rise (delay_template_7x7_1043) {
    index_1 ("0.0294363, 0.029438, 0.0293399, 0.0305652, 0.0330034, 0.0368964, 0.0424564");
    index_2 ("0.001, 0.0017421, 0.00434703, 0.00932152, 0.0170715, 0.0279457, 0.0422546");
    values ( \
    "0.107349, 0.107349, 0.107349, 0.107349, 0.107349, 0.107349, 0.107349", \
    "0.107465, 0.107465, 0.107465, 0.107465, 0.107465, 0.107465, 0.107465", \
    "0.107164, 0.107164, 0.107164, 0.107164, 0.107164, 0.107164, 0.107164", \
    "0.106852, 0.106852, 0.106852, 0.106852, 0.106852, 0.106852, 0.106852", \
    "0.106702, 0.106702, 0.106702, 0.106702, 0.106702, 0.106702, 0.106702", \
    "0.106364, 0.106364, 0.106364, 0.106364, 0.106364, 0.106364, 0.106364", \
    "0.106601, 0.106601, 0.106601, 0.106601, 0.106601, 0.106601, 0.106601" \
    );
    }

    You can see that the 3rd value in the index 1 is smaller than previous two, so this violates the slew-load combinations intended for the cell modeling. What could possibly be the reason for this ? I don't find any errors i.e. Bad CCS data, and all the cells passing the characterization. However downstream tools complain about the values in the index1.

    Anuradha

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 6 years ago in reply to anurans

    Are you using -auto_index option in the char_library? if so, this looks like a bug.

    Guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • anurans
    anurans over 6 years ago in reply to Guangjun Cao

    No, I don't. You may find the settings in following : 

    https://pastebin.com/kwQnDew7

    Thanks 

    Anuradha

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
<>

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