Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
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.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
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.
In reply to Andrew Beckett:
Hi Andrew !!
Thanks for your quick reply.
I checked if the issue was coming from "desVar() which is setting "nmos_tran_model_vth" "nsvtlp" wouldn't alter the model instances in the netlist", it's not coming from here. I replaced the "nmos_tran_model_vth" by nsvtlp for example and I have the same errors in the log. Plus, this strategy is working with a cadence database (I mean the working directory is the Analog Environment one). But, in my case I have to recreate this simulation environment : netlist, script.ocn, graphical_stimuli... because I try to evaluate different netlist as input (different mos sizes, models...).
Then, I am investigating on the "it appears that your ../models.scs file is not defining all the models that the design needs". I will comment soon on it.
Hopefully, you say that I don't need any mapping file. Indeed, I don't want to recreate also all the mapping files environment.
In reply to samung:
for debugging, I would like to keep alive the "input.scs" file created, indeed, it seems the file is removed during the simulation. How can I do that ?
You don't need the mapping files, and the input.scs is NOT removed during simulation. It's recreated though - this is because you specify the analyses you want, and the design variables, and the models and so on - so it assembles the "input.scs" from these choices plus the "netlist" file - and then simulates using that.
Once it is assembled, it remains - but if you run the simulation again, it will be re-assembled, and so on.