I know, it's been a long time since my last post. You see, we've finally arrived at a topic near and dear to my heart -- ADE XL. The reason for my hesitation in approaching this topic is not that it's difficult, but rather that there's so much to talk about that it's hard to know where to start. It's a bit like trying to write a guidebook for the Louvre. The place is enormous. Do you describe the building itself? The Antiquities? the Renaissance? That crazy looking glass pyramid?
I plan this to be a series of articles on all the great features of ADE XL. There's plenty to write about, but for those of you already familiar with the subject, please use the comments to give me feedback on any aspects of ADE XL you'd like to know more about and I'll be sure to include any "things you didn't know" that I can think of.
Well, I guess the guidebook won't make any sense unless you know what the Louvre is, so it's probably best to start with the basics. (BTW, I'm really not trying to compare ADE XL to the Louvre. That would be silly. Besides, you don't have to wait in line nearly as long to use ADE XL -- nor do you have to wear comfortable shoes.)
What's in it for me? Glad you asked...
During the design of a circuit block, you may have a half dozen testbenches, each with several different measurements. Then you need to run each of those over dozens or hundreds of corner conditions and parametric sweeps. And don't forget Monte Carlo, which is a common requirement for most designers today. Once you've run all those hundreds of simulations, you could be looking at an enormous, complex snarl of data.
Not only do you as a designer need to sort through and evaluate all that data, but you also need to present it to your manager in a coherent format he or she can easily understand (and, of course, be duly impressed by your superhuman circuit design skills). Then, heaven forbid, a device model or circuit spec changes and you have to do the whole thing over again. Are you confused yet?
I like to think of ADE XL as a means to reach the optimum place on the information/confusion curve. You know that place where you've got plenty of information to solve your problem, but not so much that you can no longer remember what the problem was.
First, a few basic definitions
ADE XL is centered around the concept of tests. A test is something that you are already using every day. It's nothing more than a circuit schematic that you're using to do some sort of simulation. A typical use for ADE XL is to group together all the simulations (or "tests") you need to do on a particular circuit block. Or you could use ADE XL to group a bunch of (possibly similar) simulations for different sub-blocks in your design. Or (and this is probably the most common usage of ADE XL today -- if only because it is the closest thing to The Way We've Always Done It) you can use it for just one test (simulation) that you want to run over corners and Monte Carlo. In any case, you know best how you want to organize your work.
ADE XL stores its information just as other Virtuoso applications -- in a particular type of cellview. An adexl view can be created under any cell and contain any number of tests which reference that cell and/or other cells. It can be seen in the Library Manager and can be managed like any other cellview.
Just as in ADE L, you can create and use design variables in ADE XL. These variables can be shared globally among all your tests, or they can be unique to an individual test. In addition to the types of variables you're used to using (i.e. using a variable name in the property value of a schematic instance), don't forget the new VAR() syntax which allows you to parameterize pretty much anything in the simulation environment such as model file name/section or transient stop time.
In addition to variables, as defined above, ADE XL allows you to create parameters, in which you can directly change the values of schematic instance properties without having to edit the schematic. This is done using the Variables and Parameters Assistant. I'll discuss this capability in detail in a later article, so just file this definition away for future reference.
Variables and parameters are what you use in ADE XL to run sweeps (sometimes referred to as point sweeps). Sweeps are most simply defined as lists (2,4,6) or min:step:max ranges (1u:1u:20u), but more complex sweep ranges can also be defined (center/span%, log steps etc.). These sweep ranges are also basic elements in running more advanced analyses like sensitivity and optimization (more on that in later articles).
I'm sure you're all familiar with running simulations over corners. However, it's interesting that every customer I visit seems to have a different definition of what constitutes a "corner" for their particular design flow. So in ADE XL, we've got a pretty broad definition of corners. Corners can include not only temperature, supply voltage and process model, but also any combination of design variables and parameters (as defined above).
The mechanisms for setting up and viewing simulation outputs and measurements in ADE XL is very similar to that of ADE L (with a few extra features we'll talk about later). Additionally, in ADE XL, you can apply a specification to any scalar output (an output expression that evaluates to a single number). This is a numerical target value, range or tolerance, to which the simulation results will be compared. Specifications are useful not only for quick visualization of design performance, but also used for optimization and yield analysis.
Enough with the glossary, how do I start the darn thing?
I suppose I probably should at least tell you that. Just open a schematic and select Launch->ADE XL. You'll feast your eyes on the "Welcome to ADE XL" home screen, which is intended to guide you through what you need to do next (hint: "To define Tests, click here").
Also note the assistant in the upper left, called "Data View". We'll be using this a lot.
I think I'll leave you in suspense for now, but you can watch some introductory videos on ADE XL here and here.
So watch this spot over the next few posts, and as always, feel free to comment on things you'd like to see discussed, or things you've found that others can benefit from.