Análisis de diseño de PCB mediante simulaciones - AltiumLive 2022

Derek Jackson
|  Creado: February 3, 2022  |  Actualizado: August 26, 2022

En esta sesión, los asistentes recibirán una visita guiada de las fantásticas mejoras que nos ofrece Altium Designer 22. Entre ellas encontramos una mejor medición de los resultados de simulación, la actualización automática de los designadores contenidos en las reglas de diseño, el IPC-4761 a través del soporte junto con mejoras en Draftsman, referencias cruzadas en los esquemas, el "glossing" de pistas y mucho más.

Aspectos destacados de la ponencia:

  • Cómo utilizar la simulación para verificar las respuestas.
  • Ventajas de usar la nueva herramienta de medición en Altium Designer.
  • Demostración de cómo hacer una simulación SPICE en Altium.
  • Aspectos destacados de los barridos de parámetros.
  • Nueva característica de análisis de sensibilidad en Altium Designer.

Recursos adicionales:

Transcripción (en inglés):

Derek Jackson:

Hello, and welcome to Altium Live 2022. This presentation of design analysis using SPICE simulations. I'm Derek Jackson, your host.

Quick enter agenda looking... we'll go at our introduction, looking forward. Some Y simulate, look at the new measurements and sensitivity that they've added into the product, and then we'll jump in and see it in action. So as most of you already know in Altium Designer 2020, we added a new simulation engine, and this was replacing our old engine that was fairly mature at the point. But with a new simulation team supporting a newer, modern code base they're familiar with, it just seemed like the right thing to do. And the initial goal was to of course, have a seamless integration into Altium Designer, and have full SPICE III, NX SPICE support. It supports our older legacy SIM code up to a point, which is being retired.

And then we added all analog P SPICE and analog LT SPICE model support, as those models are typically found for download on the internet from various manufacturers. And they have non-standard SPICE code. I also want to mention a shout-out to our product development team who has worked hard and diligent to bring this simulation to you. And so let's take a look at what are the next steps moving forward.

Your feedback is important to us, and we'd like to hear from you what kind of simulations do you want to see? Examples, workshops, trainings, tutorials, and so forth. At the end of the training, at the end of this presentation, I'll have a link that will take you to a form where you can fill out some information as far as what you like about Altium Designer. If you'd like to give a testimonial because you love it, or what you dislike about it, look for that link, and you'll be able to give us that information. Why? Because you're important to make this simulator work for you. We really want to make this simulator the go-to simulator. When you think of simulation, we want you to think of Altium Designer. I know we still have a ways to get there, but that's where we need your help, to help us get us there.

Now you might ask yourself why simulate? Why should I simulate my electronics? I've heard a different company say, "We could just build a prototype and have it built tomorrow and test it." Well, remembering back to my college days, I remember my micro electronics instructor, Chaudry. And he used to say that you simulate not to find out what the answer is, but you simulate, you already know the answer and you're just verifying that your calculations are correct. Now, not only just for circuit validation, SPICE also provides several other functionalities, such as Monte Carlo analysis, where you can see the effect of your component tolerances, how they affect your overall circuit operation and performance.

And running parametric sweeps to sweep a parameter across a range of values, to see the effect on the circuit, as well as with the current supply chain with parts constantly becoming ECO, end-of-life, or when designing a upgrading a product you might throw in a new replacement part. If you have a simulatable block for that part, when you throw in your new part, if there's a simulation model with it, you can validate to make sure that things are working right off the bat, and it looks like a fairly good compatible match. And additionally, sensitivity and measurements analysis, where... and I'll be covering those in just a moment, where you can see how one part has... how much effect it has on the overall circuit.

So one thing that we've added that's new, and you've probably seen this are measurements in Altium Designer. And the measurements allow you to add your waveform in question that that you want to plot and then have some calculations made on those. And then those can be viewed in several different ways. And there's a number of predefined expressions that we have, and the list is constantly growing. They are working on updating the documentation with a full description of all the measurements. It's not quite ready yet at the time of this presentation, but that's something that's coming.

As well as new in Altium Designer 22 is our new sensitivity analysis, which allows you to take the variation of component values and see which components that are varied, have the most effect on the circuit. Now, a little bit different from a Monte Carlo that simultaneously modifies all of the component tolerances in your design, the sensitivity goes through in each component, one at a time and adjusted over the range of tolerance and sees, then you get the results from those, and you can compare the results to see which components have the most effect on the overall system operation.

Now, if you haven't looked at Altium Designer simulator for a while, or let's say you're coming from an older version, like even in Altium Designer 19 or 20, well, of course, going from 19 to 20, we had the big simulation engine change, but going from 20 to 21, we had a new user interface change with the simulation dashboard. And the simulation dashboard really drives the circuit flow, so it's good to become familiar with that. We have the simulation UI guide, the link, its here, as well as a newly release updated user guide. It goes into quite a lot of depth in Altium Designer. Let me just show you how to get to those in the product itself.

So here in Altium Designer, from the help menu, I can go down to a exploring Altium Designer. When you click on that, it takes you to the exploring Altium Designer section, at our documentation site. If you go to directly to altium.com, I already have it open, and go to resources and support and go down to documentation, that takes you to this page. And when you click here on Altium Designer, it takes you to the Altium Designer section. Now here under Altium Designer, there's exploring Altium Designer, which I have expanded. And in here, now, if you're a brand new user to Altium, there's a good tutorial here. It's a complete walkthrough of schematic entry, PCB design, fabrication outputs.

It doesn't get into simulation tutorial. We should have some of those coming up, but it goes through the full flow of your schematic entry sketch on a napkin to fabrication outputs. So scrolling down just a little bit here, you'll see a mix signal circuit simulation. And under this section we have the second link is working with the simulation UI. It's a quick read that goes through the simulation dashboard, working with sources, probes, setting up your analyses, everything to do with the simulation dashboard. It's really a must to get familiar with, because everything in simulation is based around that dashboard at this point. And then there are newly released sky to simulation, SPICE simulation, which it's a quite an in-depth guide.

