====== Running simulations using OCEAN ======
[ __[[vlsi:home|Home]]__ ]
[ __[[vlsi:workbook|Design WorkBook]]__ ]
[ __[[vlsi:workbook:analog:main#contents|Back to index]]__ ]
== Contents ==
* Introduction
* Reference documentation
* ...
* ...
**Keywords:**
[[http://www.slideshare.net/michaelgod/writing-cadence-ocean-scripts]]
[[http://www.es.isy.liu.se/courses/PhD_courses/techdoc/download/Ocean_demo_ek.pdf]]
[[https://www.eleceng.adelaide.edu.au/personal/dabbott/wiki/images/8/8c/OCEAN_Mostafa_Rahimi_Adelaide.pdf]]
Cadence training references:
[[http://www.cadence.com/training/eu/pages/coursedetails.aspx?courseid=ES_84454_IC.6.1.3]]
YouTube:
[[http://www.youtube.com/watch?v=6hrfdK3bP-Y]]
===== Introduction =====
[[http://venividiwiki.ee.virginia.edu/mediawiki/index.php/ToolsCadenceSimulationOCEAN]]
Fondamentale perche' e' la sintassi del Calculator!
youtube video [[ http://www.youtube.com/watch?v=6hrfdK3bP-Y | here ]]
Starting point? Beh, registrare una macro da ADE!
**ADE L => Session => Save Ocean Script...** con estensione **.ocn**
Poi lo script puo' essere eseguito dalla **command line** della CIW !
load("oceanScript.ocn")
Tutta la documentazione si trova in
''/usr/cadence/IC_6.1.5/doc/oceanref/oceanref.pdf''
mentre esempi di codice sono in
''/usr/cadence/IC_6.1.5/tools/dfII/samples/artist/OCEAN''
cd ~/cadence/tutorials
mkdir src
cd src
ln -s /usr/cadence/IC_6.1.5/tools/dfII/samples/artist/OCEAN ocean_samples
the README file gives a brief description of the directory contents
Wiki tutorial [[ https://secure.engr.oregonstate.edu/wiki/ams/index.php/Cadence/WritingCadenceOCEANScripts | here ]]
ocean [-nograph]
...
...
ocean> => OCEAN prompt
ocean> ocnHelp()
ocean> ocnHelp( "" )
e.g.
ocean> ocnHelp( "tran" )
PROTOTYPE tran( g_fromValue g_toValue g_byValue ) =>
g_byValue/nil
tran( g_toValue)=> undefined/nil
DESCRIPTION Specifies a transient analysis with limited
options. If other analysis options are needed, use the
analysis command.
NOTE The second instance of the tran command is valid
only with the Spectre® circuit simulator
EXAMPLE(S)
tran( 1u)
Specifies a transient analysis to 1u for the Spectre®
Circuit Simulator
tran( 0 1u 1n ) => 1e-09
t
ocean>
[[http://homerreid.dyndns.org/misc/ocean/index.shtml]] (fatto molto bene!)
[[https://www.eleceng.adelaide.edu.au/personal/dabbott/wiki/images/d/d5/OCEAN_Tutorial_Rahimi.pdf]]
[[http://venividiwiki.ee.virginia.edu/mediawiki/index.php/ToolsCadenceSimulationOCEAN]]
[[http://blog.intgckts.com/cadence-ocean-scripting/]]
[[https://secure.engr.oregonstate.edu/wiki/ams/index.php/Cadence/WritingCadenceOCEANScripts]]
Sample OCEAN macros comes with Cadence IC itself under
''$IC_DIR/tools/dfII/samples/artist/OCEAN''
====== Simulation setup ======
:!: //**Note**//
''netlist'' ''netlistHeader'' and ''netlistFooter'' files are mandatory!!!
[[https://groups.google.com/forum/#!topic/comp.cad.cadence/HzcvLFQALoY]]
ocean> simulator('spectre)
ocean> design("/path/to/spectre/main/netlist")
ocean> resultsDir("/where/you/want/to/put/results/")
modelFile("/path/to/model/file")
modelFile(
'("/path/to/model/file" "section")
'("/path/to/model/file" "section")
...
...
)
====== Design variables ======
desVar( "varName" value )
desVar( "varName1" value1 "varName2" value2 ... )
or
varName( "varName1" value1 )
varName( "varName2" value2 )
...
====== Analyses ======
analysis('type ?option1 value1 ?option2 value2 ...)
analysis('tran ?start 0 ?stop 10u ?step 10n)
====== Parametric analysis ======
Don't use the run() command! Use paramRun() !!!
====== Process corners simulations ======
[[http://venividiwiki.ee.virginia.edu/mediawiki/index.php/ToolsSpectreSimOceanCorners]]
Sample scripts:
''$IC_DIR/tools/dfII/samples/artist/OCEAN/corners/''
====== Monte Carlo simulations ======
[[http://venividiwiki.ee.virginia.edu/mediawiki/index.php/ToolsSpectreSimOceanMonteCarlo]]
[[http://www.cadence.com/Community/forums/p/13613/21552.aspx]]
Sample scripts:
''$IC_DIR/tools/dfII/samples/artist/OCEAN/monteCarlo/''
====== ======
\\
----
Last update: [[pacher@NOSPAMto.infn.it |Luca Pacher]] - Aug 20, 2013
~~NOTOC~~