Mixed-Signal Analyzer part 1: Introduction to Mixed-Signal Analyzer
From the series: Mixed-Signal Data Analysis with MATLAB
This kick-off video shows how to streamline your Cadence to MATLAB post-processing workflow using a MATLAB app called Mixed-Signal Analyzer. We start with our low-drop out (LDO) regulator design in Cadence Virtuoso ADE that has been simulated over a number of corners. After a brief walk-thru of the design, we push the blue M-button in Cadence that establishes a connection between MATLAB and Virtuoso. From there we open the Mixed-Signal Analyzer app and begin visualizing the different waveforms and metrics from the simulations. This all occurs without creating any intermediate CSV files or any manual processing of the Cadence PSF files. It’s 100% point and click, from Cadence simulation to MATLAB visualization. In the process we also show how to generate fully customizable trend charts (pivot charts) of our metrics. We also leverage the app’s built-in analyses and MATLAB as a calculator to compute new metrics on our simulation data. Finally, we generate a pdf report of our work, all of this without writing any code. In subsequent videos, we’ll demonstrate more advanced maneuvers using Mixed-Signal Analyzer.
Published: 12 Feb 2024
Hello. This is Kerry Schutz, from MathWorks. In this video, I'm going to introduce you to an app called Mixed Signal Analyzer. This app is designed for analyzing cadence simulation data and is part of Mixed-Signal Blockset for MathWorks.
It extends an option from cadence, called the Virtuoso ADE-MATLAB integration option, with its particular ID part number here, ID 95252. One of the most powerful features of this app is that it provides very flexible, customizable trend charts and report generation. The app does not require any programming. It's all point and click. But of course, you can leverage your MATLAB programming skills or any scripts or functions you have by adding these to the app. And this app runs either on Linux or Windows.
Now, here's a brief look at the Virtuoso MATLAB Integration option, that I spoke of on the previous slide. These are some snippets from their Rapid Adoption kit. You can see that it uses structured queries to access the data. So you can see here, for instance, we're accessing this results database. We're looking for a particular output of a certain name. We're excluding the nominal corners, and we're looking for values that are less than 2e-3.
We do a query, and then it returns that data in a table, from which you can do further processing on. And then I've shown other little samples of that MATLAB code here that access that cadence data. Of course, although this is MATLAB code-- it runs in MATLAB-- the structure may be a little unfamiliar to you if you're not used to writing code in a database or structured query languages. So that's what we created the app for.
All right so I'm going to jump over into the Cadence project. We'll start from Cadence and then work our way over to the MATLAB environment. OK, so here we are over on the Cadence side, in Virtuoso. And I've got our schematic up of our device under test. It's an LDO, or Low Dropout Regulator, which is in the middle of our schematic. We've got our LDO load on the right and supply and bias generation over here on the left.
One of the components that we're interested in is this capacitor in a feedback path here. We're going to call that CFB for feedback capacitor. And we're going to be changing its value over the course of different simulations, as well as other parameters. All right, so let's go ahead and take a look at the simulation in the Maestro view.
I'll go up here to the top. I've got different simulations here. I've already run different interactive runs. I'm going to go into Data mode here. We'll look at our name of our test, LDO test. Using the specter simulator, we've ran three different types of analysis DC transient stability.
I've got different global variables, VDD, iLoad, that CFB capacitance value, I spoke of, over here on this run. It was 20 and 25 femto.
And if we take a look at our corner setup finally-- I'll look at our corner setup. You see we've got a nominal corner. We've got corner C0, different temperatures, VDDs, and iLoad, and then our process corners.
And if we compute all the combination permutations of those, it would be 20. But we've got two-point sweeps, and we've got a nominal corner. So that would be 21 times 2, or 42 different simulations or cases here that we've simulated.
All right, and we've already done those. Like I said, I've got a history of a number of those. So for 190, I actually had it set like this, with the CFP set to 20 and 25 femto. For 191, it was set to slightly different, with 30 and 35 femto. OK, so, though, again, those are already done.
I've got different outputs that were set up. I've got LDO, which I've saved, VDC LDO out. And I've created a MATLAB expression here for computing the phase margin. You see the ones that are enabled. And certain are not enabled here.
Under the Results tab, this is where I can access MATLAB. There is an M button you may not be familiar with. But this will open up the MATLAB environment, create what we're calling the ADE info object, which will allow us to access to our simulation data.
So I'm not going to click on it. Here, I've already got it open. I'm going to go over to the MATLAB environment. I'm going to show you I've have that ADE info object just sitting there, ready to access. I can type it. I can see what's in there, make that window a little larger. And we can see that if there's an ADD-- ADE RDB location, here, interactive 190 RDB, it says, right now, we're pointing to the Interactive 190.
We could be pointing to any of those simulation histories. There's a pointer here, a results path for the PSF file. But we won't be working with this directly. We'll be working with using ADE info, but indirectly through the app I spoke of, Mixed signal analyzer, which I'm going to open up right now. Just type Mixed signal analyzer. Or you can access it through your Apps tab. Enter.
OK, with that open now, we can start working with the Cadence data. So I'm going to go here to import. And I've got a couple options. I could have saved the data, the simulation data, to a file, in which case, I would say Import. In this case, it's a MAT file. Since I haven't done that yet or showed you how to do that, I'm going to go to Import ADE info database, which is, say, just work with that ADE info object I showed you earlier.
So it will find that ADE info object in the workspace. It'll say Oh, you've got these different interactive runs. Do you want to process all of them, a few of them? What do you want? I am just going to say I want 190 right now.
And there's a check box in the lower left-hand corner. It's asking me, do I want metrics only? It's checked by default. If you want all the data, including all the waveform data, you can just uncheck it. I'm going to do that. I say, OK.
Now the data is loaded. It says that you've got 42 cases, just like we showed in the Cadence environment, 2-point sweeps times 21 corners. We've got these different waveforms, and we've got some metrics.
So let's just jump right into it. Let's say we wanted to look at the DCOLDO data. To do that, we could highlight LDO out, hit Display waveform, and there it appears. Likewise, let's say we wanted to look at LDO out transient. So I'm going to do Add a new plot. I'm going to highlight LDO, do the same thing. Hit Display waveform. And there we go. There's LDO out.
Let's say we want to look at the phase margin. So highlight Phase margin. Click on Trend chart. And now within a minute or less, we've already got our three things up and plotted of our Cadence simulation data.
Now let's go back to each one we've pulled up here and see what kind of customizations or further analysis we can do. So let's go back to LDO out, the first one we did. You notice here, they're called Plot 2, Plot 3, Plot 3 generically. We may want to rename those plots. So we can do that.
So I'm going to select Plot 1, which was the LDO Out DC. And I'm going to just rename that, give it some name meaningful to me. I'll say that's DC, and it's LDO out, so an example. Now, of course, I could customize the transient and the trend chart for the phase margin, as well, which I'll go off and do here now as well. OK, I've customized the names for each of my plots, DCOLDO out, Tran LDO out, and Trend chart for the phase margin.
Let's go back to the first one, DCOLDO out. Now, right now, we've got 42 cases here, as I spoke of earlier. What if we wanted to trim that down a little bit? Maybe we wanted to look only at particular cases.
So we could click on the Filter button. And over here, we can start customizing. We can say, well, for the voltages, let's just look at the 1.2 for the temperature. Say Apply. When we hit Apply, it's going to trim it down now to just 22 cases.
What if we wanted just maybe two temperatures? Apply, OK, takes us down to 20. Going further, what if we wanted to just look at one of the capacitance values for 25? Apply. OK, now we just got 10.
Now, from that point now, we can also just click on particular waveforms and find out which case that is. So I'm going to click on this bottom waveform, and it highlights case 8. If we slide across here, we can find out more about case 8. It was data point 38 in the original set. iLoad was 1 mil. The capacitance value was 25 femto. The temperature was minus 125. was 1.2 volts. So we can find out those things.
Likewise, we could click on another one. I could even click on multiple ones of them. I could just hit Control, Select. We get two of them. If we want to unselect them, I'm going to do the same thing, hit Control and unselect them.
Likewise, you can go over to your Plot options window and click on a particular waveform. Let's say I click on number two. And when I do that, it highlights that particular waveform over here. So you can do this back and forth tracing of the waveforms. And we call that feature cross-probing, to be particular. And again, it works bi directionally, from the cases over to the plot or from the plot over to the particular simulation cases.
Now, let's say we wanted to get those lines off. We could always just do Control, Select to get it off. And then let's say we wanted to get all the waveforms back on. We could go back to our Filter button, and just you could individually re-enable the clicks. Or if you've done so many of them, you don't want to go through individually, you can just click the top and say Apply. And we'll get all of them back, all 42, just like that.
All right, we could do similar things for the transient. So I won't do that. We could go through and just filter that down, based on certain cases or corners.
What about the trend chart? That's an interesting one. So let's spend a little time on it. You can customize your x-axis and your y-axis and your legend. So let's go in and do that.
Let's say, right now by default, it's selected these fields for the chart. But let's say we wanted the ones that are unchecked as well. Or maybe we don't want one of them. I'll just uncheck iLoad.
And so now, you can see on the x-axis I've added and subtracted different categorical x variables. And likewise, you can see where they appeared over here. Phase margin showed up as the thing I'm plotting on the y-axis. The x-axis is everything else.
And if we want to customize that further, we could say, well, there's too much maybe on one line, so I'm going to take Core model spec and move it down to the Legend. So we're going to get individual lines per Core model spec.
And let's say you wanted to customize the x-axis. You don't want this ordering, temp CFB BDD. You want CFB at the bottom. So you just select CFB and say Go down. So now it's going to show up at the bottom. And you can say, OK, well maybe that's the format that I wanted.
Another thing you'll frequently want to do is take advantage of the MATLAB environment to do further analysis or processing of your signals. So let's say you wanted to do something with LDO out, like find the maximum of it for each case. So I'm going to select the LDO out, and I'm going to say Give me the maximum, y maximum. That creates a new analysis metric called y maximum LDO out.
We can treat that like any other metric we've computed and do a trend chart of it. So I will add a new plot here, right here, plot 4. Again, we can rename it, like we did earlier as well. Before we do that, I'll just go ahead and do the plot. I'll just plot trend chart.
Once that's up, we can do the similar types of customizations. I'll just do that one more time here. I'm going to select CFB. I will uncheck iLoad. I will check BDD.
I'm going to put Core model spec at the bottom. And I am going to-- on the Legend, I should say. And I'm going to put CFB at the bottom of my categorical x. And that's going to be my plot customization for the trend chart.
Now, in that particular case, there was MATLAB code being used in the background for the max function. But we didn't write it. We just took advantage of the y max, and that's built into the app. Now, of course, not for all-- for certain cases, you're going to want something custom that's not built into the app.
So for that, let's say we selected LDO out again. We see, hey, what if we wanted something like a slew rate or something? It's not there. So for that case, we can click on Add analysis. We've selected the waveform of interest.
We can say, OK, I want to compute something like this. I want to compute the slew rates of y. And you say, well, what is y? y up here it tells you is interactive 190 LDO test, the voltage for LDO out, V. And x is the time for that same signal.
And so that is the format for the slew rate function in MATLAB. It's the voltage values, comma, the time. I'm going to take the absolute value of this rate. I'm not interested where the signal is breaking up or breaking down. I just want to know how fast it's changing.
And I'm going to compute the mean over how many ever transitions there were in the signal. So that's going to come back with a single number per simulation. So I'm going to compute that. And it created a new analysis metric, again, labeled down here.
We could, again, do a trend chart of it. So I'm going to create a new plot. Again, I could rename it, as I did earlier. I'm going to click on Trend chart. And when it comes up, we could, of course, do the same, old customizations we did before, which I'll do here.
OK, now we have five plots, or visualizations, three trend charts, DC transient. I've renamed all the plots. I've customized the trend charts, x-axis, legends, and so on. And of course, we've taken advantage of built-in analyses and a custom MATLAB expression.
The one thing I didn't show, which I won't get into in this particular video, is that we could also call our own MATLAB functions. OK. So if we want to create a MATLAB function or leverage our own MATLAB functions, we can do that as well. I'll get into that in a future video.
For now, I want to say, well, I don't want to repeat these steps every time I open up this data set or perhaps want to apply this same set of analyzes and visualizations to another data set. So what I want to do is save this session so I don't have to necessarily point and click, like I did this first time.
So I'm going to say Save session, Save as. And I'm prompted for a session file name. So I'm just going to call that my LDO. Let's see here. We'll call this our LDO session dot mat. All right, that creates my LDO session MAT file.
So that way, now, tomorrow, or another day, I've closed down Mixed Signal Analyzer, and I want to bring all these results back up. I can just say Open session. Open that session file, and I can see all this data again.
Likewise, as we'll see, we can also apply that data session to another data set. So that way, we don't again have to point and click our way there each time we have a new data set we want to do the same analysis on. We'll get into that, again, in a future video.
For now, the last thing I want to do in this kickoff video on Mixed Signal Analyzer is generate a report. So I'm going to click on the Export to report button. And that's going to call up our dialogue for what kind of report we want. What format? I'm going to say PDF. I give it some particular name. I'll just use-- I'll just say maybe LDO whatever report right now, something generic.
And then it asks you or tells you where the default location is, where it's going to save to; saves to, in this case, your Maestro documents folder by default. I'll just use that. I'll say Generate. OK, it's done saving. So now, I'm going to show you where that file was saved to.
I'll go over to my MATLAB prompt. I'll navigate to where it is. It's the DRX. It's the regulator for the LDO. It's the Maestro and Documents folder. Click on LDO report, our PDF. It was just created just now. I will open that outside of MATLAB. And here it is.
We can see our waveforms, et cetera, MSA report. Here's the LDODC out. Next one should be the Tran LDO out. There it is, and so on. The trend chart for the phase margin, there it is. Next should be our trend chart for our maximum of LDO out. There it is.
And finally, I think I had one more. I had the trend chart for the-- I mean the absolute, the slew rate of LDO out. And there it is. All right, so that's all I want to show for the initial video on Mixed Signal Analyzer. In the next video, I'll get into more things you can do, like applying custom functions and updating data sets. So I hope you'll tune in for that one. Thank you.