monte-carlo simulation running one seed

I am using 6.1.5 environment and I have ran a monte-carlo simulation over 100 runs yesterday and I load back my results. Some runs have failed and I wish to see more data on these particulars seeds. I went to the monte-carlo options and choose the specific seed number and re-run only this one with monte-carlo.

As a result, I do not have the correct seed environment and so the same results.

How could I re-run a specific seed number from a monte-carlo run with all data such dc voltage, dc operating point, waveforms specified, ...?

12 Replies

The best way is not to mess around with the "seed". If the seed was not set, it defaults to 12345. It's the start run number that you'd want to use, rather than the seed. The seed alters the sequence of random numbers that are generated, and the start run number tells you how far that sequence you are.

The easiest way is take your full 100 run monte carlo results, switch to Detailed view (rather than Yield), and then over the particular run numbers that failed, do a right-mouse-button->Create Statistical Corner. This will then add into the corners the specific runs which you're interested in.

Then if you run in Single Run, Sweeps and Corners mode, and have the corners enabled, it will re-run the specific monte carlo points that you're interested in - making it easier to debug them.

They should be the same. If they're not, you should log a service request with us to take a look. Potentially there are some situations where the circuit has multiple operating points and it might converge due to subtle differences in starting conditions to one or the other - but it's hard to tell without seeing the data.

I use statistical corners and I can re-produce the same montecarlo run number result when re-run as single statistical corner run on the same cct. What concerns me however is har far can you change your cct before that worst case statistical corner is no longer valid? I understand your flow suggests using statitstical corners to parametric optimize a cct but is that as long as the letlist doesn't change? Is the seed also related to the netlist? I end up with loads of worst case statistical corners when developing a circuit as the previous worst case statistical corners no longer produce the worst result in a later MC run if the cct has changed. Also grabbing the worst case statistical conrers for a schematic run then extracting the layout and running just the statistical corner extremes gives better results which I am aprehensive about. I still feel I need to run a full MC again as I don't believe the worst case statistical corners are still the worst case.

Statistical corners are fine if you're using process variation. If using mismatch, then they're also fine if you only change the parameters (or global variables) in the design - if you modify the circuit itself, then the mismatch won't be identical any more - because the sequence of random numbers will be affected by the differences in the circuit.

In my opinion, this behavior severely limits the usefulness of statistical corners in ADE XL. Solido told me that they don't have this problem because they assign mismatch parameters to components by their name and not by netlist order. I think that it would be a really good idea for Cadence to do the same.

I'm not sure I'd agree that it severely limits the usefulness, since it's still fine provided that you are not making topological changes to the design, but your point is understood. It's actually spectre that is doing this because a statistical corner just runs a single point monte carlo, but that's an implementation detail - ideally we can come up with something that is a bit more general whilst still retaining the performance benefit of doing the random number generation in the simulator rather than having to impose it from outside.

Well, it seems to be a major problem for Lance and I'd guess that he's not alone. When you fix this issue, please don't forget to also deal with the correspondence between schematic and extracted views that he mentioned.

I'm not saying it's not a problem in some caes - just saying that in many cases it is still useful.

Getting the monte carlo to correlate between the schematic and extracted views is probably quite a tall order, since there is often not a one to one correspondence between the devices anyway (for example, an m-factored transistor in the schematic will end up as separate devices in the layout).

I agree that this is a little more difficult, but it should still be doable, for example by using information from an LVS run. Of course, a first step should be to give consistent results for a modified version of the same view (including an extracted view).

In the meantime, this problem has been submitted as CCR 1136784 (enhancement request). Anyone who also has a problem with the behavior described in this thread should consider asking Cadence support to file a duplicate of this CCR on his behalf. If more people are asking for this enhancement, it is more likely to be implemented soon.