Our documentation team put a huge amount of effort to make sure everything is documented. And it's just a really deep dive, really well done. Covers everything that you can think of. Analysis types, our generic models, sources, probes, simulation types, and it goes pages and pages and pages and pages. Just of everything that you can think of going through, gets into the waveform viewer side, setting up your measurements and just goes through. And it's really, really worthwhile bookmarking this page and just referencing it when you go to work with the simulation.

Right, so SPICE in action. So let's go back to Altium Designer, and we will take a look at Altium Designer in action. Now the first thing I wanted to touch on were your supply sources. Now, before you can even start, and using the simulation dashboard, you need to have a PCB project open, and that'll have your schematics that we're going to simulate. So of course file new project. If you have a template, you can create a template. I'm just going to create a new empty template. Let's call this SIM 1, or something like that. And I'll right click, created it down here on the bottom. I've got a bunch of projects open, but I'll right click, add new to project and schematic.

So here's the simulation dashboard. To access it, you go to panels and go to simulation dashboard. If you don't have the simulation dashboard showing, make sure you got a project, or make sure that the mix simulation extension installed. Now to do that, if you go up to the far right and click on your profile icon, then go down to extension and updates. We'll open up the extension manager. And you want to be on this install tab. So you want to make sure if you're not there, click on it to make sure, to sort of grade out.

And under system extensions, and this is not installed by default, so you may want to just go there and install it, make sure it's installed. So if you don't see it here, just come up to this configure button and click here. So that'll open up under platform extensions. You'll have mixed simulation. I already have a check, but when you check it, it'll be a little apply button there. Just to show you, so I'll just check it. I already have it installed. So once you hit apply, it'll install, then you will restart Altium Designer, and at that point you'll have the... it'll install the simulation engine at that time, you'll be ready to go. Now the way that simulation dashboard works, you can also access it here from the simulate menu simulation dashboard.

And so it's coupled with the electric rule check, as well as checks against your models and their syntaxes. So it does an overall check to make sure that... to catch anything that might not be simulatable. Now, before we really get started, another important item to keep your eye on is this effect section, which can either be document or project. If you have it set to document, it'll only simulate the current document. And if you have multiple pages in your project, all of those will be ignored except for the project that you have, the schematic that you have in focus. So with multiple pages, you want to make sure that goes to project.

So one thing you can do is if you are... if you have like I mentioned, multiple pages, or you could just set that to document, to do a test on that particular page. Although, if you have stimulus sources defined on other pages, it won't see them on this particular page, so you might have to copy them over onto the page. And we're going to get into stimulus sources here momentarily. So right now, if I hit start verification, it's telling me that I have a empty circuit because there's nothing there. There's no so simulation models that it can find to simulate.

So down here under preparation, for adding stimulus sources like a battery input, sinus sort all source or other supply, from here under preparation, under a simulation sources, you can click on ads. It says you need to add a source here, as a little reminder. You can click add. There's voltage and current. A couple other ways to add a source. There's the active bar. And if you right click on this far right here, it'll give you access to voltage or current source. It also has probes. Should show a little about probes, our simulation, generic component library and initial conditions. But this point, so you just be on voltage source.

So, if you click on this voltage source, you and then place a source right onto your schematic. You can also add a similar source directly from the panel here, as well as from the simulate menu. There's place sources as well as place probes. Now, one thing that they've added that you need to be aware of when you're working with a stimulus source are a new... So I have the properties of the source open right now. We have the stimulus name here. And the stimulus name gets associated with the parameters of that source. So if you're going to create, modify a source, you really want to come over here, hit the plus to create a new stimulus name.

Now that's really important since this stimulus name, if you've used a source and set it for that same... if it has that same stimulus name and you change it, it will change other sources that are referencing that same stimulus name. So for example, I'll just shift direct this over to create a new source, and I'll hit the plus here. Now, before I change this, just a quick comment about the parameters. So we've got the stimulus type, DC source, which is like a battery, but can be used in both AC or DC analyses. We're in AC. So down here at the bottom where it says the DC component, that's the DC magnitude, if you're using the source like a battery.

Now for an AC sweep where you're sweeping across a frequency range, you specify the magnitude of the source. And then you're looking at the circuit response. Now the DC magnitude, this corresponds to the value parameters, so even if I click on it over here, and turn on the name of it, it just says 'value'. A little trick that I like to do just to help me distinguish what is what for a DC magnitude, I like to just put a 'V' and then for an AC magnitude, I like to put a VAC. So then if I turn this on here, I have my VAC. That's here. And my DC magnitude. And I could tell this by looking at them, but how you treat handle those is up to you.

Also, I'm going to change this. I created a new stimulus. I'm going to now just call this V-sign, and I'm going to change this to the sinusoidal source. Now, every other stimulus type that you see in this list is a time-based derivative. A time based source. So I go to sinusoidal, now, just because of the nature of SPICE, it'll still have the DC and AC component to it, because you can use it in either type of simulation, but based on your simulation type that you're running, it'll use various parameters of your source. So for a sinusoidal source type, here, it'll use the bottom set of parameters. So the default here, the frequency is 1 Meg, I'm just going to change this to 1 kHz. And then for the amplitude, I like to just put that as 1V as well.

You could set an offset. You have a little preview here of what it looks like, if I wanted to set an offset here of like five volts, hit... and see, it pops up to five volts. Now I have the sinusoidal signal around that point. Now the way that stimulus works, if I place another voltage source, I can hit the TAB key. And so I could pull this down and grab that V. Let me just place it down. And should be able to grab that V sign. And there it is. And so, for the V sign, see it has the DC. Now I'll turn this off and turn on these other items. Now, the way that... a little bit different from a... in a sinusoidal source is that if you do decide to turn on... the names of these, I'll just drag around here, you see the green box around those parameter names? I don't want the... I just want the parameters selected. Let's just shift click on this five that's here.

So it's just the parameters are selected. Over here in the parameter section shows the component is selected and it shows name here with asterisk, because they have different names. I can come and just click the eyeball, and that turns on all of the names for these. I think if I wanted to move these, I should be able to just move it. Hold my control key down. So hold it, and I could just move it over to where I want. And now I see the names defined. If I want the names off, I could just turn them off like that. So it's up to you, how busy your schematic is and how much information you want on your schematic.

