Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Making a mathematical expression between two parameters in ADE GXL output setup windo

Status
Not open for further replies.

Junus2012

Advanced Member level 5
Joined
Jan 9, 2012
Messages
1,552
Helped
47
Reputation
98
Reaction score
53
Trophy points
1,328
Location
Italy
Activity points
15,235
Hello,

I am running the Circuit optimization from ADE GXL, I am practising simple two-stage operational amplifier as it has shown below,

I want to include a formula in my output setup the M6 drain current is near or equal to M7 drain current. This condition for the optimizer will assure that my circuit will have a very small offset voltage.

It is very basic to bring both currents to the output setup but I don't know how to make this expression formula between them,

two_stage.PNG

Thank you
 

To avoid "systematic" offset, you need to make VD4 equal to VD3.
Now VG6= VD4=VD3=VG3 -> I6/I3= (W/L)6 / (W/L)3 eqn.1
VG7= VG5 -> I7/I5 = (W/L)7 / (W/L)5 eqn.2
But I5= 2 * I3 eqn.3
substituting eqm.3 into 2 yields :
I7 /(2 *I3) = (W/L)7 / (W/L)5 eqn.4
dividing eqn.1 by eqn.4 yields:
(W/L)6 / (W/L)3 = 2 * (W/L)7 / (W/L)5
This is the condition for zero systematic offset.
 
abs(I(M7)-I(M6)).
Or abs(I(M7)-I(M6))/abs(I(M7))

However don’t expect good performance of optimizer in Cadence ADE-GXL.
It is discrete optimizer not continuous one.
And performance itself is not good as optimizer.
 
Dear Pancho,

Thank you very much for your reply

I have just saw a former post from you criticising the performance of cadencde optimizer,

I will not rely on the optimizer for finding a solution for me from scratch, rather I would use the local optimization aroung my solutions,

The main problem for me that whnever I design with typical mean values, when I run the corner simulation (WP,WS,WO,...) and under temperature range, my design will fail

That is why I will dedicate the optimizer to correct my design against these corner arounf my solution

Back to your solution of my expression, abs(I(M7)-I(M6)) means I should give it a value "minimize" to zero which makes IM6 = IM7, thank you it is clear

but I didn't understand why you devided it by IM7 in your second solution

Thank you once again
 

rather I would use the local optimization aroung my solutions
Can you understand discrete optimizer ?
You have to set precise grids.
For example, assume 1 <= x <= 10.
We don't have to set delta_x in continuous optimizer.
Here optimizer samples x in adaptive step or randomly between 1 and 10.

However we have to set very small delta_x manually in discrete optimizer.
Here optimizer samples x in equi-spaced step of delta_x.
For example, if delta_x is 1, optimizer never set x as intermediate value such as 2.1.
It is too unefficient.

but I didn't understand why you devided it by IM7 in your second solution
Relative deviation or relative torelance.

For example, consider following case.
I(M7)=1e-6
I(M6)=1e-12
abs(I(M7)-I(M6))=1e-6 is very small, although I(M7) is not equal to I(M6).

abs(I(M7)-I(M6))/abs(I(M7))=1

This is very basic thing of numerical computation.
 
Last edited:
Can you understand discrete optimizer ?
You have to set precise grids.
For example, assume 1 <= x <= 10.
We don't have to set delta_x in continuous optimizer.
Here optimizer samples x in adaptive step or randomly between 1 and 10.

However we have to set very small delta_x manually in discrete optimizer.
Here optimizer samples x in equi-spaced step of delta_x.
For example, if delta_x is 1, optimizer never set x as intermediate value such as 2.1.
It is too unefficient.

Relative deviation or relative torelance.

For example, consider following case.
I(M7)=1e-6
I(M6)=1e-12
abs(I(M7)-I(M6))=1e-6 is very small, although I(M7) is not equal to I(M6).

abs(I(M7)-I(M6))/abs(I(M7))=1

This is very basic thing of numerical computation.

Thank you Pancho for your rich information and I am sorry not to rate your help as my rating is finished today

- - - Updated - - -

To avoid "systematic" offset, you need to make VD4 equal to VD3.
Now VG6= VD4=VD3=VG3 -> I6/I3= (W/L)6 / (W/L)3 eqn.1
VG7= VG5 -> I7/I5 = (W/L)7 / (W/L)5 eqn.2
But I5= 2 * I3 eqn.3
substituting eqm.3 into 2 yields :
I7 /(2 *I3) = (W/L)7 / (W/L)5 eqn.4
dividing eqn.1 by eqn.4 yields:
(W/L)6 / (W/L)3 = 2 * (W/L)7 / (W/L)5
This is the condition for zero systematic offset.

Thank you deep

yes it is the same condition that lead to IM6 = IM7 that I was searching for
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top