Quantcast
Channel: Cadence RF Design Forum
Viewing all articles
Browse latest Browse all 956

Using Montecarlo simulation for finding Rise and fall tile of a SETTLING waveform

$
0
0

 Dear All,

I want to do MONTE_CARLO simulation for my circuit for finding rise time and fall time.

The output is settling after 800u s.

I have to do some pre-processing before finding the last expression. The expressions I used as below.

But it did NOT work.

Can anybody tell how to find risetime and falltime of the waveform using MONTE-Carlo simulation if one needs some house-keeping processing of the waveform.

 .......

analysis('dc ?saveOppoint t  )
analysis('tran ?stop "1u"  ?errpreset "moderate"  ?maxstep "5p" 
        ?method "euler"  ?strobeperiod "5p"  )
desVar(      "frf" 6G    )
desVar(      "prf" -20    )
desVar(      "frf2" 6.1G    )
desVar(      "w" 20u    )
desVar(   "sigma" 3)
option(    'temp  "27.0"
    'iabstol  "1e-14"
    'vabstol  "1e-4"
)
saveOption( 'currents "selected" )
saveOption( 'save "all" )
temp( 27.0 )
monteCarlo( ?numIters "1" ?startIter "1"
    ?analysisVariation 'processAndMismatch ?sweptParam "None"
    ?sweptParamVals "27" ?saveData nil
    ?nomRun "yes" ?append nil
    ?saveProcessParams t
)
CLOCK_DUTY_PERIOD=2.5e-10
CLIP_START=0.8u
CLIP_END=0.9u

clip_I_P=clip( v("/MIXER_I_P" ?result 'tran) CLIP_START CLIP_END)
plot(clip_I_P)
MIN_VALUE=ymin(clip_I_P) + 0.02
MAX_VALUE=ymax(clip_I_P)- 0.03
UPPER_THRESOLD=MIN_VALUE + ( (MAX_VALUE-MIN_VALUE)*0.9 )
LOWER_THRESHOLD=MIN_VALUE + ( (MAX_VALUE-MIN_VALUE)*0.1 )
RISE_UPPER= cross( clip_I_P UPPER_THRESOLD 2 'rising )
RISE_LOWER= cross( clip_I_P LOWER_THRESHOLD 2 'rising )

monteExpr("RISE_TIME" "abs(RISE_UPPER-RISE_LOWER)")

monteRun()

Viewing all articles
Browse latest Browse all 956

Trending Articles