Okay. So let's take a look over... now I know I've shown this example before, but I like it. It's the parametric sweep. So I'll just bring it up. Once again, and we'll just talk about this little bit. So again, the first thing, when you're starting a simulation, you want to go to your simulation dashboard and click the start verification. It does an electric rule check. If there's missing models or if there's a model syntax, it would have an error. For example, I think I can just go in here and put in for... like for this offset, I'll put in X space. Let's see if it catches that.

Yeah. See? So I'll just hit the update. A lot of times it's auto-update, but sometimes if you see that update sign, you just have to click on it. See, so now it's says that there is a syntax error. It says, "Edit the model." When you go to the model, if it's a source like this, where it is a parameter, it doesn't really parse the parameters of the source. If it was a model, which I'll show you how the model are set up a little bit, it'll show, it'll tell you which model parameter is in error. But in this case, it doesn't really. It just tells you that there is an error, and you have to go through and try to figure it out if it's a typo. So I'll just go ahead and change that. See, I hit an error. It automatically updated, although I can hit update here.

So for the preparation, one thing I want to mention, that you have to pay special attention in here as well, because you have these little check boxes on the left. And you have these little Xs over on the right. You have to be very careful because if you hit an X, that's going to physically delete it off your schematic. For example, here's this J1. If I hit the X, it's gone. I just deleted that on this... hit Ctrl+Z to undo it, bring it back. But if there is this little check box here, if I want to disable that, I can check it and it will disable that out of the schematic. So I think the default, let me just go here under system navigation. There's this dimming. I think that kind of controls... I think the default is... let me just set to default this page.

See? So it makes it a lot less transparent. And I'll bring it back. There's another thing I want to show you with this example on that dimming in just a moment. Now, the same thing with probes. The probe is disabled here. If I turn it on, I could turn it on and off here. But if you hit the X, that will delete it. If you want to add a new probe, let's say I wanted to add a probe on another part, another section here, I can then come in, add a new voltage and I can add it. If you're going to add a current probe, you want to make sure that you add it right at the junction of the pin and the wire. And when you do that, you should get a little... should get a preview. Let me see... this probe. Or it should show me the name of it. Huh. It's probably hidden. Let me go back and change this real quick, see if that makes any difference.

Okay. Well, it's not showing what I wanted to. It should show that there is a... should show a value. And if it is sitting on... like here, if you put it on... see, here it shows empty probe. If you see empty probe, then you know that it's not on the junction. So if I take that probe and put it right on the junction, then... okay, now it's working. See? And you can click on this, see where it's highlighted and you can drag it. A little trick as you see, when I'm moving this text around, how it's jumping? If you hold your control key down, it moves it at the smallest interval. So you can move it. A lot of times you have to move the really precisely. You don't want to be changing the grid back and forth all day, so you just hold your control key. It lets you put it right where you want. And if you don't want to, you can uncheck those to disable them. You can leave them so that way you can turn them on and off if needed.

And it's under the analysis set up. And run is where you set up your simulation. Now, if you've made some changes, if it didn't automatically update, or if you have an error, see this says it's not up to date. You have to update. But sometimes it'll trick you to... see, for this three, I'll just do my little trick, break it, and I'll hit update. See, now it's shows need fixes, but sometimes if you're down here and you see that... I'll just hit 'done/due' for here. If you see that these run button are not available, you just make sure that you have everything fixed and that you... that everything in the validation section is fixed, and that you have updated the project.

So in this example, it's just a frequency sweep. And it has the expression. And I want to show you something new that's kind of nice that they've added with the ability of switching between decibels and magnitude. They made it much easier. And see this one already has a couple of measurements on there. I'll mention measurements right now, since they're here. When you are adding a new expression, so I'll just add this expression here. There's nothing there. There's expression X and an expression Y. Y is the plot, the collected data against the Y-axis. And the X-axis by default will be the simulation data. Like if you're simulating over time, the X-axis will be the timescale. If you're simulating frequency, like in this case, the X-axis will be frequency.

So when you're adding expression, you have the two values here. You want to make sure you add your waveform in the Y expression. Now, there are times where you might want to add the X expression. If you want to plot that Y collect the data against another variable, you could then set that other variable on the expression X, then it'll collect the data and display the Y data against X, so you can get some comparison data going on. Now to add an expression, here under wave forms, there's some basic constants which are here. If you can even... if you wanted to just throw a constant on your resulting wave form to have something to compare against.

Now, there is these node voltages and the node voltages, every labeled node in your circuit will be shown in here. And if it's not labeled, it uses the system default. So it shows all of the nodes and the whole circuit. Voltages are your voltage sources, the voltage stimulus sources that you place. So these are all of the voltage sources in your circuit. Same thing with currents. These are your current sources. You also have power, you have the power pretty much about two pin devices, and you have your constants. All this shows every everything.

Now, there is a trick because when you add an expression, the data is only collected for that expression. So if you want to have other data collected, you need to add extra expressions. But the trick here, as you can put in an ALL-V, and it said create, and that'll calculate all of your parameters. All voltage. There's another one called all I, so if I add another one, all I, then all of the data we collected for every current. I'll just turn that off for now, and I'll just run this. See, this is set as DB, and let's go back in and take a quick look at the measurements that are set for these.

So you can see here is the expression field here. I've got the expression set as V left out. If I come over here under measurements. Now here, there's... under type, you can choose which measurement that you want. And the name is really arbitrary. I like to set it the same as the type, or you can add a little bit more description if you want. And you can have the same named expressions for multiple wave forms. When you run the simulation, it separates them all out by wave form. So the number is... the number of times for the valley. It'll find the number of valleys. If you wanted the second one, you could change this number. And I'll show you. There's another one, when we get a little bit later... there's a couple different settings for... there's one for... I'll show you when we get there.

So once you've assigned your measurements, you just hit create. And here in the output expressions, you could see that there are expressions that are associated with this output expression, because it should list them underneath. If you have multiple... we'll see an exercise later that has multiple measurements that are set for it. So, only thing to do left now is click run.

