• 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. Characterizing library for emerging 2DFETs with in-house...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 15536
  • 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

Characterizing library for emerging 2DFETs with in-house .va based models

nt2612
nt2612 over 6 years ago

Hi All,

I am trying to use Liberate to characterize logic gates with in-house (lab developed) Verilog-A based models. Since I am new to Liberate, I am having difficulty in getting a successful characterization. I am working on the examples logic gates INV and NOR provided with Liberate, while the device model is my own. I would like the external simulator that is called by Liberate to be HSPICE. I am shown LIB-14 error: cannot open file. 

I am not sure if I have followed the correct procedures/if there is an issue with using the Verilog-A file. Please guide me with this.

Below is my.tcl file:

# Liberate Example Tcl File

# Set the run directory. Here we use PWD, but in a distributed
# environment, it is recommended to directly specify the full path
# instead of using "PWD"
set rundir $env(PWD)

# Create the directories Liberate will write to.
exec mkdir -p ${rundir}/LDB
exec mkdir -p ${rundir}/LIBRARY
exec mkdir -p ${rundir}/DATASHEET

### Define temperature and default voltage ###
set_operating_condition -voltage 1.5 -temp 27


## Load template information for each cell ##
source ${rundir}/TEMPLATE/template_example.tcl

## Load Spice models and subckts ##
set_var extsim_cmd hspice
set_var extsim_cmd_option +spice
#set_var extsim_deck_header "simulator lang=spectre\nOpt1 options reltol=1e-4\nsimulator lang=spice"

set_var extsim_option "runlvl=5"
set_var extsim_leakage_option "gmindc=1e-14 pivtol=1e-15"
set_var extsim_save_failed all
set_var extsim_model_include "/home/min/a/nthakuri/Research/Liberate_Example_NT/MODELS/Bot_gate.va"
define_leafcell -extsim_model -type nmos -pin_position {0 1 2 3} {M1fet_ch1}


#set spicefiles $rundir/MODELS/include_SS.sp
foreach cell $cells {
lappend spicefiles ${rundir}/NETLIST/${cell}.sp
}
read_spice $spicefiles

## Characterize the library for NLDM (default), CCS and ECSM timing.
set_var extsim_deck_dir "/home/min/a/nthakuri/Research/Liberate_Example_NT/decks"

char_library -ecsm -ccsn -ccsp -extsim hspice -cells ${cells}

## Save characterization database for post-processing ##
write_ldb ${rundir}/LDB/example.ldb

## Generate a .lib with ccs, ecsm ###
write_library -overwrite -ccs ${rundir}/LIBRARY/example_ccs.lib
write_library -overwrite -ecsm ${rundir}/LIBRARY/example_ecsm.lib

## Generate ascii datatsheet ###
write_datasheet -format text ${rundir}/DATASHEET/example

The simulation log is as follows:

LIBERATE started on xxx at Tue Jul 23 10:06:44 2019

Command line arguments: none.
ALTOSHOME set to '/package/eda/cadence/LIBERATE181'.
Server ID : T20190723100644952460S0309983
liberate > source char.tcl
LIBERATE parameter "slew_lower_rise" set to "0.3"
LIBERATE parameter "slew_upper_rise" set to "0.7"
LIBERATE parameter "slew_lower_fall" set to "0.3"
LIBERATE parameter "slew_upper_fall" set to "0.7"
LIBERATE parameter "measure_slew_lower_rise" set to "0.3"
LIBERATE parameter "measure_slew_upper_rise" set to "0.7"
LIBERATE parameter "measure_slew_lower_fall" set to "0.3"
LIBERATE parameter "measure_slew_upper_fall" set to "0.7"
LIBERATE parameter "max_transition" set to "1.5e-09"
LIBERATE parameter "extsim_cmd" set to "hspice"
LIBERATE parameter "extsim_cmd_option" set to "+spice"
LIBERATE parameter "extsim_option" set to "runlvl=5"
LIBERATE parameter "extsim_leakage_option" set to "gmindc=1e-14 pivtol=1e-15"
LIBERATE parameter "extsim_save_failed" set to "all"
LIBERATE parameter "extsim_model_include" set to "/home/min/a/nthakuri/Research/Liberate_Example_NT/MODELS/Bot_gate.va"
INFO (LIB-511): (define_leafcell): Leafcell 'M1fet_ch1' (instance) has been identified with pin_position (0 1 2 3) mapped to (D G S B).
LIBERATE parameter "extsim_exclusive" set to "1"
LIBERATE parameter "extsim_flatten_netlist" set to "0"
LIBERATE parameter "spectre_pwr" set to "0"
LIBERATE parameter "extsim_deck_dir" set to "/home/min/a/nthakuri/Research/Liberate_Example_NT/decks"
LIBERATE parameter "simulator" set to "hspice"
LIBERATE parameter "spectre_use_char_opt_license" set to "0"
LIBERATE parameter "char_library_skip_var_list" set to ""
Start Characterizing Library at (Tue Jul 23 10:06:54 EDT 2019)

ERROR (LIB-14): Could not open file (file=/home/min/a/nthakuri/Research/Liberate_Example_NT/MODELS/Bot_gate.va).
*Error* Liberate exits now, please fix the reported parser problem(s).
Peak memory usage: 335 MB
Peak virtual memory usage: 300 MB
Peak physical memory usage: 35 MB
Wall time : 0.00 hours (10.00 seconds)
LIBERATE exited on xxx at Tue Jul 23 10:06:54 2019

Thanks,

Niharika

  • Cancel
  • Guangjun Cao
    Guangjun Cao over 6 years ago

    Hi Niharika,

    This is Guangjun from Cadence support team.

    First, you need to make sure the .va file does exist at the given path.

    Then, you need to use -external option in define_leafcell command for the model in .va .

    Next, use extsim_header*  (please check the liberate manual for syntax) to call the .va file. The syntax must be correct for the external spice simulator you use. Unfortunately, I do not know much about HSPICE.

    Regards,

    Guangjun

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

    Hi Guangjun, 

    I followed your suggestions and now I can run the characterization. However, I am still facing some warnings which are as follows:

    *Info* No global model has been read in. Will expect model defined inside instance.

    WARNING (LIB-817): Applying 'init_pin_hidden_period=1e-08' produced an initial state that is different from the one required for arc: cell 'INV_1C_2G', pin 'In', related_pin '', when '!Out', type 'hidden'. Increase the value set for 'init_pin_hidden_period' or use a different initialization method such as the prevector method and rerun the Tcl script.

    WARNING (LIB-70): One or more receiver cap values (-0.00915143) for cell: 'INV_1C_2G', pin: 'In', r_pin: '', when: '', type: 'CCS', table: 'receiver_capacitance1_rise' are negative. Save and review the simulation output (see extsim_save_passed, extsim_save_failed, extsim_deck_dir). Make the required corrections to the Tcl script and rerun.

    *Warning* (write_library) : Library is missing "missing_ccs_template_1x1" template definition.

    Can you please guide me with understanding/figuring the above? Appreciate your time.

    Thanks,

    Niharika

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

    Hi Niharika,

    "*Info* No global model has been read in" can be ignored, if all models have been defined.

    WARNING (LIB-817):: please follow the suggestion in the message.

    WARNING (LIB-70): please follow the suggestion in the warning. If simulation results match the .lib, then this can be ignored.

    *Warning* (write_library) : it is not clear to me what this means. 

    Regards,

    Guangjun

    • 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