seanpai
New Member
Offline
Posts: 6
|
Hi guys, I am using a verilog-A to build up an behavior model of opamp for LDO. My opamp is a differntail input folded cascode and single ended output amp, and I am going to limit the output range of it between vdd-2 Vov and 2Vov. I looked at the opamp example in the ahdlLib, which is in the virtuoso library, and can't figure out the code in "soft output limiting" part in the bottom. The code is showed as follows: "if (V(vout) > (V(vspply_p) - vsoft)) I(cout, vref) <+ gm_nom*(V(vout, vspply_p)+vsoft); else if (V(vout) < (V(vspply_n) + vsoft)) I(cout, vref) <+ gm_nom*(V(vout, vspply_n)-vsoft); " In my understanding, the first and second line mean when Vout > Vdd-2 Vov, then I(out) will be gm*(V(vdd,vout)+2Vov) in my case. And the third and fourth line mean when Vout < vss(=0 in my case)+2Vov, then I(out) will be gm*(V(vout,0)+2Vov) in my case. Am I correct? Moreover, I don't know how the "V(vout, vspply_p)+vsoft" and "V(vout, vspply_n)-vsoft" are derived? Finally, why I(out) here become a Vout related value? It should be gm*vin_val by definition, right? Can anyone help me figure out these problems please? Thank you so much.
|