And reason why I like this is our older simulator probably took about two minutes to finish this entire simulation. And this one takes less than 10 seconds. And you could see... oh, there's a... this one, I must have set the color on that... could see here, I'm just going to... oh, I thought I fixed that. But one thing here, if you set the color, when you're running a sweep, it automatically sets the color on all of them. So I think if I was to redo that, but I won't do that at that point. Another thing in the simulation dashboard, it doesn't come up by default. In your generated SDF file, which is the collected data, but you can invoke the simulation data panel from the panels button, and allows you to run simulations directly from the panel.

You could see since it's not... we don't have a schematic open. It's not checking for the electric rule set, but based on the schematic data I can select, I can vary the values here. Let's just take a look. Now, this did a sweep over a number of different values, so we have a sweep. And if we look at the sweep under the general settings, here, you just click on the gear. Now for the sweep parameter, you have a list of component values that you can sweep across a range of value, as well as this sweep is coming from a global parameter that's set.

So the sweep, the default set is zero. It also has a number of... these other global parameters that are set using an expression. And if then [ELF 00:32:37] statement, so it checks the value of sweep. 1357. And it will then turn on the slider of a potentiometer, either positive or negative. Or, I mean, either on or off, because can't quite set it to zero, so that's 0.001, because you're setting the value of a potentiometer. So you set it at zero, and then they set it to 0.999 on the upside. So then over here in general, you have your sweep. And the sweep can be... you have a different way of setting your sweep parameters, linear, decade, octave, or you can have a list of values that you list them out.

So then let's just to the simulation data. So the Sim data panel is really the main panel that has the collected data. So when you run, and you look up here in this section up here, this is all the collected data. If you wanted to add, if it's not already added, you can just click on it, add way to plot, or just double click on it. Now, the measurements, and this is new if you haven't seen it, that they've added in Altium Designer 21, it shows the measurements that were created. So now based on the measurement, the valley Y, so it's got the... for the valleys, so it shows... now this one just shows the sweep value. I think with that kind of complex expression, it doesn't calculate the value, but most of the sweep it will. But here, so for valley, if I click on this, if I wanted to show it on the plot, let's just click on P3. I click on the value I want to see, and then I choose show on chart.

And then the show on chart will show the cursor that's over here. Now to understand the measurements tab, we have a general tab and measurements tab. So the measurements shows the measurements that were made then general. These measurements are... once it turns on this cursor, if I move the cursor, you could see that it's moving and updating these values. So the cursors over here versus under measurement, these values are static. And over here, these values that... actually these values over here will update on the selected wave form. Now, if I go to plot a measurement, like if I click on here in plot, it looks like I've already done these. Let me just delete this chart and delete that table. So right now, you see, I have an AC tab that's selected. This is known as the chart. Now this area within here is known as the plot. And you have one or more plots in a chart.

And then of course, here we have the plot. So you can add new plots, and you can add waves to your plot. Also, with the plot, if you wanted to add a Y-axis, you can add a Y-axis here. It would add the Y-axis. And then depending on which axis is selected when you select it, it will then add that to the corresponding axis. So if you have wave forms that have a large magnitude change, one doesn't drown out the other. They have different ranges on their Y-axis. But going back over here, so on this measurement, if I click on here, we have all of the values going across. When I hit plot, I could either put in same plot or new plot. So I'll just click on create. So each one of these, actually down here, since we're doing the valleys, it shows us the valley of each one of these points.

And right now the sweep value isn't as important, but if I can enable a cursor, it shows us the corresponding point where the cursor is on these data points. If you select on a cursor, under wave, you have some cursor movement functions. There's a next peak, next trough. So if I wanted to go to the next peak to the right, that goes over here, and it shows me the cursor location here. If I click back over on general two, it shows me the cursor data that's over here. Now I can add on a second measurement. Now notice when I go back to measurement, there's nothing here. Now, if you look down here, this measurement plot, it created a new tab. So each tab on the bottom is its own collection of data.

So when it created this measurement plot, it's just a subset of data that's extracted from the initial AC analysis tab. So I come back over AC analysis. I can go to the peaks and click on plot. And if I wanted to create a new plot, I could choose new plot, and I can add it to the existing plot. So now I can see the plots side by side. I can change the mask level here, or I can hit clear, so I can see both plots in a same... And these are the measured values. So you can plot different collections into the same plot, or different plots. Example, I can go back in. If I plot this onto a new plot, it'll create a new plot showing that data. Now, if you want to delete the data just right click and delete chart. Delete all charts deletes all the data. You won't have any information left over from the simulation. Just deleting chart deletes the current active chart.

Okay. So that was measurements. Let's take a look at... next, we're going to look at sensitivity. And to show the sensitivity, I wanted to start out just with a really basic circuit. So I come back to simulation dashboard. So this is a voltage source. You can see it's just a 1 kHz source with one volt amplitude. And it's just a voltage divider. Each one of these is 1Ω. So it's just a simple voltage spider. I'll come over here to the analysis, set up and run. And since it's a time-based simulation, we're going to go to transient. And now the transient, if you have a periodic source like this, you can specify the number of periods you want, or there's a time interval.

See, I've already changed the points for period. If I come in here and delete this, I have 800, but if I delete it, you see the default is 25. Now in SPICE, you have to think of a trade off of simulation time. How long does it take to run, and accuracy. And sometimes when you go too accurate, it could just take a really extraordinary amount of time. And just to illustrate, I'm going to run two periods at the default 25 points per period. And you can see here, if I zoom in, that our sinusoidal source, it's kind of peaked. And that's because as it's dividing up the sources, it gets a little bit corded, where it's... it's linearly interpolating between the points. It just draws a straight line between each calculated data point.

Now, based on your tolerances, you can get more points than that, but typically based on... it'll run and just calculate based on the tolerances, generate the... that's the maximum distance... well, the minimum number of points is 25. So if there's tighter tolerance and things are changing, you can get more points in that, within that point, within that range. So let's just go back here, the transient and see If I set that. Let me zoom in so you can see a little bit, so it's kind of... I'm going to change that back to 800. And you can experiment with the... you can see it's still a little bit, but when you look at... see, it's between one and one. It's really, really minute. It's much smaller. I could make it a lot more, but with 800, it seems to be pretty decent resolution.

