Jess Chen
|
Marc, I received the figure you sent and I have several observations. Perhaps one of them helps. Please give me a few minutes to complete this post. I must post it in phases because my editor blows everything away if I take too long to compose my response.
I see several interacting feedback loops. Perhaps the best way to proceed is to start with ideal conditions and then add non-ideal conditions one at a time.
1. Assuming the Vin and Vout nodes are driven and loaded with ideal voltage sources respectively, and that mosfets m1 and m2 have no coupling from drain to gate, you have two cascaded feedback loops. oa2 and m4 form the first and oa1 and m3 form the second. I would first determine if these two smaller loops are stable by themselves under these ideal conditions.
2. Drain to gate capacitance in m2 along with a finite output impedance in oa3 could introduce positive feedback into the oa2/m4 loop but a low oa3 output impedance probably makes the gain in that path negigible.
3. A finite source impedance driving Vin creates another feedback loop. This loop goes through the oa2/m4 loop, which is in parallel with the center wire. This loop and the m3/oa1 loop form two nested loops.
4. A finite load impedance at vout creates an opportunity for instability through the impedance interaction I mentioned in an earlier post.
It is clear the circuit has multiple loops. Low source, load, and oa output impedances decouples the loops but to quantify the amount of stability introduced by these assumptions I would either compute the closed loop poles directly or perform a sequential loop closure analysis.
The problem with computing the closed loop poles is that I don't completely trust the pole/zero analysis of existing simulators and the manual approach is fairly tedious. Simulators fit poles and zeros to transfer functions. (That means you must first identify a transfer function that does not hide internal RHP poles.) My experience with simulator pole/zero analysis is that the set of poles and zeros that match the transfer function is not unique and you may get a misleading set of poles/zeros.
Given the simulator constraints, I prefer the sequential loop closure procedure. However, you must apply it with strict, STRICT adherence to the Nyquist stability criterion. Furthermore, the conclusions only tell of absolute stability; assessment of relative stability can be tricky. The best way to draw some reasonable conclusions about relative stability is to start with the highest bandwidth loops and finish with the slowest loops. Hopefully nested loops are arranged with the fastest ones inside the slower ones. You start with all loops open, which may be hard if you have lots of interstage loading but Spectre's new stability analysis may help there. You assess the loop gain of the first loop with all others open. Whenever you encounter an unstable loop, record the number of RHP poles because another loop could stabilize the first loop if it's Nyquist plot encircles the -1,0 point counter clockwise enough times. With the first loop closed and all the rest open, assess the loop gain of the next loop. After you determine the number of RHP poles introduced by closing that loop, close that loop and proceed to the next loop. Each time you assess a loop, keep it closed while assessing subsequent loops. The common mistake made with this approach is to assess each loop with ALL others opened. You must assess each loop with previously assessed loops closed and unassessed loops open.
Sequential loop closures can be tedious but not as tedious as a manual pole/zero analysis. Furthermore, although relative stability can depend on the order in which you assessed and closed the loops, the procedure is compatible with the tools at hand and the final RHP pole count is accurate.
-Jess
|