ad1

Wednesday, December 30, 2015

connectRules.il

The connectRules.il file contains the built-in connect rules that are displayed in the Select Connect Rules form.


ADE searches for the connectRules.il file in the following locations. If multiple connectRules.il files are located, their contents are concatenated and displayed in the Select Connect Rules form.

  • All libraries defined in the cds.lib file
  • Current work directory
  • $HOME directory
  • $CDS_HIER/share/cdssetup/ams/

Path specified by the connectRulesPath variable in the .cdsenv file. All Cadence-supplied connect rules are stored in the connectRules.il file in the
tools/affirma_ams/etc/connect_lib/connectLib
directory in your Cadence Incisive Unified Simulator (IUS) installation directory.

You can use the genConnRulesFile command to automatically compile your user-defined connect rules into a custom connectRules.il file.


Sunday, December 27, 2015

OCEAN Script Template

;; initialization
(setq designName "./spectre/schematic/netlist/netlist")
(setq resultPath "./spectre/result")
(setq modelName "model.lib")
(setq saveFile "save.scs")
(setq corners list("ss" "ff" "tt"))


;; run script
ocnWaveformTool('wavescan )
simulator('spectre )
design(designName)
analysis(
        'tran
        ?stop "8.814u"
        ?errpreset "conservative"
)
desVar(  "VRP" 1.2 )
desVar(  "VRN" 0 )
desVar(  "AVDD12" 1.2 )
envOption(
'userCmdLineOption  "+aps +parasitics +mt=20"
)
option(
        'nthreads  "30"
        'multithread  "on"
        'temp  "85"
)
saveOption('nestlvl "1")
saveOption('save "selected")

foreach(corner corners
        resultsDir(sprintf(nil "%s/%s" resultPath corner))
        modelFile(
                list(modelName sprintf(nil "%s" corner))
                list(modelName sprintf(nil "res_%s" corner))
                list(modelName sprintf(nil "mom_%s" corner))
                list(saveFile)
        )
        paramAnalysis(
                "temp"
                ?values '(-40 -20 0 55 85 125)
        )
        paramRun()
)

winID=newWindow()
clearAll()
graphicsOff()
foreach(
        corner corners
        openResults(sprintf(nil "%s/%s" resultPath corner))
        selectResults('tran)
        (setq V VT("OUT"))
        plot(V)
)
graphicsOn()


Saturday, December 26, 2015

Waveform & Waveform Family

Use drIsWaveform famIsFamily

(defun fcnName (wave_x @rest wl)
        (let (a b c)
                (cond
                        ((drIsWaveform wave_x)
                                blah blah
                                blah blah
                        ) ; is waveform
                        ((famIsFamily wave_x)
                                (apply 'famMap (constar 'fcnName wave_x wl))
                        ) ; is family
                        (t
                                (error "can't handle %L\n" wave_x)
                        ) ; not a waveform and not a family of waveform
                ) ; cond
        ) ; let
) ; defun







SKILL Internal system variable

autoReload
debugMode
errsetTrace
fullPrecision
integermode
mergemode
printinfix
writeProtect
stacktraceDump
stacktrace
sourceTracing
traceArgs