So now I'll come back to the Sim data panel, and we have a couple... I guess I didn't have measurements. Let's just go back here. And for this, I want to set the... oh, let's just go back to the schematic. I'll click over here. So on this V reference point, we want to see how the sensitivity for these resistors affect the circuit. So you already have... it's just a basic resistance divider, so it's pretty straightforward. So what we're going to do, so I have this sensitivity check box down here. And when you click on settings, there's this sensitivity button up here at the top. Since it's only resistance, now this is a multiplier, it'll take the value, in this case 1Ω and multiply it by this value.

So if I put in 100 milli, so that's going to multiply it by 0.1, which will result in a generated value of 0.9, because the deviation of that's point 0.1. So 1 - 0.1 is 0.9. So 100 M is about 1%. And the default is 1M, which I think multiplies it by well one million. And that's about what? 0.1%. So you just have to remember, this is just the multiplier. So with this said, as 100, just to show you, I'll go ahead and I'll rerun that. But actually in order for the sensitivity to work, you have to have a measurement. Otherwise, you won't have anything to see. So I'm going to... for this output expression, I'll go ahead and add the front of the pull down, go down to node voltages. There's my VREF. It's helpful if you label it. And on the measurements, just click on the measurements tab and add measurement.

Now from here, I'm going to call this max, and we're going to change this to the max. And that'll just find the maximum value of that wave form. Now, if I wanted to see it over range of values, as I mentioned before, I could put this value in here and leaving it blank. We'll look at the entire range. There's my max. And we'll go ahead and rerun the simulation. So now you can see there's some variation in here. I'll go to my Sim data panel and over here on measurements. So there you can see there's three resulting wave forms. There's this one right here in the middle. Let me just change the mask of it a little bit here, so it's easier to see. This first one, S1 is the first simulation run without any changes. Then we have S2.

So I hover over this, it says... I don't know if you could see that pop up, but it shows that the R1 is 0.9, and R2 is 1. And here for this third one, when I hover over it, it is R1 is 1, and R2 is 0.9. So you see that we've got a one... both are 1Ω, it's right at 5 milli. And when it's 1 and 0.9 or opposite, you could see the change on that. Now over here under measurements, here's S1. If we hover over that, we could see the values. It shows R1 is one and R2 is 1 for S1. S2 hovering over that, we should see that as R1 is 0.9 and R2 is 1, and same. We could see the reverse swap that. So there's this sensitivity button here. When we click that, it shows you the... here's the relative sensitivity of 1% of the parameter... the deviation for 1% of the parameter value.

And here's the relative deviation and the absolute sensitivity for these. It gets either... both have the same amount since they both are parallel series. Since they're both in series, they have the same amount effect for the voltage divider. Now, if this value here is less than 1%, it is a linear relationship. If it's greater than 1%, it's a nonlinear. Now you can see here, so this is 2.632%, or M per 1% parameter deviation. And if we go back to the Sim... no, what was this one? If we go back to the simulation here by clicking on the transit analysis, what I can do here, I'll click on this 5M. I'll say show on chart. Let's see if I can get it to show.

I guess... see, when you click on... see, I clicked on this one here and show on chart shows that particular wave. It puts the cursor right on there. So let me just go back to S2. I'll show it on the chart, which is on the top. Now I'm going to right click... this red signal here is the signal without any variation, so I'm going to right click on it and go to cursor B, and then I'm going to pull it right over on top of this here. So then if we look in here, they should both be at the same point. Now, if I click on the general tab in the middle here, we can see... with two cursors, we see that the cursor A - cursor B is that 20... there's 26.3M. And when we looked over here, remember it was a 2.63M per percent change in the parameter. And then over here, we have 263M for the absolute relativity. So we could see that it's lining up with the least... we get a +/-26.3 change from that peak value.

So that's kind of just a real simple look at how sensitivity works. Let's just take a look at sensitivity and a little bit more complex circuit like this here. Let's go over to the simulation dashboard. And we'll hit the start verification. And then over here... oops, I'll close that. So, then over here, we're going to set up a... this is going to be a... I think an AC sweep on this one. Let's see; preparation. We've got a... what's this? AC sweep on here. And we're going to be sweeping from 100 Meg to 10 gig and 1000 points per decade. So you could see here, it's the magnitude of the filter. If we look at the measurements, we have a cutoff high, which is just this cutoff high point, and we have the maximum amplitude. Again over the entire frequency range.

Now, what this means here is this level. This is the DB level. So for the cutoff, you can specify because that's the default. And you can specify if you want the log or the amplitude of the signal. Since we're taking the magnitude, we're going to use the amplitude. Otherwise, if it is... we'll see a little later, we'll have an example that has the amplitude and log. So I'll just go ahead. And this is going to... now again, this is where you can experiment with the number of points per decade, see what looks good on your simulation results. And you can see here for... in the Sim data panel for under measurements for every component, it just varies. It varies one. Now see, this is varying... If we look at the...

Let's go back to the simulation dashboard and look at the settings. So this is set up at 10M for each one of these. So it's doing a 1%, so that it can have a... so you can see the changes a little bit better. And so here's the cutoff high and the maximum amplitude. For example, here, if we click... here's 7.4. We can click on the show on chart. It finds the maximum amplitude and it finds that 3 DB point. This is really where you really want to make sure that when you run the simulation that you have, the smoother curve on the top. So when it's finding the top of the point, you don't have those rough edges. So that's where you have to make sure you run some simulations and analyze it, see what looks good as far as the number of the smoothness of the wave forms.

So if I want to look at the sensitivity of that, I can just click on sensitivity. And it shows me that L4 and C13 have the most sensitivity on that. Look back at the schematic. So L4 is over here on the output. And so then that way we can see, so L4, if we look at the... you have to come down to analysis down here, and under measurements, so we could see the... when we hover over some of these, you could see the values that are changing. And the sensitivity... actually, let me go back here. Another thing I wanted to show you was the... oh, I've got to click on AC tab here as they expand the table.

So in the expand table, it shows the different values, although we can copy this data out to like Excel, but it doesn't have these values that was used for each one. So there might be something that we could improve on, but if I want to, I could select everything. Let's see if I do Ctrl+A, I can then hit Ctrl+C. And then when I come into Excel... oops, that's not what I wanted. I should be able to come in here and copy it. Ctrl+C. Ctrl+A.

