• 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. Cadence Liberate CCS Power Characterization Accuracy

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 12568
  • 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

Cadence Liberate CCS Power Characterization Accuracy

anurans
anurans over 4 years ago

Hi, I am comparing the CCS characterization accuracy of cells in a shift register with its spice simulation. The power characterization settings used in Liberate looks like below:

#---------------------------------------------------- Accuracy -------------------------------------------

set_var extsim_cmd_option "+spice +lorder MMSIM:PRODUCT"
set_var extsim_deck_header "simulator \lang=spectre\nOpt1 options reltol=1e-4\nsimulator \lang=spice"
set_var extsim_leakage_option "method=gear gmin=1e-15 redefinedparams=ignore rabsshort=1m"
set_var extsim_option "method=gear gmin=1e-15 redefinedparams=ignore rabsshort=1m"
set_var extsim_tran_append "lteratio=10"
set_var extsim_reuse_ic 3

#----------------------------------------------- Power ---------------------------------------------------
### Leakage ###
set_var max_leakage_vector [expr 2**10]
set_var leakage_float_internal_supply 0 ;# get worst case leakage for power switch cells when off
set_var reset_negative_leakage_power 1 ;# convert negative leakage current to 0

### Power ###
set_var voltage_map 1 ;# create pg_pin groups, related_power_pin / related_ground_pin
set_var pin_based_power 0 ;# 0=based on VDD only; 1=power based on VDD and VSS (default);
set_var power_combinational_include_output 0 ;# do not include output pins in when conditions for combinational cells

set_var force_default_group 1
set_default_group -criteria {power avg} ;# use average for default power group

#set_var power_subtract_leakage 4 ;# use 4 for cells with exhaustive leakage states.
set_var subtract_hidden_power 2 ;# 2=subtract hidden power for all cells
set_var subtract_hidden_power_use_default 3 ;# 2=subtract hidden power from matched when condition then default group
set_var power_multi_output_binning_mode 1 ;# binning for multi-output cell considered for both timing and power arcs
set_var power_minimize_switching 1
set_var max_hidden_vector [expr 2**10]
#-------------------------------------------------------------------------------------------------------------------------

Based on the observations, I have few questions to get clarified.....

1. In CCS white paper, the char accuracy was said to be ~2% with CCS modeling, however with these specific settings I cannot reach that accuracy level. In my case, the power accuracy lies within 6-10% of spectre spice simulations. Is there any extra option/switch I can use to improve the accuracy of the simulations (I use auto indexing mode with min/max transitions defined in the ttemplate) ? 

2. It's recommended to use the analytical PWL pre-driver waveform for the best accuracy. However it is not very clear, how  this is calculated. Is it based on some empirical values or based on template/model information ?

Thanks in advance

  • Cancel
Parents
  • Guangjun Cao
    Guangjun Cao over 4 years ago

    1. which liberate version are you using?

    2. is this on cell basis? 

    anurans said:
    In my case, the power accuracy lies within 6-10% of spectre spice simulations

    3. are you using liberate generated deck for spectre simulations? this is the right way for debugging values

    4. which power model are you comparing, nldm or ccsp? 

    5. set_var predriver_waveform 2 is generally recommended. 

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

    Hello Guangjun Cao, 

    1. LIBERATE_19.20.100

    2. No, the spice simulation of the entire shift register in spectre.

    3. Cell level debugging is not the issue. The comparison is performed for larger designs.

    4. Good point, I do not use -ccsp switch with char_library command. Then this must be NLPM ?

    5. Do you know how this is computed ? Is it based on template value we provide ?

    Thanks

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

    1. if all debug fails, try newer release

    anurans said:
    LIBERATE_19.20.100

    2. you should only use liberate generated deck for debug. set power_info 1 or 2. check manual on this and use it for debug

    anurans said:
    No, the spice simulation of the entire shift register in spectre.

    3. then, your comments of 'ccs power' is incorrect. it is still nldm power. do '2'

    4. see '2'. also check DOC on x_powe_x settings you are using. 

    anurans said:
    Do you know how this is computed ? Is it based on template value we provide

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

    1. if all debug fails, try newer release

    anurans said:
    LIBERATE_19.20.100

    2. you should only use liberate generated deck for debug. set power_info 1 or 2. check manual on this and use it for debug

    anurans said:
    No, the spice simulation of the entire shift register in spectre.

    3. then, your comments of 'ccs power' is incorrect. it is still nldm power. do '2'

    4. see '2'. also check DOC on x_powe_x settings you are using. 

    anurans said:
    Do you know how this is computed ? Is it based on template value we provide

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

    Hi, Problem solved ! With -ccsp settings, now I see the error of <2%  in characterization compared to the design levels spice simulations. This is what I expected to see......

    Thanks

    • 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