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. 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