Oh, well, that's not working the way I wanted it. So I should be able to copy the measurements right out of this table and into an Excel chart. So let's see. Actually, maybe... no, I think in here, if I... can I do it?

No.

There is an export option, but that's not working at this point. So maybe we will need a... but there is a way that... we should be able to... it should copy that data right out and paste it into Excel. And so you see the data that is in there. All right. So let's try that. So to copy the data, I have the measurements it's showing Ctrl+A and Ctrl+C, then I can bring that into Excel and then I can pace it here in Ctrl+V. Okay. So now it's working. So it shows each of the sensitivity points and the corresponding value of that measurement. So what we don't... as I mentioned before, we don't have... when we hover over that, the ability to see all the parameters we used for each of these runs, which hopefully that'll be something that's added.

See, here's a little bit more complicated circuit that if we come over here, simulation dashboard, verify, go down here. It's going to be running a AC sweep. This is already set up. It's running from 10 Meg to one gig. 1000 points per decade. Originally this was set up as 2000, and I believe I had the results saved already, since I ran it at 1000 points. And I'll bring that up just to show, because this is one you want to run at a higher frequency, because this is a really narrow band that it passes. So I'm just going to... just for I'm just going to put this as 101, which is not fast enough, but you can see here's a magnitude and a DB output.

So for the magnitude of output, and this is where as I mentioned before, for the... since it's magnitude, these are the cutoff low and high bandwidth and the max... well, these are using amplitude. And for the DB of output, if we look at the measurements, these are using log because we're showing the DB of the output. See, sensitivity is selected, so if I go to settings, your sensitivity, these are all set to 10M. So if I run it at 101 points, you could see it runs through everything pretty quickly, but it's not as sharp. These are off a little bit, so it's... this wouldn't, if you do the analysis on it, it doesn't give you as good a analysis as... but it just takes a couple of minutes to run the other one.

So, I'm going to load this one that I've already run before. Now to save it, see, there's this little lock. And when you click the lock and it's locked, it saves the data. So when you run subsequent runs, it doesn't delete it, otherwise, it'll overwrite that data each time you run it. There's also what I've done. Edit title allows you to rename that, so you could just click on 'edit title'. That'll let you rename it so you can then come up, and I can then load the... or show results for this. I click on it and... let's see. I think... Now if I could load the profile loads, the parameters associated with that, I think since I already have it up, and let me just delete this chart, and I'll come back over here. It's 1000 points and just load. Show results is not there for some reason.

Hmm.

I'm probably doing something wrong. Let's just go back and we'll just run it. I was hoping to skip it to 1000 points. We'll just run it. And even for a finer resolution, it should really be run at about 2000 points per decade. But just to show you, see, it doesn't take too long. Now, if you're running a long simulation, if you have the simulation dashboard open, you could see this stop is here. You could just click on stop, and stop will let you stop the simulation that's running. If you don't have it open, you can go back to the schematic while it's running, get access to simulation dashboard, just click 'stop', and stop will abort the simulation. You'll have all of the collected data up to that point. You click 'stop'. Now it just stopped. Everything is back to run. So let's go over and take a look at the... here in the measurements.

See, so there's a lot of measurements that have been made. One thing we could look, see the bandwidth over here, it's pretty narrow. Getting a little bit of drag with my... oh, so the bandwidth here is... it's really narrow. So let's take a look at the bandwidth, seeing that this was even set up to 2000 points. This would be a little bit more cleaner here. Ideally at 2000 points. But there's a lot of points that are over here. You could see at... actually, let's... around... actually, let's look at this one here. And so the bandwidth, we're going to look at the maximum point. So the maximum point over here, we see that run 27 here, it's a little bit lower. And when we come to see it's because of L2.

So there's this one here is 82. There's one that's a little bit higher over here, and I'm going to get ahead of myself. So let's go ahead and plot this. So I've got this selected on max. I can then hit sensitivity. And so sensitivity shows the parameters that are most sensitive in the circuit. We can see L3 and L2 have the highest relative deviation. These capacitors come next, and these two resistors, but we really have the highest or these L3 and L2. And so back in the AC analysis, so for this maximum point, when I hover over this low value here, 82.6, all the way over there, you can see the L is 1.98, either my seven, which is 198 nano.

So, just remember this value here. That's for L2. Actually it's this one is... that was L3, and L2 is the higher value of 129.5. So remember this value right here. 129.5. And what we're going to do is come back to the simulation dashboard and run a parameter sweep on L2. So here, we've got our AC analysis and we are going to come down to settings. Now, notice you can't run a parameter sweep and sensitivity. It's one or the other. That's why this is checked and that's great out. You can even come into settings and uncheck the... I guess, uncheck it. I guess you can't check it. I guess if you check it here, I guess we got to uncheck it back over here. So we could see L2 from the list of components in the list. We're going to sweep L2. It's linear, starting at 198 nH to 200 in the step of two. So it's really just 198 and 200 nanos. That's two points.

I think I'll just go ahead and uncheck sensitivity and leave sweep enabled. So we're just going to run over that AC sweep here back at the data. So here we see for the maximum, here's this P1. And see, when I hover right over, it shows L2 is at 198 nano, and you can see that 129.5 value. If we swept at L3 over the same range, we would see that value as well. So right now, sensitivity, I think... and I could be wrong at this point, but it looks like it's just the lower part of the value. I don't think it looks at the plus deviation. I could be wrong there, but... so that's like a plus or minus, so it just looks at the minus part of that, at least from what I can tell, but I'm not an expert in that.

So let's take a look at... from here. See what else we can see before moving on to the next one. If there's anything else we want to look at. So there's other measurements, and as I mentioned before, if we wanted to... so here's the... well, this is DB and this is magnitude. So we want to take this max value and plot it. I'll bring it over here and come back to the sim data analysis. And if I want to take this max data and plot it, this is where I can choose the new plot, since it's in DB. I guess it looks like it's the same. It's just a different range over here. I think if we put them on the same, since the scale is different or the range, but I guess the... so it's just showing here from the value from L2 changing between 198 and 200, it shows how that value is going down.

