# Small Signal Noise of Verilog-A

Question asked by TNAKA on Dec 7, 2005
Latest reply on Dec 8, 2005 by wrivas
Hi.

The attached code is a simple Verilog-A code of amplifier with Noise Figure.
Here Noise Figure is implemented by equivalent input noise using "white_noise()".
We can use equivalent input current or voltage noise.

Attached code is equivalent input noise case.
If we use equivalent current noise,
activate the following two lines,
//I(in_int) <+ white_noise(noise_current*noise_current, "LNA_PB");
//V(in, in_int) <+ 0.0;
and comment out the following,
Â  V(in, in_int) <+ white_noise(noise_voltage*noise_voltage, "LNA_PB");

For current noise case, ADS sp-noise analysis gives expected NF correctly, but it doesn't expected NF for voltage noise case.
For voltage noise case, ADS gives NF=0dB regardless of noise_voltage value.

On the other hand, Cadence Spectre gives expected NF for both cases.

Why can't ADS give expected NF for equivalent voltage noise case ?
?????????

I use HPEESOFSIM (*) 2004A.501 Oct 13 2004 (built: 10/13/04 00:16:23).

===================================================

`include "constants.h"
`include "discipline.h"

module LNA_PB(in, out);
inout in,out;
electrical in,out;

parameter real gain = 40 from [0:inf);
parameter real nf = 2 from [0:inf];
parameter real rin = 50 from (0:inf);
parameter real rout = 50 from (0:inf);

real a,rnf;
real noise_current,noise_voltage;

electrical in_int;

analog begin

Â  @(initial_step) begin
Â  Â  a = sqrt(pow(10,gain/10)*rout/rin);
Â  Â  rnf = pow(10,nf/10);
Â  Â  noise_current = sqrt(4*(rnf-1)*`P_K*\$temperature/rin);
Â  Â  noise_voltage = sqrt(4*(rnf-1)*`P_K*\$temperature*rin);
Â  end

Â I(in_int) <+ V(in_int)/rin;
Â I(out) <+ (-2*a*V(in_int) + V(out))/rout;

Â //I(in_int) <+ white_noise(noise_current*noise_current, "LNA_PB");
Â //V(in, in_int) <+ 0.0;

Â V(in, in_int) <+ white_noise(noise_voltage*noise_voltage, "LNA_PB");

end
endmodule