I got the following error when doing Monte Carlo analysis.
Error evaluating ocean expresstion bw = bandwidth(VF("/VOUTP") 3 "low")
It seems that the error is always there whether the analysis is done using ADE or OCEAN. For all the iterations, some can got the expected results while the others return the above error. However, I get the above expression from the Cadence Tool Calculator. I tried it several times, but the error was still there. Now, I was confused. Could anyone tell me what goes wrong? I appreciate it for your help.
Have you tried running your ADE under the conditions in which it is failing? It could be that it is failing because the monte carlo essentially pushes it to a point where the circuit fails to generate something with a bandwidth and therefore has an error calculating because it doesn't exist. Similar to it would error if you ask for a rise time when there is no rise tranistion.
So it could correctly be generating an error. I would check my waveforms
In reply to meland:
Hey there Winever and Matt,
I have some experience with SKILL/Ocean scripts and my cases are similar as Matt stated. When running Monte Carlo or some Corners the circuit reaches some point that it does not have a valid value and it returns nil. If you pass nil to some other function it might throw an error.
You may try to use the errset() function (read more at Skill Language User Guide, chapter 9 Advanced Topics at Error Handling section).
As function results are stored into a list. I'll take the first element using car(). This way, you can do something like this:
bw = car( errset( bandwidth(VF("/VOUTP") 3 "low") ) )
if( bw then printf( " ok " ) else printf( "unable to evaluate expression" ) )
Hope it helps.