Now, if I ran the parameter sweep from 198 to 202, at this point, it goes down, then it starts going up, so it's kind of interesting point. I'm kind of interested to see what happens on the positive side.

All right, so kind of moving ahead, now there is five examples that one of my colleagues had given me, and I'm just going to look at one of them. But I think something like this might be really a candidate for a workshop or exercise series to make them available. And I really liked how these were presented out. For example, let's just see. I think over here, which one was it that... this one? It was one of these? I think maybe it's the VCO. Yeah. So the VCO... and I liked how you put this presentation, how to present it. Let me just... and the whole circuit. I want to talk about this circuit just a little bit, and how it's set up. And if you're interested in more examples like this, definitely when you fill out the questionnaire, let us know what type of examples that you're interested in, so we can more of these available.

Now in this circuit, when you look at it, so it has these diodes over here on the left, and they're using the capacitance of these diodes and their biasing to help drive the circuit. And they have a... this is a RF transformer that is amplifying the RF signal. But you could see that this is just kind of a box and these are generic diode. In the components panel, if I go here to the MDL file, this MDL file, if we look at the figured libraries here, I have the advanced sub-circuit model that's defined. Now the NDL file is the default extension for our dot model. A file that has dot models in it. If I double click on it, see it can have one or more models. So it has a dot model statement. And these are just parameters that are used to drive that model.

And there could be multiple in there. If I take it... here's the MDL. There's no simple associated with it, but we recognize it's a diode and we have an automated diode generated. So if I drop it over here, I can see that that gets created. So it gets the... and here's the simulation. You can tell here in the source, it's set to MDL. Now, if I had my own diode component and I wanted to add it, let's just reuse that symbol. And I had add simulation to add my own simulation model. Then the types of... well, the location of where the model is located is determined up here at the top.

Also, we have a model type driving. What it's going to be looking for is we can drive it from here. And these also tie into our simulation generic library. So in here, we've got a model name. I can hit browse if I wanted to browse for the library manually. But since I already have it configured in my libraries here, I can just hit library and then hit browse. Now I have my libraries listed. If you don't see the libraries, you just click this up here. It'll toggle to show all the libraries. And I can then click on that library of interest, and it'll list out all the models that are in there. So it's not showing. See, there's a CKT file here. We're using this for the RF transformer, but you can see right now, I just want this model and I'll hit 'okay'.

Now on the model side, SPICE has a default send pin order for the model. So it has the node one and two, and that's anode/cathode. This one just happens to be one and two anode and cathode. But if the pin designators are swapped, you can always then come over here and click on the corresponding model node that you want. And these are labeled anode, C for cathode. In the pin, they made it K for cathode. So you make sure that these are set up. Now for the sub-circuit, this right here for this BPF-R181, this is using a sub-circuit model. And if we look at the CKT file, which is here, see, it has a whole bunch of these components. Now, for the sub-circuit, this is the autogenerated component. If I place it directly in here, this is auto-generated. If we look at its properties at the F11 key, we see that the pins, you have pins one through four, and the names 122, 31 and 32.

And the way that those get assigned... I'm just going to edit this particular model, is you could see, so we have pin one. So the first item here, pin one is pin one. Parentheses is the name. So you have the designator one. The name is 11. And over here, if we click on model file, we have the BP181. See this first 11 is node one. So you can think of it 1, 2, 3, 4. 11 is position 1, 22 is position 2. 31 is 3 and 32 is 4. That's how it comes up with these designators here. 1, 2, 3, and 4 correspond to 1, 2, 3, 4. 11, 22, 31 and 32 are in parentheses. And you can see that the schematic pins came up with those directly.

Now, although we can open and edit in... open this model, it's a text file. You never want to change these values at the top for the sub-circuit, because the whole circuit is the net list based around these interface nodes, so you break the sub-circuit. And see this also has some other components it's calling out. It has its own localized model that's within the sub-circuit, so these components are using this local model statement. So, you can see it's set up as by sub-circuit. That's the location. So if I wanted to add my own library, if I can go here to click on library and browse, if I was to browse for it, grab the 181s at the top there, then I would have to then make sure that these matched.

Since these all match up right now, there's not thing you really have to do. Now when you're creating your components, of course, now you have... just to kind of give you a glimpse of that, I created a library. That's the wrong project. Just so you can kind see, and this is kind of ugly when you open it up, so I brought over the picture of the footprint. So if you wanted to add a footprint to that, we've got... see collector emitter base emitter. It's 1131, which is, if we look back in the schematic, they put a little note here, just as a reminder. It's the collector base emitter, the emitter 1, emitter 2 is 11, 22, 31 and 32. And how do they know that? I forgot to share. Let's go back to the model real quick. So if I go back to the advanced sub-circuit, double click on this, so up here at the top, and sometimes it'll have some extra comments at the top of a model.

If you've downloaded it, this was unloaded from Infinian, but here's the first one, the BP181. And you can see they have this line right here, which it's showing CB, E1, E2. Sometimes they'll have some lines that are drawn down to these. So this C corresponds with 11. B is 22, E is 31, and E2 is 32.

So now when you are... so I brought over, this is one of our own symbols. Sorry for all the jumping around. If we come over to components and look at this simulation generic, I've got a filter, just delete it. And we'll go down. If I just want to use the symbol itself, if I scroll down, just show the symbol, I can just use either the [gamopoon 01:11:12], or the modified gumopoon. It doesn't matter. Now I can't just use this symbol itself. So what I did, because if we look at the properties of a simulation generic component, I can't add any customizations here.

If I copy this into that library, like for example, come back to that library and go to my SEH library panel. See, I've already pasted it in. If I look at the properties, it's still constrained, because it has a hidden property that it's a simulation generic component. So what I did here is I just copied this and went back to the other one and pasted it in right here. Now the only thing is now we've got to deal with... here's the base and we have this designator, and we've got the emitter, the source, which we'll deal as maybe emitter two. Perhaps we can even maybe rename it E2 just to help. And then over here, we've got the collector.

So, for the pin configuration, so for the package, we have collector, emitter base and emitter. So I put the numbers of those. We've got emitter, this first emitter is 31, and the second emitter is 32 just to show back. So this emitter is 31 and 32. So its order is a little bit different. For this part, they really... in the model, they didn't really make it easy for you to come in and get it set up. Now you know your librarian, why he's always on edge because he has to deal with these types of mapping, because now you have to... if you're going to add a footprint, then you can come over and browse and add your footprint. I think let's see if I have it. I was messing around with some footprints.

