0
\$\begingroup\$

I am looking to develop fast-fast, fast-slow, slow-fast, and slow-slow (FF, FS, SF, SS) CMOS models from a typical model for a particular mature CMOS process (say, 0.25 um minimum feature size and above).

Typically, in the past, I have been given a CMOS model with hooks in place that allow me to change the corner used for simulation on-the-fly. However, I have found myself in a situation* where I have the model file for a particular CMOS process with only typical parameters, and I'd like to, systematically, produce the corner models from the typical one. I am not adverse to manually creating the file with my hands and a text editor, and otherwise doing a bit of grunt work to make this happen. (However, I am not looking to make physical measurements to accomplish this task.)

How would one, systematically, develop corner models from a typical CMOS model? Assume for the purposes of this question that the "level" of the model is such that there are only a handful of parameters that need tweaking.

I realize that a lot of the finer details of how to do this effectively / correctly / etc. will depend on the actual fabrication technology, the types of circuits being simulated (I'm interested in simulating analog amplifiers along with the typical performance attributes that go along with that, such as gain, slew rate, phase margin, output swing, ICMR, etc.), but I'm just looking for general, good-rule-of-thumb, guidance.

In particular, if it helps to narrow the focus of this question a bit, I am looking to develop corner models from the typical model for the following SPICE CMOS model parameters: VTO, KP, GAMMA, LAMBDA, PHI, MJ, MJSW, CGBO, CGSO, CGDO, CJ, CJSW, LD, TOX


An example of what I am after:

Suppose that the VTO for a typical NMOS device in a mature CMOS technology is 0.6 V. How would I adjust VTO for the fast NMOS corner? How about the slow one?

I'd like to be able to develop fast and slow model parameter values for all of the parameters I listed above in a similar fashion as that in my VTO example above.


Comments such as "just get it from the fab!" or some such are not helpful to me and will thus be ignored. :-)


* To motivate my question a bit more:

I teach an electronics lab, and I incorporate a typical CMOS model for a mature process for an amplifier design project. I do not have the corner models for this particular process. What I want to do is tweak the typical model to develop corner ones so that my students can also see the effect of corner variations during the design cycle. I have already spent some time on my design and do not want to have to redo it with a new set of models, so I figured I'd ask for some rule-of-thumb guidance; e.g., Cgs goes up by X%, Vt down by Y%, etc.

\$\endgroup\$
  • \$\begingroup\$ You either need the model from the fab, or the performance data at the various corners from the fab. Without one of those, you're just guessing. \$\endgroup\$ – alex.forencich Mar 9 '17 at 17:24
  • \$\begingroup\$ @alex.forencich If that is the answer, then I suggest you post it as such. \$\endgroup\$ – Mad Jack Mar 9 '17 at 17:52
1
\$\begingroup\$

I will make a quick detour to point out some flaws in the question:

  • A mature process implies that they've been running wafers on that line for years, including any pre-production testing. Implying that the foundry has not gotten any statistical data on devices that they're willing to share with users (who will be under an NDA) is hard to believe.
  • Analog design doesn't benefit from the concept of process corners as much as digital design does. Some variation is better than none, but it certainly isn't full coverage.

Without any information from the foundry other than a typical model, all you can do is identify how sensitive your design is to various parameter changes, not to really estimate potential yield. Even though corner models are better than nothing for analog design, you really want to be able to run Monte-Carlo analysis with options for including local mismatch. Also, corners are hard to apply to on-chip capacitances and resistances, as "worst case" depends on your circuit.

To understand what goes into process variation, lets use transistor width and length as a starting point. These parameters are manufactured to a particular tolerance (that the foundry should know). Foundry A may have their lithography tuned in so that on your hypothetical 0.25µm process you could expect ±0.02µm tolerance on transistor W and L. Foundry B might have a W and L variation that has a 3-sigma of ±0.05µm. Every parameter has some tolerance based on a doping concentration, mask alignment, or layer thickness, and it's often easier to attack the problem from that perspective.

If your foundry won't tell you (and you can't switch to a real foundry with real information), then you are purely guessing at the extents of the variation. Your "worst case" might be a fraction of the real variation, or many times greater. This is why you will get the response of "Go ask your foundry".

It's also worth mentioning that there are different classes of variation. Wafer-wafer variation is usually the greatest, followed by same-wafer variation, followed by two transistors right next to each other. Local variation is usually lower than other levels, so your single differential pair input may have low variation compared to two different input channels on a large ADC chip.

Your modeling depends on your circuit design environment and your comfort with making model files. Assuming you don't even touch the model files, you could make a SPICE subcircuit for tweaking the model. You can probably get most of the first-order variation by modeling the Vt offset, conductor mobility variation, and W/L tolerance. Depending on your topology, capacitance and leakage may also be important. Below is an example subcircuit you could use for tweaking worst-case scenarios.

schematic

simulate this circuit – Schematic created using CircuitLab

Tweaking W, L, and VT allow you to get variation without opening up the model files. You can certainly make models that are Monte-Carlo ready, that incorporate statistical variation into the each device, but that's a good amount of work. Try just having a voltage source in series with each gate, and vary that in order to get your Vt variation.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Thanks for your answer. To clarify my situation a little bit: I teach an electronics lab, and I incorporate a typical CMOS model for a mature process for an amplifier design project. I do not have the corner models for this particular process. What I want to do is tweak the typical model to develop corner ones so that my students can also see the effect of corner variations during the design cycle. I have already spent some time on my design and do not want to have to redo it with a new set of models, so I figured I'd ask for some rule-of-thumb guidance; e.g., cgs goes up by X%, VT down by Y%. \$\endgroup\$ – Mad Jack Mar 12 '17 at 17:54
  • \$\begingroup\$ Don't feel the need to respond to my above comment, though. I'm just documenting the motivation for the question (perhaps I'll add it to the OP). Your answer explains well why what I want to do won't really work. Thanks, again. \$\endgroup\$ – Mad Jack Mar 12 '17 at 18:00
  • \$\begingroup\$ I wish that information was in the original question. I can't recommend an "accurate" variation value without violating a non-disclosure agreement. Using a DC voltage source in series with the gate is a great way to adjust Vt without getting any really undesirable side effects. That can also let you implement Monte-Carlo effects even if the model doesn't support it, and it will also work with higher order BSIM models. \$\endgroup\$ – W5VO Mar 12 '17 at 19:03
  • \$\begingroup\$ Thanks. Also, I'll go ahead and update the OP with that information I mentioned above. \$\endgroup\$ – Mad Jack Mar 12 '17 at 19:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.