# Op-Amp convex optimization question

Gold Member
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!

#### Attachments

• opamp (1).pdf
403.9 KB · Views: 257

berkeman
Mentor
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?

• perplexabot
Gold Member
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:
Gold Member
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.