 Good afternoon. Today I'll be presenting a small talk on interpolation schemes that are used in lookup tables. This is the outline of the talk. Okay, so I'll briefly, you know, tell something about the transistor for which we make these lookup tables. Then I'll briefly describe the lookup table approach. Then we look at some interpolation choices and later on I'll probably discuss interpolation scheme that are specific to the MOSFET and finally I'll conclude. So this is the cartoon of a MOSFET. So basically it is a switch. So the voltage on the gate actually, you could control the switch. The switch is between the two terminals, drain and source and by applying a voltage on the gate you can either turn off the switch or on. So actually like we are interested in simulations that involve thousands of these transistors. So actually what we want is, we are interested in to do simulations, we need a representation of the current in terms of the terminal voltages and other physical parameters of the device. For example, what's shown there is the length of the device or not mark the t-ox, but the thickness of the gate, oxide, etc. So we want to actually represent, we want to get a representation of these terminal currents very accurately. So normally what is done is, generally one has a base level physics model and there are many things that can't be captured by the base level physics and the model is made accurate by having a lot of fitting parameters. These fitting parameters are used to incorporate secondary effects to get better accuracy and sometimes we really don't understand what's happening. Just use the first parameter. Something very very elementary is something like ID, the current in a MOSFET, if it's a very long-channel device, it would vary as VG minus VT to the power of 2. But you could have, I mean as you scale these devices, it so happens that the square law no longer holds. So you just put an empirical parameter alpha and do a parameter extraction and fit it. I mean this is a very generally the models are much much more complicated than this and in today's compact models we could have fitting parameters more than 100 fitting parameters will be there in such models. So another approach to representing these things accurately is to just store the value of the current at known voltages of VG and VD and then to use the stored data, you interpolate and get the ID. So this technique is called lookup table and this technique can be used in places where you know the physics is not completely understood or it's very hard to model the device because you really don't know the physics behind it. Just like to add a word of caution that though it sounds interesting, there are a lot of limitations of this approach because when you do something like this, it becomes completely empirical and when something is completely empirical, you really don't have a handle of suppose you vary something say physical parameter, you vary the length of the device or the width of the device. Then you, I mean if you have a physical model, you know what's happening. So for a circuit designer, he knows actually if he varies the length, you know the output impedance will go up or something like that. But here it's very hard to do such kind of analysis. You really won't know because the coefficient would just change in the lookup table. So this is the problem. Actually, I mean you can just forget about whatever I thought before. It's abstracted like this. Basically, suppose you have a function which depends on VG and VD. So what we are interested in, we just have these things tabulated at the grid and the grid could be non-linear. I've just taken only a two-dimensional case just for simplicity. Now the idea is that in practice actually, you would want to find out the value of the function f which here is a current at any arbitrary point. So if it doesn't fall on the grid, then you need to do some interpolation to get that value. So I mean we would ideally like, you know, that the interpolate function should be smooth. At least the first derivative should exist. This is what is known as C1 class. Then it should be, I mean in MOSFET, it's a requirement. I mean it's a physical device, so the current is generally monotonic. So we want the interpolation to be monotonic and from an implementation point of view, we want things to occupy least memory and they should be fast and accurate. So the simplest thing would be to just do a linear interpolation. That means suppose I just take a one-dimensional case to just make things more clear. First you decide, I mean you locate where the interval is, where you are seeking. So once you know that, you already know what is, what are the values stored at the grid points. So you just take the equation of straight line f of x, which is x1 plus f of x2 minus, I mean this is the slope times x minus x1. This is very easy to implement, but I mean what you will see is if you look at the derivative, you know, it's kind of constant. In that interval, you will get one slope. In the next interval, you will get another slope. So if you actually, I mean this is a trace that is shown, I mean this is the current and that's the derivative of that current. You will see that it's not very smooth. This can give some problems in simulation, but another very interesting thing to note about this is it gives a monotonic representation. The reason for that is when you have a straight line, the parameter that controls it straight line is the slope. So it's either up slope or down slope. I mean it will ensure monotonicity automatically. Actually this thing is something very difficult to get in other kind of interpolation. So now what can be done to avoid this problem of this staircase? So one natural choice would be to try to increase the order of the polynomial. So what you can do is use a second order polynomial. The simplest way to construct a second order polynomial is what is known as a construction by Lagrange. So suppose the region of interest is that region between x1 and x2. So you construct a polynomial that passes through three points. The construction is given like this x minus x2 into x minus x3 by this thing. You can just see that if you put x equal to x2 or x3, it gets cancelled and you just add them up like this. Okay. So this actually gets rid of the staircase shape in the derivative, but you'll still see there's a catch that when you're in this interval x1 and x2, the derivative which you evaluated x2 is coming from this function considering x1, x2 and x3. Now when you evaluate the derivative x2, when the point lies in the interval x2, x3, you will get a different derivative. Basically the derivatives won't match at the end points, which probably we don't want. And this thing will never guarantee monotonicity because you really can't control the shape of the curve. What you can just tell is it will pass through those three points, but in between you don't have a control over it. So there's a technique that's been proposed by some workers from at all. So what they basically do is this little complicated, but the gist of the thing is that you use two Lagrange polynomials and blend them suitably so that at the end points, however way you evaluate the derivative should match. So this is the, I mean, these are some simulations I did. So you can see that after using this blended Lagrangian, what happens, you can see that the derivatives become smooth. You just get rid of the staircase behavior. Although you would notice that the current itself, you know, there's not much change in the shape of the current. So sometimes only having current parts can be very misleading because you really, I mean, this looks very smooth and things like that, but problems only come when you look at the derivatives of that. So we just saw some schemes that were kind of general. They really didn't exploit the nature of the device characteristics. But if you look at a MOSFET device characteristics, this is the current and what's seen on the left hand side, it's spotted in log scale. So you'll see that until some point the current has some kind of an exponential behavior and after that it kind of has a polynomial behavior. So what can be done is, you know, you can probably fit, if you fit this data using log scale and this data using linear scale, then probably you could reduce the storage. This combined interpolation technique was proposed by Victor and the idea is very simple that the region where it bends off, this is kind of taken as a threshold voltage and below this, you do what was discussed earlier, but on the log data and after that point, you do interpolation using data on the linear scale. And in between this region, you just blend these two interpolation schemes as was discussed in the previous section. So this is the last, so we looked at IDBG, now probably if you look at IDBD and you can probably even exploit this. So the idea is that most of these curves look similar in shape. So if you can normalize that, that is take each curve and divide that curve by its maxima and just plot it. So these are the normalized curves. So the observation here is that you can treat any one of this as a template. You just store one trace and try to get the other traces by a nonlinear operation on this. So you'll see that, for example, if you choose one of these as a trace and you'll see that all of these things bend at this knee point. So what can be done is you can apply some transformation to this template function to warp it so that the knee matches at this point. So that's what is explained here. So ID then becomes this, you know, TVD is that template function. Then you apply the warping factor to make sure that the knees coincide. Then this beta VG is the scaling ratio. It is a ratio of this by this at a particular VG. Then you account for this slope. I mean, this is not a straight line. There's some slope with respect to VD that is accounted by using this. Actually, this technique reduces storage, but it might not be very accurate. So finally, I would just like to conclude that, you know, lookup table approaches are attractive for emerging devices. And one should choose the choice of interpolation function. I mean, it's crucial in implementing the table-based lookup approach in terms of accuracy, storage, etc. So these are the references and thank you for your attention.