Op-Amp convex optimization question

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 1K views
perplexabot
Gold Member
Messages
328
Reaction score
5
Hey all. I have a question regarding an equation in a document I am reading about convex optimization of OP-AMPs. The document is attached, the equation is of section 3.4 and the equation number is (9). Can you please explain how it came to be? I understand that i3 = i4 = i5/2 but I don't understand why W's and L's are the only thing in this equation and why this equality holds.

An explanation for equation (10) would also be nice, but (9) is more important for me!

Thank you for your time.
 

Attachments

Engineering news on Phys.org
The transistor channel width & length are the main defining properties of the transistors in that circuit, since they are all on the same die. To get good matching, you need the geometries to be the same. Maybe I'm misunderstanding your question?
 
  • Like
Likes   Reactions: perplexabot
berkeman said:
The transistor channel width & length are the main defining properties of the transistors in that circuit, since they are all on the same die. To get good matching, you need the geometries to be the same. Maybe I'm misunderstanding your question?
Thanks, I was wondering if that fraction was originally the ratio of two Id (drain current) equations for NMOS in saturation with everything cancelling out except for the widths and lengths?

Also, if I may, I would like to know why my cvx Matlab program is ending with "Failed" status : (
Here is my code:
Code:
% Device sizing
clear; clc;
% given variables
mun = 600*(10^-2)^2;
mup = 200*(10^-2)^2;
Vtn = 0.7;
Vtp = -0.9;
lamn = 1/0.03;
lamp = 1/0.06;
Cox = 346*10^-6;
Vomin = 0.1*5;
Vomax = 0.9*5;
Vcmmin = 2.5 - 0.25;
Vcmmax = 2.5 + 0.25;
Vdd = 5;
Vss = 0;
%cvx optimization
cvx_begin gp
    variables L1 L2 L3 L4 L5 L6 L7 L8 W1 W2 W3 W4 W5 W6 W7 W8 Ib I5 I7 I1 I2
    minimize (5*(Ib+I5+I7));
    subject to
        %symmetry and matching
        W1/W2 == 1;
        L1/L2 == 1;
        W3/W4 == 1;
        L3/L4 == 1;
        L5/L7 == 1;
        L5/L6 == 1;
        %physical size limits
        L1 >= 0.8*10^-6;
        L2 >= 0.8*10^-6;
        L3 >= 0.8*10^-6;
        L4 >= 0.8*10^-6;
        L5 >= 0.8*10^-6;
        L6 >= 0.8*10^-6;
        L7 >= 0.8*10^-6;
        L8 >= 0.8*10^-6;
        W1 >= 2*10^-6;
        W2 >= 2*10^-6;
        W3 >= 2*10^-6;
        W4 >= 2*10^-6;
        W5 >= 2*10^-6;
        W6 >= 2*10^-6;
        W7 >= 2*10^-6;
        W8 >= 2*10^-6;
        %area limits
        L1*W1 + L2*W2 + L3*W3 + L4*W4+ L5*W5 + L6*W6 + L7*W7 <= 10000*(10^-6)^2;
        %input offset requirements
        (W3/L3)/(W6/L6)== (1/2)*((W5/L5)/(W7/L7));
        (W4/L4)/(W6/L6)== (1/2)*((W5/L5)/(W7/L7));
        %bias conditions
        I5 == (W5*L8*Ib)/(L5*W8);
        I7 == (W7*L8*Ib)/(L7*W8);
        I1 == I5/2;
        %more bias conditions : p
        sqrt((I1*L3)/((mun*Cox)/(2*W3))) <= Vcmmin - Vss - Vtp - Vtn;
        sqrt((I2*L3)/((mun*Cox)/(2*W3))) <= Vcmmin - Vss - Vtp - Vtn;
        sqrt((I1*L1)/((mup*Cox)/(2*W1))) + sqrt((I5*L5)/((mup*Cox)/(2*W5))) <= Vdd-Vcmmax + Vtp;
        sqrt((I7*L6)/((mun*Cox)/(2*W6))) <= Vomin - Vss;
        sqrt((I7*L7)/((mup*Cox)/(2*W7))) <= Vdd - Vomax;
        %small sig tf constraints
        Av = (2*Cox)/((lamn+lamp)^2)*sqrt(mun*mup*((W2*W6)/(L2*L6*I1*I7)));
cvx_end

All these constraints are from the document in my OP. Also the code is based on example 7.2 (page 24 of the document).
 
Last edited:
BUMP.

Anyone have a clue what I am doing wrong here? I feel like I am missing something big. I will dedicate some more time to it today. Any help will be greatly appreciated.