• 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. Mixed-Signal Design
  3. characterization using liberate

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 65
  • Views 6165
  • 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

characterization using liberate

TM20240913386
TM20240913386 over 1 year ago

I'm trying to characterize a full adder using liberate but the internal power I got is negative and I don't know why.
Can anyone help in this problem ?
In addition to that, I noticed that it's recommended to set variable power_info to 1 to be able to get the power calculation to know your problem. I did that but no file created.
What's the problem ?

Thanks in advance 

  • Cancel
Parents
  • Guangjun Cao
    Guangjun Cao over 1 year ago

    You need the at least the following settings before char_library, in order to get logfiles for power calculation,


    set_var extsim_deck_dir [pwd]/decks
    set_var power_info 1

    after the run, you will have powerInfo*.log in [pwd]/decks.

    in addition, you may want to save the simulation decks for further debug with this setting,

    set_var extsim_save_passed deck

    Decks will be saved insiude decks/ dir. there is a map.lst file that describes the mapping. You can find the right deck, ie. a sim.sp under the right dir. Open the sim.sp, remove saveoutput=none. Then run Spectre using the same simulation options (defined with extsim_cmd_option, or check Liberate logfile for the options that are used).

    The common reasons for negative internal power include,

    1. switching current has not settled to a static value, inwhich case, simulation time needs to be increased. you may try one of or all of these settings, power_tend_match_tran, sim_power_duration_extend .

    2. leakage current is too big/inaccurate. longer simulation and/or accurate simulation options may be needed for leakage

    3. inaccurate switching current, which need accurate simulation options (extsim_option)

    4. circuit behavior: in some case, your circuit need some cycles to reach a stable status.

    Regards,

    guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TM20240913386
    TM20240913386 over 1 year ago in reply to Guangjun Cao

    I'm using liberate version 23.1, power_info I think this option is not supported in this version.
    I used these settings but it didn't solve the problem.
    This is the power settings that I used:
    # Power settings
    set_var max_leakage_vector  100000
    set_var power_subtract_leakage  3
    set_var reset_negative_power  0
    set_var subtract_hidden_power  1
    set_var subtract_hidden_power_use_default 2
    set_var pin_based_power  0
    set_var max_hidden_vector 16384000
    set_var leakage_float_internal_supply  0
    set_var reset_negative_leakage_power  1
    set_var reset_leakage_current_mode  1
    set_var keep_default_leakage_group  1
    set_var duplicate_risefall_power  1
    set_var leakage_force_tristate_pin  1
    set_var power_minimize_switching 1
    set_var power_sim_estimate_duration 1
    set_var power_multi_vector_mode 3
    set_var leakage_expand_state vectors
    set_var leakage_merge_state  2        
    set_var power_tend_match_tran 1
    set_var leakage_sim_duration  2e-6
    set_var power_sim_estimate_duration 1
    set_var sim_power_duration_extend 1e-6
    set_var power_subtract_leakage_mode 2
    set_default_group -criteria {power max leakage min} -method {default table}
    set_var power_info 2
    set_var power_info_filename ${outdir}/decks/power.logs
    set_var ski_power_subtract_output_load_match_extsim 1
    set_var write_library_allow_switching_and_hidden_power 1

    After I open sim.sp for many iterations, when I simulate the sim.sp, the functionality of the circuit is correct but the waveform.txt only shows negative values for the voltage which is after saturation of the results.
    How can I debug more ? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 1 year ago in reply to TM20240913386

    Can you clarify if you see two logfiles inside ${outdir}/decks/ ? For example,

    [119] euvclo27::/sprt/scratch/guangjun/Liberate/example/decks > ls
    powerInfo1.log powerInfo2.log

    inside powerInfor1.log, you will see,
    * Cell=NOR2X1 Pin=Y RelatedPin=A1 RelatedPGPin=VDD Type=combinational Direction=rise_transition When= Deck= Vector_space= Vector_used=010
    - Leakage_state =
    - Leakage_value =
    - Raw_equation = (((-Q(VDD))*(VDD(VDD)-GND(GND))*0.5-(((Cload(Y)*(VDD(Y)-GND(Y)))*(VDDfinal(Y)-GND(Y))*0.5))))/capacitance_unit/#vector
    - Eval_equation = (((3.69393e-14)*(1.5-0)*0.5-(((1.5e-14*(1.5-0))*(1.5-0)*0.5))))/1e-12/1
    - Value = 0.0108295

    This explains how each power value is calculated. The euqation may vary depending on your power settings.

    To get the logfile, you ONLY need,

    set_var extsim_deck_dir ${outdir}/decks

    set_var power_info 1    ;# if first value is sufficient for debug, use 1.

    The remaining settings can be included once you have a good understanding about how power is calculated.

    Once you have the power logs, pick one value you want to debug. Find the corresponding calculation in the power log file. You will need to plot the current/voltage waveform from simulation results. If you do not need to debug values for all slew/load index, use 'select_index -style 1x1' to characterize first slew/load only.

     

    If you still do not see the power logs, or do not know how to do further debug, please raise a support request with Cadence customer support team. one of our AEs will need to look into your full test case. 

    Regards,

    Guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 1 year ago in reply to TM20240913386

    one more question: are you using arc-packet mode? if so, powerinfo may not be supported in this mode.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Guangjun Cao
    Guangjun Cao over 1 year ago in reply to TM20240913386

    one more question: are you using arc-packet mode? if so, powerinfo may not be supported in this mode.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • TM20240913386
    TM20240913386 over 1 year ago in reply to Guangjun Cao

    Yes, I'm using packet arc mode but in my liberate version which is 23.1 cell-packet mode is not supported because packet_arc_job_manager can't be traditional because it's not supported in this version.
    If I have misunderstanding you can tell me. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 1 year ago in reply to TM20240913386

    you can turn off arc-packet mode by using,

    set_var packet_clients 0

    then, use -thread option in char_library.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 1 year ago in reply to TM20240913386

    this is from the Liberate documentation on power_info,

    Note: This feature is not supported for distributed jobs. It is only meant to be run locally for
    debug purposes.

    • 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