Exercise 4

Problem 1

Small-signal voltage gain

Quit

eq1={Gm1*Vin+(Gm2+s*CL)*Vout+In1+In2==0}

sol1=Solve[eq1,{Vout}]

Vout=Vout /. sol1[[1,1]]

Vout0=Simplify[Vout /. {In1->0,In2->0}]

Av=Vout0/Vin

num=Numerator[Av]
den=Denominator[Av]

n0=Coefficient[num,s,0]

d0=Coefficient[den,s,0]
d1=Coefficient[den,s,1]

Adc=n0/d0

wc=d0/d1

The voltage gain is maximized when M1 is biased in weak inversion and M2 in strong inversion, resulting in

Avmax=Simplify[Av /. {Gm1->Ib/(n1*UT),Gm2->2*Ib/VP2}]

Avmax=Simplify[Avmax /. {VP2->(VG2-VT0p)/n2}]

Input-referred noise resistance

Vnout=Simplify[Vout /. {Vin->0}]

Vnin=Simplify[Vnout/Av]

Rnin=(Gn1+Gn2)/Gm1^2

Input-referred thermal noise resistance

Rnt=Simplify[Rnin /. {Gn1->gamman1*Gm1,Gn2->gamman2*Gm2}]

etath=Simplify[Gm1*Rnt/gamman1-1]

Rnt2=gamman1/Gm1*(1+etath)

Simplify[Rnt2-Rnt]

gammaneq=Simplify[Gm1*Rnt]

gammaneq2=gamman1*(1+etath)

Simplify[gammaneq2-gammaneq]

Input-referred flicker noise

Rnf=Simplify[Rnin /. {Gn1->Gm1^2*rhon/(W1*L1*f),Gn2->Gm2^2*rhop/(W2*L2*f)}]

etafl=Simplify[W1*L1*f/rhon*Rnf-1]

Problem 2

Small-signal schematic

Quit

eq1={Gm1*Vin+(Vout-Vin)/Rf+In2+(Gout+s*CL)*Vout+In1==0}

sol1=Solve[eq1,{Vout}]

Vout=Vout /. sol1[[1,1]]

Small-signal transfer function

Vout0=Simplify[Vout /. {In1->0,In2->0}]

Av=Simplify[Vout0/Vin]

num=Numerator[Av]
den=Denominator[Av]

n0=Coefficient[num,s,0]

d0=Coefficient[den,s,0]
d1=Coefficient[den,s,1]

Adc=n0/d0

wc=d0/d1

Adca=Simplify[Adc /. {1-Gm1*Rf->-Gm1*Rf,1+Gout*Rf->1}]

wca=Simplify[wc /. 1+Gout*Rf->1]

Noise analysis

Vnout=Simplify[Vout /. {Vin->0,s->0}]

Hn=Simplify[Vnout/(In1+In2)]

Gnout=Hn^2*(Gn1+Gn2)

Rnin=Simplify[Gnout/Adc^2]

Input-referred thermal noise resistance

Rnt=Simplify[Rnin /. {Gn1->gamman1*Gm1+2*gamman2*Gm2,Gn2->1/Rf}]

RntM1=Simplify[Rnin /. {Gn1->gamman1*Gm1,Gn2->0}]

RntR=Simplify[Rnin /. {Gn1->0,Gn2->1/Rf}]

RntM2=Simplify[Rnin /. {Gn1->2*gamman2*Gm2,Gn2->0}]

Rnttot=RntM1+RntR+RntM2

etath=Simplify[Rnttot/RntM1]-1

etath=Expand[etath]

RntM1a=Simplify[RntM1 /. {-1+Gm1*Rf->Gm1*Rf}]

gammaneq=Simplify[Gm1*Rnttot]

gammaneqa=Simplify[gammaneq /. {-1+Gm1*Rf->Gm1*Rf}]

gammaneqa=Expand[gammaneqa]

gammaneqa1=gamman1*(1+etath)

Simplify[gammaneqa1-gammaneqa]

Rnttota=Rnttot /. {-1+Gm1*Rf->Gm1*Rf}

Rnttota1=RntM1a*(1+etath)

Simplify[Rnttota1-Rnttota]

Flicker noise

Rnf=Simplify[Rnin /. {Gn1->Gm1^2*rhon/(W1*L1*f)+2*Gm2^2*rhop/(W2*L2*f),Gn2->0}]

RnfM1=Simplify[Rnin /. {Gn1->Gm1^2*rhon/(W1*L1*f),Gn2->0}]

RnfM2=Simplify[Rnin /. {Gn1->2*Gm2^2*rhop/(W2*L2*f),Gn2->0}]

Rnftot=RnfM1+RnfM2

etafl=Simplify[Rnftot/RnfM1-1]