I am launching a script .ocn to do some spectre simulation : qs ocean -restore script.ocn in which I have written (xxx to remove the real names...):
simulator( 'spectre )
resultsDir( "xxx/results/" )
stimulusFile( ?xlate nil
analysis('tran ?stop "100n" )
desVar( "wn1" 100n "ln1" 10n "wn2" 80n "ln2" 30n ... "nmos_tran_model_vth" "nsvtlp" ...)
definitionFile( ".../models.scs" )
converge( 'ic "out_b" 0 )
converge( 'ic "out" 1.1 )
save( 'v "out" "out_b" ... "vss" "vri" "vli" )
In the same directory, containing the above script, I have :
corners.scs hiddenOptions.scs models.scs results/
_graphical_stimuli.scs importNetlist.scs script.ocn setupCornersIncludeFile.scs netlist
The netlist content :
// Library name: xxx
// Cell name: inv
// View name: schematic
subckt inv A1 YN vdd vnw vpw vss
parameters wp=xxx lp=xxx pfolds=1 wn=xxx ln=xxx nfolds=1
M5 (YN A1 vdd vnw) pmos_tran_model_vth w=wp*10e5 l=lp*10e5 nfing=pfolds mult=1 \
srcefirst=1 mismatch=1 lpe=0 numcos=1 numcod=1 ngcon=1
M2 (YN A1 vss vpw) nmos_tran_model_vth w=wn*10e5 l=ln*10e5 nfing=nfolds mult=1 \
// End of subcircuit definition.
// Cell name: ncx
subckt ncx ncx
// Library name: Test
// Cell name: xxx
Rleft (vli saout_b) resistor r=Rleft
M2 (out saeqi saout_b vpw) nmos_tran_model_vth w=wn1 l=ln1 nfing=1 mult=1 \
M0 (out net07 vss vpw) nmos_tran_model_vth w=wndiff l=lndiff nfing=1 mult=1 \
M4 (vli saeni vdd vnw) pmos_tran_model_vth w=wpen l=lpen nfing=1 mult=1 srcefirst=1 \
mismatch=1 lpe=0 numcos=1 numcod=1 ngcon=1
M3 (vri saeni vdd vnw) pmos_tran_model_vth w=wpen l=lpen nfing=1 mult=1 srcefirst=1 \
I1 (out_b net08 vdd vnw vpw vss) inv wp=xxx lp=xxx pfolds=1 wn=xxx \
V0 (net07 aout_b) vsource dc=xxx type=dc
I2 (net09) ncx
I cannot succeed in launching without any error the simulation :
Simulating `input.scs' on clusts04 at 4:05:12 PM (process id:
Notice from spectre in `ncx', during circuit read-in.
"input.scs" 29: Subcircuit 'ncx' is empty.
Time for NDB Parsing: CPU = 761.883 ms, elapsed = 1.48527 s.
Time accumulated: CPU = 761.883 ms, elapsed = 1.48527 s.
Peak resident memory used = 30 Mbytes.
Error found by spectre during hierarchy flattening.
ERROR (SFE-23): "input.scs" 37: M2 is an instance of an undefined model
ERROR (SFE-23): "input.scs" 39: M1 is an instance of an undefined model
ERROR (SFE-23): "input.scs" 41: M0 is an instance of an undefined model
ERROR (SFE-23): "input.scs" 43: M4 is an instance of an undefined model
ERROR (SFE-23): "input.scs" 45: M3 is an instance of an undefined model
Error found by spectre in `inv':`I1', during hierarchy flattening.
ERROR (SFE-23): "input.scs" 18: I1.M5 is an instance of an undefined model
ERROR (SFE-23): "input.scs" 20: I1.M2 is an instance of an undefined model
Error found by spectre in `inv':`I0', during hierarchy flattening.
ERROR (SFE-23): "input.scs" 18: I0.M5 is an instance of an undefined model
I would like to be able to launch sucessfully the simulation without any amap/ directory. To do it, I have tried to remove in the script.ocn, the "/" from /out for example.
I don't undertsand why I should, mandatory, use an input.scs file, and once the command launched, I don't have any input.scs file created.
Do you think this is possible ?
Thanks a lot !!
From what you've described, the desVar() which is setting "nmos_tran_model_vth" "nsvtlp" wouldn't alter the model instances in the netlist, unless you have some subckt models defined somewhere which uses "analogmodel" to switch the models by a parameter.
Either way, it appears that your ../models.scs file is not defining all the models that the design needs.
There's no need to supply an input.scs - you should be able to supply "netlist". No need for amap either - that's only if you want to be able to use schematic names in your plots and so on, where that mapping was captured during netlisting.
So it's not that clear what your problem is, other than that you have devices which are referencing models that it can't find in the resulting "input.scs" that gets generated by OCEAN, or in any of the files that it includes.