• 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. Digital Implementation
  3. ELC problems with transistor model (subcircuit)

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 91
  • Views 12833
  • 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

ELC problems with transistor model (subcircuit)

Rodrigo Soares
Rodrigo Soares over 11 years ago
Hello,
I’m trying to characterize a library of cells with ELC but I’m having a problem with it.
I’m using an IBM’s library, and it uses subcircuits  (nfet pfet) to model it’s transistors. Every subcircut has instances of the devices (nch,pch) with other RC components.
 So when ELC  runs spectre  it searchs for a model of nfet and pfet and can’t find it because actually they are not devices, so the command db-prepare doesn't make the "nfet.device" model that it looks for. Have anyone used this kind of library and can help me how to set ELC to deal with it?

The ERROR message:
  " SIMULATOR : spectre
[ERROR(dssimgen)] cannot found model : /home/aluno/cadence/ELC_test/carac/foo.ipdb/NFET.device/simulate/model
Deck creation aborted
Releasing lock "

Here are my files:

# elccfg:

cSETUP = "/home/aluno/cadence/ELC_test/carac/setup.ss"
PROCESS = "typical"
SUBCKT = "dut.scs"
MODEL = "/home/aluno/cadence/ELC_test/carac/rodrigo.scs"

EXPAND = "nfet"
EXPAND = "pfet"


set_var EC_ELABORATE_MODEL 1

# rodrigo.scs :

include "/home/aluno/cadence/ELC_test/carac/models/design.scs"
include "/home/aluno/cadence/ELC_test/carac/models/wafer.scs"

include "/home/aluno/cadence/ELC_test/carac/models/fixed_corner.scs" section=tt
include "/home/aluno/cadence/ELC_test/carac/models/process.scs"
include "/home/aluno/cadence/ELC_test/carac/models/process_psp.scs"

include "nfet.scs"
include "pfet.scs"c

#step1

db_open foo

# Set some variables to define how ELC does its stuff
set_var EC_SPICE_SIMPLIFY true
set_var EC_HALF_WIDTH_HOLD_FLAG true
set_var EC_SIM_NAME "spectre"
set_var EC_SIM_TYPE "spectre"
set_var EC_SPICE_SUPPLY1_NAMES "vdd"
set_var EC_SPICE_SUPPLY0_NAMES "gnd"

set_var EC_ELABORATE_MODEL 1

set_var EC_SPICE_NMOS_DEVICES “nch”
set_var EC_SPICE_PMOS_DEVICES “pch”

# run through the steps that read and parse the subckt file (defined
# in elccfg), and extracts the functionality of each cell
db_prepare -force
db_gate
db_close
exit

#step 2

db_open foo

# Remove the next 3 lines to use the ipsd/ipsc
# deamons for load balancing on multiple machines
set_var SG_SPICE_SIMPLIFY true
set_var EC_SIM_USE_LSF 1
set_var EC_SIM_LSF_CMD ""
set_var EC_SIM_LSF_PARALLEL 10

# set up some things that let ELC know how to proceed

set_var EC_SIM_NAME "spectre"
set_var EC_SIM_TYPE "spectre"
set_var EC_SPICE_SUPPLY1_NAMES "vdd"
set_var EC_SPICE_SUPPLY0_NAMES "gnd"
set_var EC_HALF_WIDTH_HOLD_FLAG true


#set_var EC_SPICE_NMOS_DEVICES “nch”
#set_var EC_SPICE_PMOS_DEVICES “pch”


# run spice (Spectre in this case) to do the actual characterization
db_spice -s spectre  -p typical -keep_log
db_close
exit
  • 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