June 2, 2014, edited transcript
Hello, my name is Irina Ilatov. I work with Sidense, which is a provider of unique one-time-programmable memory IP. We target home entertainment, consumer products, cellular phones, medical, and automotive.
As a provider of unique memory IP, we are dealing with a lot of customers. And they ask info – different memory configuration. And each customer is different, with a different foundry.
So we have to deal with a lot of different PDKs; that are organized differently, have different hierarchies. Sometimes they have global and local variation in one file or in different files.
And then in our memory, people have circuits which are very sensitive to variation, such as sense amplifiers, bandgaps, etc…. So while designing, we need to run a lot a lot of simulations.
Before Solido we were using best practices. We tried to design against a worst-case corner; with our schedule we just didn’t have time to try all of the configurations.
The problem with that was that it was good for stable architectures but sometimes for a new architecture it was kind of hard to guess which was really a worst-case. And for all our sensitive circuits we always run Monte Carlo simulations. And again, to run for a good sigma – more than 4 sigma – you need to make a lot of iterations. And again, it takes licenses and time.
Another thing is that we have sense amplifiers that have a very sensitive design; we need to margin it in such a way that the zero will be will never be recognized as one despite all the coupling effects and noises.
On the other hand we don’t want to design it in a way where it’s is very slow. So it’s like kind of challenging design which again requires a lot of Monte Carlo runs and such.
So what do we want from a variation tool?
We want it to be easy and intuitive in setup and usage. We want flexible integration so that we don’t have to change our environment to run the tool. We need to trust the results. We want it to have good performance.
So the results we have seen from Solido’s tools.
The first algorithm I was trying to use was Fast PVT. A typical case I used was one IP configuration, which has: 27 different voltage configurations, 3 different temperatures, and 5 different PDK corners.
Without Solido: For my stimulus for data chip parameters,
– It typically runs 40 minutes.
– We had 405 rounds for 40 minutes, which was 270 hours.
– We typically us about 10 licenses per designer so it will take about 27 hours.
Using Solido (Fast PVT)
– We managed this in around 9 hours.
And actually what was interesting in the test, was what Solido managed to find. It was a stable architecture, and for most of the parameters we haven’t been surprised – Solido gave the same result as the other result using worst corner.
But for one parameter Solido actually found that it’s 90.5 nano instead of 70 nano.
And then we started to use – a sense amplifier margin is kind of a complicated process -because we don’t have resources to run full Monte Carlo. We used to run limited Monte Carlo and then excel-based density models.
It’s a lot of complicated math equations. And it’s a lot of moving data from runs to excel and it takes time. And it’s error prone.
I decided to try to use Solido to calibrate the sense amplifier.
So I used Solido’s Fast Monte Carlo and Solido High-Sigma Monte Carlo. We got the same results but it was less time and it was much easier to handle.
Another unique use of Solido: When we were trying to design bandgap. We always don’t know if it will start out and there are a lot of small simulations without using Monte Carlo, just regular simulations to see when it will start up.
Then we decided to instead just to give Solido to run High-Sigma Monte Carlo and to see how it would go. We saw with that we could say with a probability of 6 sigma that the bandgap would start in 55 seconds.
It only took was only a few hours (with Solido HSMC) instead of spending a couple of days.