====== 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~~