I think this one might be closest. Now you've got the footprint, but now this footprint, the way that the footprint maps up... oh, let me go in and get rid of this now, since I've got... And I'll just move this. Remember when you're making your components, it always rotates around the origins, so lot of times, what easy way to do it.... Oops, I missed that. Got that extra pin in there. So when you're rotating your components, when you place them, it rotates around the origin, which is this big origin here. So a lot of times I like to put the pin right on the origin. It'll rotate around that rather than trying to find the middle, although you could try to find it and then rotate it, so it rotates nicely, but it's a lot of extra work. So I just put it right at the pin one.

And the footprint, it has a nice... you can put it right at the center. It makes it really easy just rotate it right around. A little bit different in the. So once you have this here, if you go back and look at that footprint, back at the pin map, see it automatically mapped pin 1, 2, 3, and 4 to pin 1, 2, 3, and 4. So you've got to make sure that the mapping here in the data sheet is matching over here. And then you map your model to the corresponding pins, so that way you can use it in both domains. So a little bit of extra on that, just to kind of show you how those work in the background.

All right. So in this simulation, and this is kind of interesting the way that they have it set up. If we go to the simulation dashboard... get rid of this one, because just looking at this, it's still kind of ugly. Just a side comment, if you didn't want to put in your own custom symbol, because I just wanted to use this, you can come in and add some text, like they added this little thing here. If we edit this component, we can just add some inline text or just place some text right on each one of these to make it more visible, just so that it makes it a little bit more easier to read.

So looks good, everything passes preparation. We've got our sources and we're going to be running a... I think this is a... what are we running here? It's going to be a transient analysis. I already have that set up. The output expression is here. Now this output expression, it's going to generate this frequency based on the last period of the last... it's going to generate the last point. The voltage will get that period of the last section. And it'll tell us the frequency of that value. So that's what this is doing. And so if you look over here with RN, RN is over here on the output, and we have this VC. So we have this VCO out, which is right here. It's coming off the... this is kind of a tank. We've got the conductor capacitors coming in. It comes into the RF transformer.

And we have this V out, it comes over here. There's another same device. And it comes in and we've got the A1 out with a capacitor to RN. I'm not an expert on here, that's why I'm just going through this pretty quickly. When I run it, just click the 'run' button. And we can see when we go to Sim data. Right now, it's running through the... right now there's a sweep and... well, while that's running, let's just go in the simulation dashboard. It should be able to pull this up while it's running. Let's see if it stops. Now it stopped. All right.

Just a test. Test live, so in action. The sweep parameter, we're sweeping V2, which is the voltage on the input from 1 to 12. So we'll just... I think there is ongoing development for multi-threading multiple processors and so forth. We're always looking ways to speed it up. They've really done a really great job at speeding up the overall simulation just in general. So it looks like it's done. We'll go to the SIM panel and over to our measurement. Here's our frequency that's generated based on the last period here. So if I click on here on P1, I'll just click 'show on chart'. And so it shows me it's using this point right here to grab that last period here, to find the frequency.

Now, another thing with a sweep that I want to mention real quickly, if you notice with this selected wave form here, you see the ending is in P1. All the other corresponding waves will highlight. And there's an option that controls that, but you can... it automatically highlights that. So as you click on each of these other sweeps, it shows you the... so it shows the value V2, and it shows you the corresponding values over there. Just over here, it's kind of nice. When you click on the run that you want, you just click on the show on chart and then that... and see now, before when we run the sensitivity, we run a parametric sweep. These are now PS.

And the same thing would be applied if I ran another... if I had another measurement that was here, I could plot one and then plot the other and plot multiple measurements on the same plot. But since I only have one measurement, I can just click that one plot. I create... now here, it's showing as... oh, it's... see, every time it keeps adding I would just delete it and re-plot it.

Okay. So now I've got the measurement, I've got the plot that's been generated. And as the voltage of V2 goes from one volt up to 12, we see the corresponding frequency on the period. It's getting... we see the corresponding of frequency is getting higher on that voltage-controlled oscillation point. Okay. So that pretty much brings me to what I wanted to talk about now. I don't know why I threw this one in. Not this one, but I threw this in just because I liked it just as a DC sweep. I guess I didn't really talk about DC sweep. So you could say I've got a current source going right into the base of this transistor. And I've got a voltage source across the collector and emitter. If I run a DC sweep, so the DC sweep, I can sweep the one across a range of values and I can sweep the second source across a range of values.

And then I can look at the output expression. I decided the measurement for the last Y value just for... and so when I hit run, so here it shows the family of curves. Look at the simulation data. So the last Y value would be this one right over here. So on their measurements, we've got this over here. I could even just hit the plot. I don't know if it's useful or not. I'm going to hit plot. Oh, it doesn't. I guess there's no... it doesn't like the plot on that one.

I will leave you at that. Now we're going to go into the question and answer section, and look for... I will share the link with the feedback form so that you can get directly in touch with me and show me what you like to see on our upcoming webinars and workshops and other presentations like this. All right. So thank you for attending Altium Live 2022, and we hope to see you next year.

So here is for your feedback. So let us hear from you, to help us improve Altium Designer and SPICE simulation in Altium Designer. All right. See all next year.

 

Sobre el autor / Sobre la autora

Sobre el autor / Sobre la autora

Derek aporta más de 20 años de experiencia en electrónica como especialista en EDA. Tras obtener un certificado de técnico en electrónica (CET), prosiguió sus estudios hasta alcanzar la licenciatura en ingeniería por la Universidad Estatal de California, en Fullerton, especializándose en arquitectura y diseño de ordenadores. Orientado inicialmente hacia las plataformas de desarrollo embebido, comenzó a utilizar herramientas de EDA en 1997, centrándose en esquemáticos, PCB, VHDL y simulaciones SPICE. Derek se unió a Altium en 2005 y le encanta ayudar a los demás a lograr resultados.

Articulos más recientes

Volver a la Pàgina de Inicio