Video: EMX Planar 3D Solver - Key New Features and Updates | Duration: 3176s | Summary: EMX Planar 3D Solver - Key New Features and Updates | Chapters: Webinar Introduction (4.4s), Net-Based Meshing Introduction (56.565002s), White Boxing Technique (1204.505s), Advanced Termination Techniques (2008.915s), Fill Approximation Features (2165.375s), Q&A and Conclusion (2905.875s), Concluding Remarks (3126.045s)
Transcript for "EMX Planar 3D Solver - Key New Features and Updates":
Good morning, everyone. Thank you for joining today's webinar. We are gonna go ahead and get started here. Before we get into today's webinar, we're gonna go over a few housekeeping slides. Please note that all lines are muted. Today's webinar is being recorded, and a link of the recording will be emailed to you within the next few days. Please submit your questions in the q and a panel. If you're unable to answer your questions during the webinar, we will follow-up with you via email afterward. Please take a moment after the webinar concludes to complete a short survey. And lastly, please do not record or dispute this presentation. With that being said, I'm gonna pass it over to today's presenter to host today's webinar. Welcome everybody. This is, Ahmed El-Gabaly. I'm a senior, product engineer at Cadence. So, primarily supporting EMX. So, today, I'll be starting off with the new features in 2024 dot one. So I'll be focusing on the three main, features primarily, net based meshing, which is based on, Voronoi meshing. So this is more, location aware, meshing, feature that we've added in twenty twenty four dot one. The other, major feature is white boxing, which is kind of opposite to what we've introduced with black boxing. So that's the, feature that we'll be talking about today. The and last, the and not least is the, is the fail handling feature. So, so we introduced new, new functions to eliminate fail and to approximate their effects, and this is all to increase the capacity of EMACs and to, to, to be able to handle, large, designs. So so all of these features really, increase the capacity of EMX to handle, larger layouts. And then after that, we'll be taking any questions, that you might have. So, so to start off, I'll be talking about net based meshing, and it it it depends on it it it relies on or built upon vernois meshing. So we've introduced, a new meshing structure, called vernois meshing that is basically, we find was related, like, well, related to your nearby features. So, basically, what that means is, the mesh is gonna be finer, around bends, slots, crossovers, and also proximity to other shapes. As an example, when you have a piece of wire, on a large ground plane, the mesh is gonna be a lot more refined, in the, in the areas on the ground plane that are directly underneath the wire. So, so you can see that here at the bottom, center sort of picture where on the ground plane, the pink ground plane, you could see the mesh is a finer, right underneath where you have the horseshoe wire or the straight wire. So we needed Voronoi meshing to enable net based meshing, which is the capability of selecting, different nets and meshing them different. So even if they have the same metal layer, the the wires or the nets will be matched differently. And this is additional to the global mesh settings and also the per layer mesh settings that you're used to, that we had in the earlier versions of EMX. And so it it comes as a higher priority, compared to per layer and global. So per mesh will per net will be applied and then your per layer mesh setting and then finally your global mesh setting. So, so the, so this all applies to the edge, mesh setting, which is more on the lateral scale. The vertical mesh setting is is, is not really net based at this moment in time. The other thing I wanted to point out is the net based and the Voronoi meshing. It applies to the conductors. The, the vias themselves, are still utilizing the original EMX, meshing approach. So so if you have an area that has a lot of vias in it, that area would most likely well, will actually have, the, more of the default style, that we had earlier. So, so this is an introduction to the net based mesh settings. So just to give you an example of how it currently looks like, so this is before, Voronoi meshing was introduced. So if I have a ground plane here in green and I have a trace of red in red that is, flowing over it, the original mesh will be fairly consistent. It doesn't really change with proximity effects, and, and you can see that the it's it's fairly regular throughout the ground plane. And here we have the edge mesh setting for the ground set to one micron and the twist width. The trace edge mesh setting using a different metal layer, is set to a finer setting for the trace. And this is an example of, the original mesh setting was a global setting and a per layer setting for metal 11. If we were to look at the same, the same layout, but using the newer Voronoi meshing with the same settings, but just turning on the Voronoi meshing option, was test as Voronoi meshing, in the MX options, what you're gonna see is the ground plane is is meshed certainly differently. And, right where the, where the trace is, you could see the, the ground plane is meshed a lot more finely, and then it gets more coarse as you move outwards towards the ground plane edges. So, so with this approach, we do expect, more accurate results because we're, our mesh is a lot more refined, where the current will most likely be flowing. Right? So especially as the frequency goes up, most of the current will be confined in the areas, right underneath the wire, on the ground plane. So having more refined measures there will give us a better calculation of the current than what we had earlier. So with that Veronoi meshing capability, we're able to introduce net based meshing. And, one particular use case is to be able to, mesh important nets more finely, and then, all of your insensitive nets, could be, could be more closely matched. So that will give you the, a speed boost or performance boost. The, then this specifically applies to a lot of large structures like ground planes, for example, where you could utilize a coarser edge mesh. And then with VERToy feature sort of recognition, what is happening is we're we're refining that mesh automatically where it needs to, which is around slots, cutouts, or where signals overlap or there is a proximity to other signals. The, the other major application for this is actually to handle trail or large arrays of floating metal. So you could apply fine settings to your important, nets, for example, your inductor coils and transformers, etcetera, while all of the other floating pieces of metal could actually, have a much coarser setting, and you would still be able to capture, the effects of fill, including eddy currents as well. So so the the major, goal behind that base meshing is to, simplify and speed up the EMX simulations compared to using a fine mesh for all nets and shapes. So, so that was the, the major driver for introducing that feature. So how to actually enable it? It is enabled mostly in the EMX options field in the GUI. There is a a particular option that we've introduced, which is dash dash net meshing. And, you could give it a, a regular expression where it's going to try to match, a pin or label to that regular expression, and then you can give it a value. So you'll go, the regular expression, comma, value, and that value would be the edge mesh setting that you want for that particular, net or group of nets that match your regular expression. So, so net based meshing is always gonna be based on Voronoi meshing, so you do not need to, enable Voronoi meshing explicitly. It it is implicitly applied, if you turn on, net based meshing. So here I have some examples. You could turn on net based meshing for p one. Any any net that is connected to a p one label will get point three microns, and then any net that has a a ground label, g and d label, will have a point six micron mesh. So this is kind of the straightforward approach. There is a another approach where you could start applying, or expressions in your regular expressions. So you could go, p one or ground as I show here my example, and that will apply point three microns to p one or ground. And everything else will have one micron as for the global setting. And then, there is the capability as well to select the multiple buses, or or buses of wires, by using, bus dot star. So you could use the star wild card to, to, to actually, pick multiple, various nets in your design. So it's fairly flexible, and, and you could also do relative edge meshing. So this is where, the net based mesh setting is relative to your global or your per layer. So in the example, the, the global mesh setting of one and then for metal eight, I have point six, but then I, then I apply point five factor on p one. So what that means is any, all of the nets that are connected to p one will, will have half of that. So it will have point five microns for all layers, and then for for metal layer, it will actually have point three microns. And then in the case, you could have, point 6.2 as your settings for, for the global setting. But in the net based one, you you can actually relax it to, so it'd actually be five times bigger. So so the ground plane would be meshed with one microns and middle eleven and three microns and everything else. So, so you could also go relative as well as absolute as we show here in in these examples. So this is actually more of a a of a picture of what happens. So this is an example where I have a large ground plane here in green and metal 10, and then I have a cutout at it, and and I have a coil in red and metal 11. Then I have fill also around the, around the, inductor coil itself. So this is with a regular mesh setting where I apply point three to everything, and I turn on Voronoi. So you could see that, the mesh is, is fairly fine, everywhere, including the fill as well, which is excessive, and also the the routes here that that are mostly digital routes, that could probably benefit from a more relaxed setting. And this is what we're actually doing in the next slide here where, you could see now the ground plane mesh is a lot, is a lot more coarse. And then also in in the fill structures, the fill around the inductor on the left, You can see the fill only has four mesh cells in it as opposed to before where it had, like, nine or even above. So to do that, we would still apply the same global dash e option of one micron, but the, but we're we're saying, with net base meshing options, we're saying p one should have point three microns, and then the ground plane is actually relaxed at point nine. And then, and then here we're using an or operation to actually target any other nets, so p one or ground, so, with a minus sign. So the minus here means not so any net really that is not p one or ground, will get point six. So this means any named nets. So not necessarily floating nets. So floating nets will always take the global setting that you have in, in dash e. So it and also the per layer, settings that you might have. So that's what the the floating nets would get. But any net that is named, for example, the digital nets here are named, will have a a setting of point six in this example. So net base mesh, the net meshing option explicitly works with named nets, essentially. So so this is just a simple example showing, like, the different, features that you could mesh differently. So, actually, we have, we've had a lot of customers use this feature, more recently, and this is an example of a, of a 77 gigahertz, low noise amplifier in 28 nanometers. And, and it's a six stage design. The, there were two, EMX runs in this. We've we've ran it in twenty twenty three dot two with with a, with a regular mesh setting, and, and then we've applied, twenty twenty four dot one with this net based mesh settings. And the, the idea was we've picked the sensitive nets in this design mostly between the stages, the output of one stage and the input of the stage. And when we've applied finer mesh settings, relatively speaking with the factor of point two five, finer mesh for these nets. We were able to obtain similar results, which I'll show next, but the performance gain is what I wanted to highlight here So, the the mesh complexity dropped significantly. And with that, the peak memory actually dropped by 2.5, and the and the time also dropped by a factor of 2.5. So so instead of it taking, four to five hours, it took one or two hours, so to speak. So it was, it was a significant improvement. And, and with that, if we look at the actual results that come out of both, they're actually fairly similar. So we're actually here comparing the s one one of the low noise amplifier. So the input matching really of it, the s one one and the noise figure, And, they're fairly close between the two different models, between the old EMX, so the meshing style in 2023 dot one, and in the newer, twenty twenty four dot one, net net based meshing approach. So the results are fairly similar between the two, but the performance gain is is substantial, within that based meshing. So this is the complete design. So, so with the input pads, with the, design stages, the game stages, and also all of the transformers and inductors in the design. Okay. So, another example, particularly, that that this particularly applies to is actually MOM caps. So, MOM caps have particularly fine feature sizes. So the the the, the fingers are fairly, narrow compared to everything else. And once you put it in a test structure, with signal pads and ground pads, the, the, applying a fine mesh setting to capture the MOM cap, fine features, applying it to the entire layout will be problematic, and you will be needing, like, terabytes of memory. And it might not even finish at at this as in this particular case. It couldn't run on a 700 giga gigabyte machine. But with the new net based meshing, if we apply a global edge mesh of one micron and then target the two signal nets that are connected to the MOM cap and set that to point zero two for the finger size for the finger size in that MOM cap, then we could get a a result that finishes within, like, with the 700 gigabit the gigabyte machine. So it definitely reduces your meshing complexity and the amount of memory that you're gonna need. So this is another example where the net based meshing really shines. Okay. So, moving on to the next feature. So this is the white boxing, feature specifically, and and we we kind of termed it white boxing because it is, it is, the opposite of black boxing if you, think about it. So it's, here what we're doing is we are terminating point, ports with simple, RLC models series RLC models. So it could be up to RLC. You could omit any of the r's, l's, and c's if you want if you want just to see only, for example. The idea here on the far right is, if you have any network, an a plus b sort of port network and a is the ports on the left and and b is the ports on the right, you could actually terminate all of the ports, that you don't want on the right with a particular impedance, and then, you would terminate it with an RC model, and you would compute the the parameters for the a ports on the on the left. So, we're essentially reducing, an a plus b port problem into an a only problem. So if you're terminating half the ports, you could you could actually, terminate the, I mean, simplify the problem to, by a factor of a half. So, so this is kind of opposite to black boxing in the sense that, we're dropping the number of ports. Black boxing actually tends to increase the number of ports because as you remove components or you move, circuits, you're actually generating increased port count. And, and there are a lot of benefits to this, not only when it comes to, simplifying the simulation. You could actually do a lot of diagnostics with this before you actually get blocks that are completed. So, with black boxing, you tend to have to wait for the layout of the excluded component to be ready, and then you could remove it, and it has to be instantiated in your layout. With with white boxing, you could start working at a higher level, and you could start putting in approximate models, and, and you could start looking at your network right away. So that's another benefit of the white boxing approach. So a lot of, a lot of, common applications for this is when it comes to aggressor victim analysis. You could start modeling all of your transistor gate loads, inverters, or any digital logic with, with an RLC load, and, do a crosstalk accuracy victim analysis, directly. Or you could use this, for example, in supply decoupling where you have a large, decoupling capacitor array, and, they all can be represented with RLC loads. So, how how would you enable this in the GUI? So in the GUI, in the grounds field, you would specify RLC tags for your port definite RLC tags for your port definition. So p four here is having, a a resistive termination of one ohm with, an inductance of, 100 pico and and a 100 femtoferads of capacitance. And then similarly, for p five. And then those will be, terminated with those impedances and then grounded essentially. So, so anything that is entered in the ground field gets translated with the dash x option in the command line, and you can see it here that it is applying these, terminations, to these particular ports. And then, just to be absolutely clear clear of what we're doing is, essentially, all of my b ports, all of the ports that I'm terminating will get an RLC termination added to them. This also works with, with reference ports as well. So the RLC impedance will will appear between your signal pin and your reference pin for that port. And then all of the other ports that are not terminated are just being solved for as normal. So when you generate a s parameter schematic, what you're gonna get is you're gonna get your a ports that you're solving normally and then all of the b ports that you've terminated have been removed. But you'll still get a text note showing that, the impedances or the RLC networks that were used, for the, terminated ports. So just as an example, of actually a multiple port, so a lot of these, white boxing sort of applications, they have a lot of ports associated with them because they tend to be large capacitor arrays that you wanna remove or large, transistor data arrays. And, to do that, this, like, the, the ports but the port, specifications could be done using the wildcards. So you could go out star, and what that means is any pin that has out, in in its name, with any characters after that will be matched to the specifier. And then you can terminate them all with, with one ohms and one nanohenry in this example and one femtoferid, or or whichever impedance you would wanna use. But you can apply it to all of the pins, that have out that start with, without in in their names. And this also applies to reference ports as well. So you could start, using wildcards also in your reference ports as in the example, and you could terminate these as well, all of them with the same, with the same impedance. So, so this gets particularly useful when you start having larger rays, as we shall see in some of the examples. So this is just, an example of the flow of how you would actually use white boxing in the GUI. So you would specify the grounds or the terminated ports in your grounds field, and you would add determinations for all of the ports that you want terminated. You would just go straight at, starting the simulation. And then once it's completed, you would click on the s par button. And what you're gonna get is a generated, s parameter schematic, that, all of the ports that are solved, regularly in the signals field will appear. And then, the the other ones that were terminated, you will see a text note here in white showing, what, terminations were used. So it's it's it's it's fairly seamless and integrated, in the flow. So here is an example of a this is more on the cross talk aggressor victim side of things. So, with 44, metal lines, and we've extended this to a 176. So you could go ahead and just draw these lines right in your layout. And before even, the load is completed in the design process, you could analyze this right away with, with an approximate, impedance, for the driver or for the for the loading stages. And, here, we're using a millimeter long, set of lines and they're fairly narrow with, with a 1.33 micron pitch. And we've we've we've done this for 44 and a 176 lines. But you could go ahead and and run, an aggressive victim analysis on this even before, your loading stages are done, and and you could actually start looking at what is the current that is going to be in my victim line if I activate or, the other, the other set of lines. So in the 44 line case, every we will pick a line at a time, and then, and then the other 43 lines will be aggressors. And then my picked line will be my victim, and we're looking at the current on that victim. And, here we're showing the results with the original simulation. So this is with, the full, 44 port simulation where all of the output, the output pins here are still regular ports, and then I connect it to a capacitance, in my test bench, versus, in the white boxing case where we drop the number of ports now to 22 because all of my output pins are being terminated with approximate capacitance. And you can see here in terms of performance, the wall clock definitely drops by 40%. So, so this carries also over to the, 176 line case. So this is a a particularly useful feature when you're trying to simplify, your core count. So in this case, we dropped the the core count from 88 to 40, sorry, from 44 to 22. And then, and then, in the case, we dropped it from a 176 to, to 83. So yeah. So there is a, definite reduction by a factor of half here. We've applied this with several customers too, so we've had customers already use this. And, the, one particular application is in memory arrays where we have a lot of of, well, actually, in in in image sensors, sorry, where we have a lot of, pixels, associated with them and there's a lot of transistor gates. This is an example where we would actually, have well, we actually have six, like, thousands of ports, and this wouldn't complete on a three terabyte machine. With white boxing, what we were able to do was for, for the 2,080 pixels, there is three three pins in each one of them. So, so with these particular pins, we were able to load these with a capacitance and, and connect them to ground after the capacitance. And then we would solve for the remaining two ports that we're interested in. So, so here, the TX pin, the the top level TX pin is is is a is a port that we're solving for. And then, we're keeping the far, left pin p one, as a pin that we're solving for as well. And and all of the other pins in the middle for each one of these pixels and and gates, they're all being terminated with a capacitance. So we've simplified a 6,000, for example, to a two port problem, which is a lot more easier to solve. So, so, actually, this was done using our virtual, so RF, flow, so using the electromagnetic assistant. And, basically, we've tried, two port models and a one port model. So the one port model is only the TX pin. The two port model is TX plus p one, which is the far left, cell, essentially. And on a, on a three terabyte machine, for 2023 dot two, we were we weren't able to finish the simulation, because we had to use 600 6,265 ports, which wasn't really feasible. But with white boxing, we were able to drop this down to two ports, and then the memory requirement was only within, a few hundreds of gigahertz and, I mean, gigabytes. And, the the simulation times were definitely reasonable, for this example. So, so this is another case where white boxing really, really extends the applicability of EMX into these fairly large arrays, especially a lot of the mixed signal designs. So just a few important notes on white boxing. The, we were showing mostly RLC terminations, but you could always omit any of any com any of them and end up with one, with one component. That is, totally fine. And there is, you could also simplify a lot of the, s parameter problems by using 50 ohm, terminations. So you could terminate ports with 50 ohms by using the r tag. So if you have, like, large coupler arrays and, you wanna terminate a lot of the isolated ports using 50 ohms, the r tag will be specifically useful for that. The, there is the option of so what we've talked about was ports being terminated and dropped from the the problem or dropped from dissolving. There is the capability of actually terminating and keeping ports. So, essentially, here, you're you're terminating a port with a series impedance of a capacitance in this case, and then you're you're still keeping, the voltages and currents in the ports. So in addition to that, like, not only you could you could keep, the ports, you could actually add observe only circuitry, using the o tag. And what that does, it will add additional, sensed components and, current control of current sources. So, essentially, what we're doing is we're just sensing the current in that port, and we are mirroring it, onto the termination. So, by doing that, we could get the, the current in the termination and the voltage across the termination. So in your crosstalk examples, not only you could, not only you could get, like, the, the current on the victim, you could also get the current, on the victim on the far end and also the voltage on that termination also on the far end. So, so this is also available to you in 2024 .one, but, yeah, but the the major, feature is the capability of terminating point ports and and and, and eventually dropping them, to simplify the problem. Okay. So, so I guess, the last but not least is the is the fill approximation and, and the fill of the elimination features. This is a, this is a new set of options that we've added. Eliminate floating is a, is a new option that would eliminate any floating geometries with any with no labels or pins attached. So this actually uses the connectivity information that we have. And, based on that, we would remove any shapes that don't have any pins or labels, assigned to them. And then we've added a new function, which is the approximate fill, which approximates the capacitive effect of the fill. And it does that by adjusting the that extra constant of the, of the of the surrounding layers. So there is no any current, estimation here. It's, primarily, the capacitive effect of fill. So there is two methods now of removing fill, in an EMAX simulation. So the way that you're probably used to is is using the fail operator in the proc file, and that works as normal, where, with that fail, function in the proc file and, and a fill size variable definition as an emx option, you could remove any fill shapes regardless of the connectivity. So here, we're not really checking any connectivity at that point. We gotta remove any shape that we're gonna see, and that way, it tends to be a fast approach. We've added the eliminate the eliminate floating feature, which will check connectivity before removing anything, and that's definitely a lot more safe. And, it's primarily tailored also for, for moving thing thin long shapes. So it essentially, things with a large aspect ratio. So if you were to move, like, a one micron by a 100 micron, rectangle using the fill function, you would have to use a fill size of a 100 microns. And that means that it's gonna move anything that is smaller than a 100 microns, which will be, which could be actually nets in your in your in your actual design. So you you you wouldn't wanna do that, and eliminate floating will be a much better option. So these two methods are operate in an orthogonal fashion. Like, they're they're they're on top of each other. Fill, in the prop file, takes precedence or eliminates loading. So, basically, what we recommend is you would use the fill option in your process file to remove the smaller fill in a fast fashion where you it's not really checking for any connectivity, chances are that smaller fail will be floating. And then the larger fail, can then be handled by the eliminate floating option. And that will actually remove structures, that are not connected to anything, and that would be safer to use for for the larger sizes. So here is just a a quick example of an inductor with, with, with fill up to metal nine. So the inductor itself is in metal ten and eleven with a metal tie with a metal nine underpass. And on metal nine here, we've added, thin long strips of fill, 20 by two microns for that. So, and then all of the remaining fill is within one micron by one micron. So all of the fail from metal one to metal eight. So if I do a defined fill size of one, it's gonna remove all of the fill shapes from metal one to metal eight because these are smaller than one micron on each dimension. But it will still leave me with the metal nine shapes. So to remove the metal nine shapes, I can use the new eliminate floating function, which will remove all of these, floating metal nine pieces. But the key here is it's gonna keep my underpass intact. If I were to try to do the same thing with the fill size feature, with the fill function that we had before in twenty twenty three dot two, with only that function, I'm gonna have to I'll have to use the fill size of 20 to to to remove these long, metal nine strips. And that would also remove the underpass of my inductor, and I'll have two nets, and my simulation will no longer be valid. So this is one particular example where the eliminate floating will be useful. So fill approximation is also, is also a two step two step process. So after after we eliminate the fill using the two options that we discussed earlier, the the fill function in the proc file and eliminate floating, option, then we can apply the dash dash approximate fill option to approximate the fill being removed, in our earlier steps. So, so this will approximate, the capacitive effect of what we've removed. So, so there is also the option of specifying a fill area, and that's useful in cases where there is, quite a bit of empty space in your layout. And for it to compute the fill density accurately, you need to give it, like, the correct bounding box, for the fill that you're removing. So there is more detail on this option in the in the MX manual, but, essentially, instead of using the entire layout bounding box, for your fill area or your fill density estimation, you could give it a smaller value to to actually use a, a more correct, fill density when it's approximating, the capacitive effect. So our recommendation for handling, fill is, any large fill, especially in the thicker metal layers closer to your transformers or passive structures, those fill shapes should be kept, and should be solved for, regularly. The the only thing that we would recommend here is, you would, you would set your, your your mesh settings so that you have four sort of, meshes in your fill so that you can start capturing the circulating, eddy current on that fill. And then any small dummy fail could be handled with the fill function and the eliminate floating feature, but primarily by the fill function, And then the thin long strips, could be handled by the eliminate eliminate floating feature. So the idea here is the, the simulation time should be reasonable since the the large dummy field that you're keeping is not as dense, and so the number of mesh elements shouldn't be shouldn't be impractical, especially if we're gonna if we're gonna closely mesh them. So we could use net based meshing for that for that reason, which I'll show, in my last example here. So yeah. So actually moving on to the, examples here. The, the study we did was we took a parallel plate capacitor between metal one and metal three, and we added metal two dummy. And here we're just showing that, the capacitance with everything solved for as normal is really close to the capacitance that we would get with the metal two dummy being removed and approximated. So here we're within 1%, of the capacitance. So it really approximates the capacitive effect very closely, in this example. Here is another inductor that we've we've had metal fill, all throughout throughout the layers. The, the inductor itself is in metal ten and eleven. So, so so so filled in metals one to eight are relatively small below one micron, on each dimension. So what we could do is we could use the fill function for that to remove it, and then we could apply the approximate, function call, or, the approximate option for metals, one to eight. And then anything above that, metals nine, ten, 11, could be kept in a layout and is meshed. So, so here, what what we could see is, there is the results of the self resonance frequency with the full solve versus the, versus the approximate feature are very close to one another. They're just within point 45%. So here, it approximated the parasitic capacitance, really closely. The key here, though, is the the performance improvements is more on this it's it's more than 10 times, which is significant. So so instead of meshing and solving all of my metal one to metal eight dummy, I can just approximate them, and solve this problem, 10 times faster. Here is another, last example where we've actually combined that base meshing and, and, the fill approximation feature. So, again, the this is actually a transformer. In the top left here is the layout, and, metals eleven and ten are used for the transformer itself, and then we have fill from metal one all the way to metal 11. The, we are approximating the mesh, I'm sorry, the, the fill from metals one to metal eight again. So these are, one micron or smaller. So we're using the fill function for that in the prop file, to move all these and approximate their effects. Then what we could do is on metals nine to, metals nine to 11, we could actually apply net based meshing and mesh our, transformer with point three microns, for example. And then for the fill, just a a micron or 1.5 microns to only have four mesh elements in it. And you could see that the q on the primary and secondary are within 1% of each other. And then if I don't include any fill at all, my my queue is very optimistic, and it's 20% higher. So this is an example where with net based meshing and fill approximation, I could drop my problem by a factor of 20, in this case, in terms of performance improvement. So if you could imagine having a lot of these transformers, in your amplifier, these, this feature will actually improve your performance quite a bit. Okay. So I guess, yeah, these are, this concludes my presentation. So, you know, we're good to take any questions at this moment in time. Yes. So I guess, one question here is in the chat was, how does the model size compare between standard meshing and Voronoi meshing? Voronoi meshing tends to tends to make the the meshing more complicated. If it's if it's with the same edge mesh setting, then the vernoy meshing will actually be refining the mesh where it needs to. And because of that, the the mesh could be 10% to 20%, actually, more, larger, essentially. So that means that it it's gonna affect your performance. But, if you're using it in conduct in conjunction with net based meshing and you're starting to, making some nets, more coarse than others, then, then with that, you should be able to get a, a a particularly significant improvement. So so so the Voronoi meshing by itself, tends to be and actually tends to actually give you a more accurate result and tends to add more mesh cells and more, edges to solve. But if you're using it with net based meshing and you're relaxing some, some nets, then then you could end up being far ahead, in simplifying the problem. So, yeah, another question we got in the chat was how's the accuracy between, the new meshing and the and the old mesh styles. I guess the the accuracy of the new meshing would be more accurate, because you're, you're finding the mesh where the current is actually flowing. And, because of that, you're capturing the the the currents more accurately. And, out of the box, the the vernois meshing should be should give you a more accurate result. Now if you're if you're relaxing, though, the mesh too much on some of the nets, then you could end up with a less accurate result. So it depends on on how far you're you're using the net based meshing. But if if we're talking about just Voronoi meshing by itself, then it should be more accurate, generally speaking. One other question here I'm seeing is the white boxing, support. Does white boxing support as parameter terminations? Not at this current moment. There is an internal development that is going on right now to actually address the usage of as parameters, for determinations. So, so, so that should be coming in a in a future release. But for now, it's an RLC network, for the, for the termination at this moment in time. Okay. I think these are, these are all of the questions. So, so I guess if there's if there isn't any other if there isn't any more questions, I think we could we could probably end it here. Yeah. Thank you. Thank you everybody for for listening, and, yeah, have a good day. Thank you so much. You all have a wonderful day, and we will send out the link to the recording early next week. Perfect. Alright. Thank you.