In BSIM3v3, ADS adopts a following equation as channel thermal noise

for Noimod=1(most basic model).

8*k*T/3*(gm)

This is consistent with Nlev=-1,0,1,2 of HSPICE.

But other vendor tools such as Cadence-Spectre and Mentor-Eldo

adopt different equation for Noimod=1(SPICE2).

These tools adopt following as most basic model.

8*k*T/3*(gm+gds+gmb)

Here gm=transconductance, gds=channel conductance, gmb=body transconductance

This causes different NF results when comparing with Spectre using Noimod=1(SPICE2).

According to chapter-8 in BSIM3v3 manual from UCB,

I think Cadence-Spectre's equation is major now.

So ADS should have same equation.

This issue is true for all other MOSFET models in ADS.

I compared results for other Noimod.

For Noimod=1(Flicker=SPICE2,Thermal=SPICE2),

ADS doesn't give same NF with Spectre.

For Noimod=2(Flicker=BSIM3v3,Thermal=BSIM3v3),

ADS gives same NF with Spectre.

For Noimod=3(Flicker=BSIM3v3,Thermal=SPICE2),

ADS doesn't give same NF with Spectre.

For Noimod=4(Flicker=SPICE2,Thermal=BSIM3v3),

ADS gives slightly different NF with Spectre.

Why Noimod=4 can't give same result ?

Noimod=4 should be same between ADS and Spectre

since it uses BSIM3v3 model not SPICE2 model

as channel noise.

Here I set flicker noise off(Kf=0), so this discrepancy is not due to flicker noise model difference.

Flicker noise model for noimod=1(SPICE2) is almost same except for Leff^2 or Leff*Weff.

for Noimod=1(most basic model).

8*k*T/3*(gm)

This is consistent with Nlev=-1,0,1,2 of HSPICE.

But other vendor tools such as Cadence-Spectre and Mentor-Eldo

adopt different equation for Noimod=1(SPICE2).

These tools adopt following as most basic model.

8*k*T/3*(gm+gds+gmb)

Here gm=transconductance, gds=channel conductance, gmb=body transconductance

This causes different NF results when comparing with Spectre using Noimod=1(SPICE2).

According to chapter-8 in BSIM3v3 manual from UCB,

I think Cadence-Spectre's equation is major now.

So ADS should have same equation.

This issue is true for all other MOSFET models in ADS.

I compared results for other Noimod.

For Noimod=1(Flicker=SPICE2,Thermal=SPICE2),

ADS doesn't give same NF with Spectre.

For Noimod=2(Flicker=BSIM3v3,Thermal=BSIM3v3),

ADS gives same NF with Spectre.

For Noimod=3(Flicker=BSIM3v3,Thermal=SPICE2),

ADS doesn't give same NF with Spectre.

For Noimod=4(Flicker=SPICE2,Thermal=BSIM3v3),

ADS gives slightly different NF with Spectre.

Why Noimod=4 can't give same result ?

Noimod=4 should be same between ADS and Spectre

since it uses BSIM3v3 model not SPICE2 model

as channel noise.

Here I set flicker noise off(Kf=0), so this discrepancy is not due to flicker noise model difference.

Flicker noise model for noimod=1(SPICE2) is almost same except for Leff^2 or Leff*Weff.

/* Nlev defaults to zero if not specified */

/* Compute the shot noise contribution to the Drain noise */

if (Nlev > 0)

{

/* Nlev > 0 overrides the BSIM3V3 noise model */

if (Nlev == 3)

{

DrainNoise_Sqrd = kT83 * beta * (Vgs1 - Von)

* (1.0+a+a*a)/(1.0+a) * Gdsnoi;

}

else

DrainNoise_Sqrd = kT83 * gm;

}

else

{

if (NoiMod == 2 OR NoiMod == 4)

{

DrainNoise_Sqrd = 4 * BOLTZMANN * Temperature

* Ueff * ABS(Qinv) / (Leff * Leff);

if (Version >= 3.24)

DrainNoise_Sqrd += 4 * BOLTZMANN * Temperature

* Ueff * ABS(Qinv) * Rds;

}

else if (NoiMod == 1 OR NoiMod == 3)

DrainNoise_Sqrd = kT83 * (gm + gds);

}

For Noimod=1, the noise in ADS is 8*k*T/3*(gm+gds). So ADS does have the gds term but is missing the gmb term.