Here is my circuit in LTspice.
The frequency ac is here.
This is DC with .op
command.
--- MOSFET Transistors ---Name: m1Model: nmos-shId: 1.91e-04Vgs: 7.96e-01Vds: 9.03e-01Vbs: 0.00e+00Vth: 4.00e-01Vdsat: 3.96e-01Gm: 9.61e-04Gds: 1.75e-05Gmb: 0.00e+00Cbd: 0.00e+00Cbs: 0.00e+00Cgsov: 0.00e+00Cgdov: 0.00e+00Cgbov: 0.00e+00Cgs: 0.00e+00Cgd: 0.00e+00Cgb: 0.00e+00
The following code to calculate gain in matlab
clearvarssyms Vin Vx Vout RS RF RD g_m ro Cgs Cgd seq1 = (Vin - Vx) / RS == (Vx - Vout) / RF + (Vx - Vout) * s * Cgd + Vx * s * Cgs;eq2 = (Vx - Vout)/ RF + (Vx - Vout) * s * Cgd - Vout/RD == Vx * g_m + Vout / ro;sol_out = solve([eq1, eq2], [Vout, Vx]);Av= sol_out.Vout / Vin
$$\frac{R_{D}r_{o}-R_{D}R_{F}g_{m}r_{o}+C_{\mathrm{gd}}R_{D}R_{F}r_{o}s}{R_{D}R_{F}+R_{D}R_{S}+R_{F}r_{o}+R_{D}r_{o}+R_{S}r_{o}+R_{D}R_{S}g_{m}r_{o}+C_{\mathrm{gd}}R_{D}R_{F}R_{S}s+C_{\mathrm{gs}}R_{D}R_{F}R_{S}s+C_{\mathrm{gd}}R_{D}R_{F}r_{o}s+C_{\mathrm{gd}}R_{F}R_{S}r_{o}s+C_{\mathrm{gs}}R_{F}R_{S}r_{o}s+C_{\mathrm{gs}}R_{D}R_{S}r_{o}s+C_{\mathrm{gd}}R_{D}R_{F}R_{S}g_{m}r_{o}s+C_{\mathrm{gd}}C_{\mathrm{gs}}R_{D}R_{F}R_{S}r_{o}s^{2}}$$
When \$R_S\$ is 1k \$\Omega\$.
Here is the code.
clearvarsCgd = 3.58*10^(-15);Cgs = 7.11*10^(-14);ro = 1/(1.75*10^(-5));RF = 10^3;RS = 10^3;RD = 10^3;g_m = 9.61*10^(-4);zeros = (- 1 + RF*g_m)/(Cgd*RF);f_zero = zeros/(2*pi)p1 = -(Cgd*RD*RF*RS - (Cgd^2*RD^2*RF^2*RS^2 + 2*Cgd*Cgs*RD^2*RF^2*RS^2 + Cgs^2*RD^2*RF^2*RS^2 + 2*Cgd^2*RD^2*RF^2*RS*ro + 2*Cgd^2*RD*RF^2*RS^2*ro - 2*Cgd*Cgs*RD^2*RF^2*RS*ro + 4*Cgd*Cgs*RD*RF^2*RS^2*ro - 2*Cgd*Cgs*RD^2*RF*RS^2*ro + 2*Cgs^2*RD*RF^2*RS^2*ro + 2*Cgs^2*RD^2*RF*RS^2*ro + Cgd^2*RD^2*RF^2*ro^2 + 2*Cgd^2*RD*RF^2*RS*ro^2 + Cgd^2*RF^2*RS^2*ro^2 - 2*Cgd*Cgs*RD*RF^2*RS*ro^2 - 2*Cgd*Cgs*RD^2*RF*RS*ro^2 + 2*Cgd*Cgs*RF^2*RS^2*ro^2 - 2*Cgd*Cgs*RD*RF*RS^2*ro^2 + Cgs^2*RF^2*RS^2*ro^2 + 2*Cgs^2*RD*RF*RS^2*ro^2 + Cgs^2*RD^2*RS^2*ro^2 + 2*Cgd^2*RD^2*RF^2*RS^2*g_m*ro + 2*Cgd*Cgs*RD^2*RF^2*RS^2*g_m*ro + 2*Cgd^2*RD^2*RF^2*RS*g_m*ro^2 + 2*Cgd^2*RD*RF^2*RS^2*g_m*ro^2 + 2*Cgd*Cgs*RD*RF^2*RS^2*g_m*ro^2 - 2*Cgd*Cgs*RD^2*RF*RS^2*g_m*ro^2 + Cgd^2*RD^2*RF^2*RS^2*g_m^2*ro^2)^(1/2) + Cgs*RD*RF*RS + Cgd*RD*RF*ro + Cgs*RD*RS*ro + Cgd*RF*RS*ro + Cgs*RF*RS*ro + Cgd*RD*RF*RS*g_m*ro)/(2*Cgd*Cgs*RD*RF*RS*ro);f_p1 = p1/(2*pi)p2 = -((Cgd^2*RD^2*RF^2*RS^2 + 2*Cgd*Cgs*RD^2*RF^2*RS^2 + Cgs^2*RD^2*RF^2*RS^2 + 2*Cgd^2*RD^2*RF^2*RS*ro + 2*Cgd^2*RD*RF^2*RS^2*ro - 2*Cgd*Cgs*RD^2*RF^2*RS*ro + 4*Cgd*Cgs*RD*RF^2*RS^2*ro - 2*Cgd*Cgs*RD^2*RF*RS^2*ro + 2*Cgs^2*RD*RF^2*RS^2*ro + 2*Cgs^2*RD^2*RF*RS^2*ro + Cgd^2*RD^2*RF^2*ro^2 + 2*Cgd^2*RD*RF^2*RS*ro^2 + Cgd^2*RF^2*RS^2*ro^2 - 2*Cgd*Cgs*RD*RF^2*RS*ro^2 - 2*Cgd*Cgs*RD^2*RF*RS*ro^2 + 2*Cgd*Cgs*RF^2*RS^2*ro^2 - 2*Cgd*Cgs*RD*RF*RS^2*ro^2 + Cgs^2*RF^2*RS^2*ro^2 + 2*Cgs^2*RD*RF*RS^2*ro^2 + Cgs^2*RD^2*RS^2*ro^2 + 2*Cgd^2*RD^2*RF^2*RS^2*g_m*ro + 2*Cgd*Cgs*RD^2*RF^2*RS^2*g_m*ro + 2*Cgd^2*RD^2*RF^2*RS*g_m*ro^2 + 2*Cgd^2*RD*RF^2*RS^2*g_m*ro^2 + 2*Cgd*Cgs*RD*RF^2*RS^2*g_m*ro^2 - 2*Cgd*Cgs*RD^2*RF*RS^2*g_m*ro^2 + Cgd^2*RD^2*RF^2*RS^2*g_m^2*ro^2)^(1/2) + Cgd*RD*RF*RS + Cgs*RD*RF*RS + Cgd*RD*RF*ro + Cgs*RD*RS*ro + Cgd*RF*RS*ro + Cgs*RF*RS*ro + Cgd*RD*RF*RS*g_m*ro)/(2*Cgd*Cgs*RD*RF*RS*ro);f_p2 = p2/(2*pi)
The results are the following:
f_zero =
-1.7338e+09
f_p1 =
-4.3206e+09
f_p2 =
-9.2038e+10
However, the zero frequency is 2.1146314GHz (3dB). pole 1 is 3.225216GHz (3dB) and pole 2 is 99.366294GHz (3dB) measured in spice.