• 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 Characterization Help

Stats

  • Locked Locked
  • Replies 48
  • Subscribers 126
  • Views 32293
  • 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 Characterization Help

anurans
anurans over 7 years ago

Hi All,

For the characterization of a standard cell library, I am using LIBERATE_15.14.070 version. The cell spice model was generated using IC6.1.5, and I am using Spectre as the external simulator for the characterization. I have a question specifically on the leakage_power nodes of the .lib file generated by Liberate. For an example, for a simple inverter, I ended up having leakage_power values as follows (in the link):

https://pastebin.com/grfasa1s

However the resulting leakage values do not follow the circuit simulation values in IC6-Spectre.

> Can anybody explain why the leakage value related to VSS pin is always 0 ? 

> How does the Liberate calculate these values ? Is there a way to evaluate the accuracy of Liberate-Spectre simulation ?

Thanks in advance

Anuradha

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

    one important question.

    With dual-edge triggering clock, the output transition can be either rise/fall for the same input/clock transitions. this means, the actual transition of Q also depends on previous clock transition as well as input. you may also have to use -prevector to prepare the Q state.  

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

    Thanks for pointing this out. Yes as you said, the current output depends on the previous clock edge (neg or pos) and the corresponding captured data. So that we should have different prevectors for different define_arc states, am I right ?

    i.e. for the rising edge of the define_arc, the prevector should have states corresponding to the falling edge....

    Next, in prevectors how can we define the type of clock and data transition. According to the manual we can only assign '0' and '1' for the prevector values. In the case we prepare Q for the rising edge (where the prevector should have states for the previous falling edge), can we write the prevector as shown below :

    define_arc \
        -prevector_pinlist {D CK RB} \
        -prevector "001 001 101" \
        -vector "1R1" \
        -related_pin CK \
        -pin Q \

    Anuradha

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

    Hi,

    The syntax of prevectors looks fine, as long as the states/sequence is correct/expected behavior.

    vector has have R/F for pin/related_pin. The order must be same as pinlist in define_cell. But you can overwrite this but local -pinlist in define_arc

    You might also need to add "when" attribute, if the arc is dependent on side pins. eg when "D" or when "!D" for both rise/fall of CK, if the Q transition is different under these conditions.

    Regards,

    Guangjun

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

    Hi Guangjun

    When you are in spare time, can you help me solve a problem. I can choose hspice as my external simulator. I use "set_var extsim_cmd "/eda/synopsys/hspice/H-2013.03-SP1/hspice/bin/hspice" ", and "char_library   -extsim hspice -ccs -ecsm -cells ${cells}". But it still go wrong. The error is  "LIBERATE - SYSTEM ERROR - could not execute command: /eda/synopsys/hspice/H-2013.03-SP1/hspice/bin/hspice altos.hspice.test >& /dev/null HSpice is not available, exiting."

    When you look this question,can you give me some suggestions? 

    Thanks !

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

    Hi Fengye,

    I do not have access to hspice. Can you use the exact command to run hspice on a netlist standalone?

    Regards,

    guangjun

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

    Hi Guangjun,

    I can run hspice on a netlist standalone. But I can't use it as my external simulator in Liberate. Besides, I use spectre and spectre-ski have large different on switching power but with the same delay and hidden power.

    Thanks,

    fengye 

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

    Is your hspice run with the exact command like you specified in Liberate?

    On the dynamic power difference between with/without SKI,

    1. do you see differences in leakage?

    2. are you using the latest Liberate? 

    3. which results, ski or non-ski,  look correct to you?

    regards,

    guangjun

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

    Hi Guangjun,

    Thanks for your reply.My default setting is ski, then I just change "char_library   -extsim spectre -ccs -ecsm -cells ${cells}", I get the two types results.  

    1)The leakage,hidden power and delay are the same, the only different is switch power. 

    Besides,when I change "char_library   -extsim spectre-ski -ccs -ecsm -cells ${cells}", then the results are totally  the same. I guess the ski and spectre-ski are different?

    2) The liberate is not the latest.

    3) All my cells are simulated by hspice, then I use liberate to characterize them. But the power unit of Liberate  is Pj. I can't compare them. I don't know how it calculates? So I can't kow which is correct? This is also my one question?

    Thanks,

    fengye

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

    Hi Fengye,

    1. ideally, the results should be the same wi/wo SKI enabled. There may some minor differences. who provided you "-extsim spectre_ski"? this is not a documented option.

    2. please switch to the latest Liberate. Always use the build-in spectre, unless there is an issue. Sometimes, there might be some issues with a particular Spectre version.

    3. unit can be changed, using set_units command. you can also use the expression in power.info and the waveform from Liberate, compare them with your hspice results. I would be VERY supprized if there are difference between the two simulations, when the exact decks are used. 

    Regards,

    guangjun 

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

    Hi Guangjun,

    Thanks for your suggestion. 

    1. About external simulator

    1> Just with default setting, the default simulator is ski not  Alspice. The log file shows "

    LIBERATE parameter "simulator" set to "ski"
    Start Characterizing Library at (Wed Dec 5 22:21:39 HKT 2018)

    WARNING (LIB-103): When using Spectre-SKI, runtime may significantly improve when using an extsim_model_include/define_leafcell flow. This is needed to enable the Spectre modellib flow.

    INFO (LIB-966): Using Spectre version 15.1.0.627.isr12 located at: /eda/cadence/2016-17/RHELx86/MMSIM_15.10.627/bin/spectre.
    *Info* Use temporary directory '/tmp'.
    Initializing Spice

    *Info* : Initializing SKI environment...

    ".

    The reslut is the same when using "-extsim ski"

    2> Then I use -extsim spectre ,the log file shows "LIBERATE parameter "simulator" set to "spectre"
    Start Characterizing Library at (Wed Dec 5 22:24:49 HKT 2018)". Here no show of spectre version.

    I m

    3> Then I use "-extsim spectre-ski", the log file shows "

    LIBERATE parameter "simulator" set to "spectre-ski"
    LIBERATE parameter "spectre_use_char_opt_license" set to "0"
    Start Characterizing Library at (Wed Dec 5 22:28:43 HKT 2018)

    Spectre is available
    *Info* Use temporary directory '/tmp'.
    Initializing Spice
    *Info* Adding 2 global models to Spice.

    "

    the results of "-extsim spectre-ski" and "-extsim spectre" are the same.

    4> The results have very large difference in switch power, but with the same delay ,leakage and power.

    2. The difference of unit means it's W in my hspice run, but it's pJ in the lib from liberate. I don't the time how to attain between power and energy. So I don't know how to compare power. In fact , I have compared the leakage and delay, for the same arc setting , all above have nearly leakage and delay.

    3. According to your suggestion, I get the power information., like these "

    * Cell=ND2M0R_st Pin=Z RelatedPin=A RelatedPGPin=VDD Type=combinational Direction=rise_power When= Deck= Vector_space=FFR Vector_used=110
    - Leakage_state =
    - Leakage_value =
    - Raw_equation = (((-Q(VDD))*(VDD(VDD)-GND(GND))*0.5-(((Cload(Z)*(VDDfinal(Z)-GND(Z)))*(VDDfinal(Z)-GND(Z))*0.5))))/capacitance_unit

    - Eval_equation = (((5.11052e-12)*(0.3-0)*0.5-(((1e-15*(0.299998-0))*(0.299998-0)*0.5))))/1e-12
    - Value = 0.766533"

    Besides, by setting "set_var extsim_save_passed deck", I get some information ,but still don't understand.

    My problem has made me for a  long time ,I can't solve it. When you are in your spare time ,can you help me solve it. I am grateful for your reply.

    Thanks,

    fengye

    • 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