• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Problem with ocean script

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 14921
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem with ocean script

zhengyue
zhengyue over 6 years ago

Hi, 

I'm using ocean script to run Monte Carlo Simulation. Everything is fine when the start iteration index (MonteCarlo parameter: ?startIter) is smaller than 1M. 

However, when ?startIter becomes larger than 1M, I found the Monte Carlo output is not able to be printed to the csv file.

Below gives an example:

I start 10 Monte Carlo simulation with ?startIter = 1000001. Ideally, the output csv file should have corresponding 10 Monte Carlo simulation results from iteration 100001 to iteration 100010. 

It shows that the monte carlo runs successfully in the terminal, e.g. 

However, in the output csv file, iteration 1000001 to iteration 1000009 are missing, only shows 1000000 ( actually is not wanted) and 1000010:

=======================================

In my oceanScript, the "output to file" command is:

ocnPrint(?output fp value(VT("/out") 5e-09) ?precision 10 ?numberNotation 'none)

Can anyone help me to find where is the problem? 

Thank you in advance!

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    You didn't say which IC version you were using, but I was able to (I think) reproduce this using the obsolete monteCarlo/monteRun functions in IC617. What I get is this:

    iteration (rea abs(IDC("/V1/PLUS")) (A)


    1000000 0.0010374721630195
    1000000 0.0010428013956719
    1000000 0.0010327899393591
    1000000 0.001046730050344
    1000000 0.001054421433944
    1000010 0.0010291098681963
    1000010 0.001051662346496
    1000010 0.0010464787884481
    1000010 0.0010567360862235
    1000010 0.0010333544648214

    Looking more closely, the issue is how the logFile is written by spectre in this obsolete mode - the raw data has a rounding error in the iteration field, and so it's not ocnPrint that is doing anything wrong. Given that use of these old OCEAN functions is no longer supported:

    *WARNING* IC5141 based Monte Carlo scripts will not be supported in future release of IC61 OCEAN.
    Users should migrate their Monte Carlo scripts to OCEANXL

    I just tried running from ADE Explorer (which would be the same as doing it from OCEAN XL) and then used openResults() on the resulting directory and ocnPrint as above, and I get:

    mcparamset abs(IDC("/V1/PLUS")) (A)


    1000001 0.0010421889
    1000002 0.001057634932
    1000003 0.00104455059
    1000004 0.001039197119
    1000005 0.001046654913
    1000006 0.001049822413
    1000007 0.001051257347
    1000008 0.001037424219
    1000009 0.001063850924
    1000010 0.001046753547

    Note that the index is called mcparamset in the new flow - however, as you can see, it's not truncated. Given that the old monteCarlo/monteRun flow is obsolete, I think there is no chance of getting it fixed - you should migrate to the new ocnxl-based way of running Monte Carlo (or perhaps using maeRun if using the new Maestro views...)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Andrew Beckett

    One other thing I meant to ask - why are you setting the starting iteration to be greater than 1 million?

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • zhengyue
    zhengyue over 6 years ago in reply to Andrew Beckett

    Hi Sir, 

    That is because my experiment needs many circuit instances. I have already collected 1 million Monte Carlo simulation result of my circuit, but I still need  one more million for my experiment. 

    Ohh, can I ask what is the difference between "Process" and "Mismatch" when setting the Monte Carlo simulation?

    My understanding is that: "Process" has larger process variations than "mismatch". For example, if my circuit is just a memory pixel, I try to run monte carlo simulation 64 times. If "Process" is selected, does that mean the 64 monte carlo simulation results are produced by 64 circuit instances (1 instance 1 pixel)?  If "mismatch" is selected, does that mean the 64 monte carlo simulation results are give by 64 pixels in one circuit instance (1 instance 64 pixels)? 

    Thanks,

    Zheng Yue

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to zhengyue

    Process means that one set of random numbers are generated across all the devices in the design. This corresponds to the die-to-die variation you might get from different samples. The mismatch variation models the local variation of each device (transistor) - so the remaining random variation between devices on the same die. You can't say that process has larger variation than mismatch - they are modelling different effects.

    The best approach for simulating variation on large arrays is to use the high sigma variation techniques provided with the Virtuoso Variation Option with ADE Explorer/Assembler in IC617 and later - also available with ADE GXL too.

    In your other reply you said you are using IC5141 (which was released in 2004, and stopped being supported in 2011), so that doesn't support OCEAN XL functionality, since that was introduced with the advent of ADE XL in the IC61X release streams. You probably should move to something more recent than a 15 year old release stream that stopped being supported over 7 years ago.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • zhengyue
    zhengyue over 6 years ago in reply to Andrew Beckett

    That is very helpful. Thank you very much!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • zhengyue
    zhengyue over 6 years ago in reply to Andrew Beckett

    That is very helpful. Thank you very much!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information