• 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. Subthreshold Standard Cells Characterization by Liberat...

Stats

  • Locked Locked
  • Replies 20
  • Subscribers 125
  • Views 19199
  • 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

Subthreshold Standard Cells Characterization by Liberate

BarPouy
BarPouy over 5 years ago

Hi there,

I'm trying to characterize a standard cells library. I'm using tcl-files, based on RAK.

Nwell of cells in this library does not connected to VDD but also to VDDNW, which could have other values, e.g. 0 V. I set the voltages in char_setup file in this way:

set_vdd     -attributes {related_bias_pin VDDNW direction input voltage_name VDD}  VDD  ${VDD}

set_vdd     -type nwell -attributes {pysical_connection device_layer direction input voltage_name VDDNW }  VDDNW  0

set_gnd VSS 0

Please notice, that there is not any pin with the name VDDNW in the cells layout. For LVS of cells I added tapcell, comprising VDD, VDDNW and VSS, to the cell layout.

Characterization starts and aborts very fast without generating any desired results (see below message on the screen).

---------------------------------------------------------------

Starting on grid with 10 cpus
---- Template Generation start ----
---- Template Generation done ----
-- Characterization Summary --
0 warnings
0 errors

Starting on grid with 10 cpus
---- Characterization start ----
---- Characterization done ----
-- Characterization Summary --
0 warnings
0 errors

Starting on grid with 2 cpus
---- Write library start ----
---- Write library done ----
-- Write library Summary --
0 warnings
0 errors
0 monotonicity warnings

Starting on grid with 2 cpus
---- Write CCS library start ----
[5]    Done

--------------------------

The tool messages in the log file just after initialization step:

can't read "VDDNW": no such variable while executing

Question:

1.  For postlayout simulation I generated for each cells (inclusive tapcell) parasitics. Should I do extraction for each cell manually again or Liberate does this job?

   - in cell_list there are only the name of cells (not tapcell)

2. could be the missing of tapcell the reason of characterization abort?

I appreciate any suggestion of you.

Thanks a lot in advance!

BarPouy

  • Cancel
Parents
  • BarPouy
    BarPouy over 5 years ago

    Hi Guangjun,

    Thank you for your prompt reply.

    1. you are right, a power pin cannot be 0V. For VDD I don't set 0V, however for Nwell one can do body biasing and set Nwell to a voltage, e.g. higer that VDD (to increase Vth) or lower than VDD (to decrease Vth). I'm not using SOI technology.

    2. At the beginning I  used set_vdd VDD $VDD and also set_vdd VDDNW $VDDNW and set_gnd VSS 0. I was not aware of using '-no_model', thanks for your suggestion.

    3. Affter causing issue with VDDNW I tried with these two commands from Liberate Doc. VDDNW is the forth device port (in schematic), but not presented in layout. Now I use the command set_vdd -type nwell VDDNW 0

    4. tapcell is not part of cells but also a separated cell.

    5. muliple supplies could be interessting, e.g. for levelshifter if the circuit uses both low and high voltage. However for a cell with single power supply  I think one could put different values for supply (here VDD) in corner-lists, which I plan to do. However for each 'island' on the chip level there is only one VDD. Please correct me if I'm wrong. Maybe, do you mean I should set_pin_vdd for VDDNW since this is an additional power line? Indeed on the chip top level there should be VSS, VDD and VDDNW lines.

    I repeat my question of last post:

    1.  For postlayout simulation I generated for each cells (inclusive tapcell) parasitics. Should I do extraction for each cell manually again or Liberate does this job?

       - in cell_list there are only the name of cells (not tapcell)

    Just I run characterization with set_vdd -type nwell VDDNW 0 . At least it takes time!

    Starting on grid with 10 cpus
    ---- Template Generation start ----
    ---- Template Generation done ----
    -- Characterization Summary --
    2 warnings
    117 errors

    Starting on grid with 10 cpus
    ---- Characterization start ----
    ---- Characterization done ----
    -- Characterization Summary --
    1 warnings
    1 errors

    Starting on grid with 2 cpus
    ---- Write library start ----
    ---- Write library done ----
    -- Write library Summary --
    2 warnings
    1 errors
    0 monotonicity warnings

    Starting on grid with 2 cpus
    ---- Write CCS library start ----
    ---- Write CCS library done ----
    -- Write CCS library Summary --
    2 warnings
    1 errors
    0 monotonicity warnings

    Starting on grid with 2 cpus
    ---- Post-processing start ----

    In char.log there is one ERROR (LIB-19): Failed to read file (file=/....... .template.tcl": no such file or directory while executing

    All 117 errors are due to the 'permission' of cells layout.oa, which are automatically set to -rw-rw----. Maybe, should it be changed to rwx-rw-r--?

    ERROR (LIB-902): Failed to open file '/.../AN2d1.sp' for read. Check directory/file paths and permissions and rerun.

    ...

    There is also a warning:

    WARNING (LIB-988): (set_vdd): Vdd 'VDDNW' is driven to 0.0 volts. It is normal for ground nets to be set to 0V. Use the set_gnd command instead of set_vdd to clear this message.

    However I want this pin to be selectable for different values, e.g. 0, VDD/2 and VDD for desired speed or leakage performance Maybe the values of differemt VDDNW should be given in corner-list, like VDD?

    The same error in write_ccs and write_nldm: Maybe, is this a consequential error?

    ERROR (LIB-195): (read_ldb): Unable to read the ldb '/xxx.ldb'. Check whether the specified file path is correct and the required access privileges exist on the file, and rerun.
    WARNING (LIB-193): (read_ldb): Future characterization and modelling commands will be skipped because of the previous error.  Correct all Tcl errors and rerun.

    I will correct it and report you.

    In meantime thanks a lot for your help!

    Kind regards

    BarPouy

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 5 years ago in reply to BarPouy

    again, you can not set a vdd to "0" using set_vdd. if it is "0", use set_gnd.

    1. if the content of tap cell is required for the cell to behave as expected, then it is part of the cell, and should be extracted as part of cell in the post layout netlist. 

    2. liberate does not work on layout data (layout.oa), it uses netlist. not sure why this is a question of issue. 

    3. yes, different VDDNW values should be handled as different corners.

    4.  Failed to read file (file=/....... .template.tcl"-- seems the path/file is not correctly defined in your scripts.

    5. the rest does not make sense, since your run fails at the very beginning.

    Guangjun

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Guangjun Cao
    Guangjun Cao over 5 years ago in reply to BarPouy

    again, you can not set a vdd to "0" using set_vdd. if it is "0", use set_gnd.

    1. if the content of tap cell is required for the cell to behave as expected, then it is part of the cell, and should be extracted as part of cell in the post layout netlist. 

    2. liberate does not work on layout data (layout.oa), it uses netlist. not sure why this is a question of issue. 

    3. yes, different VDDNW values should be handled as different corners.

    4.  Failed to read file (file=/....... .template.tcl"-- seems the path/file is not correctly defined in your scripts.

    5. the rest does not make sense, since your run fails at the very beginning.

    Guangjun

    • 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