# Resistance Flicker Noise Question

1. ## Resistance Flicker Noise Question

Dear Friends:

I'm studying resistance flicker noise recently, in order to reduce the resistance flicker noise,
I designed a testbench（schematic and its timming as the figure below） and run noise & pnoise simulation.  in GLOBALFOUNDRIES process, resistance filcker noise reduction is obvious, however in XFAB process, resistance filcker noise reduction almost unchanged. Why there results are different? Does anybody can help me to clarify this question?
Thanks and have a good day.

lmgrd  Reply With Quote

2. ## Re: Resistance Flicker Noise Question

Does your resistor model truely include colored noise ?
Show me resistor models.  Reply With Quote

3. ## Re: Resistance Flicker Noise Question

I'm also surprised why a resistor would have flicker noise. I would expect thermal noise only.  Reply With Quote

4. ## Re: Resistance Flicker Noise Question Originally Posted by volker@muehlhaus I'm also surprised why a resistor would have flicker noise.
I would expect thermal noise only.
Resistors in Integrated Circuit show thermal, shot and fricker noise.
Resistor model of Cadence Spectre have ability to generate thermal, shot and fricker noise.
This is also true for Synopsys HSPICE.

1 members found this post helpful.  Reply With Quote

•

5. ## Re: Resistance Flicker Noise Question Originally Posted by pancho_hideboo Resistors in Integrated Circuit show thermal, shot and fricker noise.
So that's different from "normal" resistors? In our seminar on RF noise, we learned that resistors (linear and passive) show purely thermal noise. What's special about integrated resistors?  Reply With Quote

6. ## Re: Resistance Flicker Noise Question Originally Posted by volker@muehlhaus So that's different from "normal" resistors?
It is nominal resistor.
Polisilicon resistor which is linear. Originally Posted by volker@muehlhaus In our seminar on RF noise,
we learned that resistors (linear and passive) show purely thermal noise.
Even carbon resistor shows fricker noise.

Attached is a excerption from famous standard text book, https://www.amazon.com/Analysis-Desi.../dp/0470245999.

1 members found this post helpful.  Reply With Quote

7. ## Re: Resistance Flicker Noise Question

Interesting, thank you!  Reply With Quote

8.  Reply With Quote

9. ## Re: Resistance Flicker Noise Question Originally Posted by lmgrd There simulation are different,
I wonder which one is correct,
Show me noise contribution table.  Reply With Quote

10.  Reply With Quote

•

11. ## Re: Resistance Flicker Noise Question

res_flicker_noise() describes only noise.

Show me both resistor content and res_flicker_noise() as text not image.

Description of res_flicker_noise() is not appropriate.  Reply With Quote

12. ## Re: Resistance Flicker Noise Question

sorry, the models are on the server and l can't copy. could you please give me a way to solve this problem? thanks.  Reply With Quote

13. ## Re: Resistance Flicker Noise Question

Hi,

sorry, the models are on the server and l can't copy. could you please give me a way to solve this problem? thanks.
Makes no sense.
If you are able to open the file in an text editor (which seems to be the case), then simply mark the text, copy the text....and paste it into your post. Don't forget to use code formatting tags.

Klaus  Reply With Quote

14. ## Re: Resistance Flicker Noise Question Originally Posted by lmgrd sorry, the models are on the server and l can't copy. could you please give me a way to solve this problem? thanks.
Simply I will correct your verilog-a code.
However I can not edit it since it is image.
I don’ t want to input code as text from image.  Reply With Quote

15. ## Re: Resistance Flicker Noise Question

Sorry, I just got the "text models" from the administrator.

```Code dot - [expand]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//////////////////GLOBALFOUNDRIES MODEL////////////////////
module res_flicker_noise(p, n);
inout p, n;
electrical p, n;
parameter real rmain=1e3;
parameter real l=0;
parameter real w=0;
parameter real dw=0;
parameter real dl=0;
parameter real rsh0=0;
//parameter real (* integer inherited_mfactor; *) m = 1;
//flicker noise parameters
parameter real kf=2.62e-26;
parameter real af=2;
parameter real lf=1;
parameter real wf=1;
parameter real ef=1;
parameter real m=1;

real r_l, r_w;

real i_r;

real geo;
analog begin

r_l=l-2*dl;
r_w=w-2*dw;

//Weff = w - 2*etch;
//Leff = l - 2*etchl;
//geo = pow(Weff, weexp) * pow(Leff, leexp) * pow(w, wdexp) *pow(l, ldexp);
// end

i_r=V(p,n)/rmain;

geo = pow(r_w, wf) * pow(r_l, lf) * m;

I(p, n) <+ flicker_noise(kf*pow(abs(i_r), af)/geo ,ef, "flicker");
end
endmodule
///////////////////////////////////////////////////////////////////////```

```Code dot - [expand]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//////////////////////////XFAB MODEL //////////////////////////////
subckt rp1 (n1 n2 nb)
parameters l=10e-6 w=10e-6 pm=-1 par1=1
+ wcd_AR=0
+ pmc=(max(1,1+int((w-8.000e-07)/8.000e-07)))
+ pmi=((pm>=0)?((pm==0)?1000:pm):pmc)
+ rsh=4.500e+01
+ r0=(rsh*l/w)
+ tc1r=7.200e-04
+ tc2r=5.500e-07
g100 (0 100) bsource i=(((v(n1,nb)+v(n2,nb))/2)/1.000e+03)
r100 (0 100) resistor r=1.000e+03 tc1=0.000e+00 tc2=0.000e+00 isnoisy=no
e101 (101 0) bsource v=(1.000e-04*v(100)*(1+0.000e+00/(0.000e+00+w)))
r101 (101 0) resistor r=1.000e+03 isnoisy=no
r11 (n1 n3) rctp1 m=pmi
r12 (n3 n4) rsilp1 l=4.000e-07 w=w
r13 (n4 na) rsbp1 l=1.000e-06 w=w
r1 (na nc) rp1mod r=(r0*(1+v(101))/2)
+ l=(l/2) w=w
r2 (nc nd) rp1mod r=(r0*(1+v(101))/2)
+ l=(l/2) w=w
model rp1mod resistor
+ tc1=tc1r                     tc2=tc2r
+ af=1.965e+00                 kf=3.682e-23
+ fexp=8.823e-01               wdexp=1.000e+00
+ ldexp=1.000e+00
r23 (nd n8) rsbp1 l=1.000e-06 w=w
r22 (n8 n9) rsilp1 l=4.000e-07 w=w
r21 (n9 n2) rctp1 m=pmi
c1a (na nb) cp1suba w=w l=(l*(1-0.5*(1+tanh(l/200/w)))/2)
c2a (nc nb) cp1suba w=w l=(l*(1+tanh(l/200/w))/2)
c3a (nd nb) cp1suba w=w l=(l*(1-0.5*(1+tanh(l/200/w)))/2)
c1p (na nb) cp1subp w=1e-9 l=(l*(1-0.5*(1+tanh(l/200/w)))/2)
c2p (nc nb) cp1subp w=1e-9 l=(l*(1+tanh(l/200/w))/2)
c3p (nd nb) cp1subp w=1e-9 l=(l*(1-0.5*(1+tanh(l/200/w)))/2)
ends rp1
//////////////////////////////////////////////////////////////////////////////```
thank you very much!

lmgrd  Reply With Quote

16. ## Re: Resistance Flicker Noise Question

No.
Show me resistor of Globalfoundaries.

1 members found this post helpful.  Reply With Quote

17. ## Re: Resistance Flicker Noise Question

GLOBALFOUNDRIES res model

```Code dot - [expand]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ahdl_include "res.va"  //res.va is on #15
rt1 (1 11) ppolyf_u_1k_t l=1u w=r_w trise=dtemp
c1  (1 3)  fox_sub    l=r_l/2   w=r_w trise=dtemp
//  body
rb (11 21) res_va
+ l=r_length
+ w=r_width
+ rsh0=r_rsh0
+ dw=r_dw
+ dl=r_dl
+ vc1=r_vc1
+ vc2=r_vc2
+ tc1=r_tc1
+ tc2=r_tc2
+ tnom=r_tnom
+ dtemp=dtemp
+ af=1.878
+ kf=8.68e-23
// terminal 2
rt2 (21 2) ppolyf_u_1k_t l=1u w=r_w trise=dtemp
c2  (2 3)  fox_sub    l=r_l/2   w=r_w trise=dtemp
//-------------------
ends ppolyf_u_1k```  Reply With Quote

•

18. ## Re: Resistance Flicker Noise Question

No.
There is no definition of res_va and ppolyf_u_1k_t.
And res_flicker_noise is not used anywhere.

Show me things correctly.  Reply With Quote

19. ## Re: Resistance Flicker Noise Question

```Code dot - [expand]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
subckt rppo1rpo_dis ( n1 n2 body )
parameters lr=1u wr=1u factor=1 multi=1 mismatchflag=mismatchflag_disres
+ geo_fac=1 / sqrt(multi * lr * factor * wr * factor * 1e12) factmis=1.817689e-02
+ * geo_fac * par_res_m * mismatchflag rsh=r_rppo1rpo_dis rendsh=2 * rend_rppo1rpo_dis
...
...
...
rend1 ( n1 1 ) resistor r=max(min(rendo / 2 * (1 + 1 / (1 + jc1end_r * v(n1,1) *
+ v(n1,1))),rendo * 1.5),rendo / 2)
r1 ( 1 2 ) resistor r=max(min(ro / 2 * (3 - 1 / (1 + jc1_r * v(1,2) * v(1,2))),ro
+ * 1.5),ro / 2)
r2 ( 2 3 ) resistor r=max(min(ro / 2 * (3 - 1 / (1 + jc1_r * v(2,3) * v(2,3))),ro
+ * 1.5),ro / 2)
r3 ( 3 4 ) resistor r=max(min(ro / 2 * (3 - 1 / (1 + jc1_r * v(3,4) * v(3,4))),ro
+ * 1.5),ro / 2)
r4 ( 4 5 ) resistor r=max(min(ro / 2 * (3 - 1 / (1 + jc1_r * v(4,5) * v(4,5))),ro
+ * 1.5),ro / 2)
rend2 ( 5 n2 ) resistor r=max(min(rendo / 2 * (1 + 1 / (1 + jc1end_r * v(5,n2) *
+ v(5,n2))),rendo * 1.5),rendo / 2)
c1 ( body 1 ) capacitor c= multi*(Ca*((wr*factor+0.03u)*lr*factor/5.0)*1e12+2*Cf*lr*factor/5.0*1e6)
+bv_max=100*0.9
c2 ( body 2 ) capacitor c= multi*(Ca*((wr*factor+0.03u)*lr*factor/5.0)*1e12+2*Cf*lr*factor/5.0*1e6)
+bv_max=100*0.9
c3 ( body 3 ) capacitor c= multi*(Ca*((wr*factor+0.03u)*lr*factor/5.0)*1e12+2*Cf*lr*factor/5.0*1e6)
+bv_max=100*0.9
c4 ( body 4 ) capacitor c= multi*(Ca*((wr*factor+0.03u)*lr*factor/5.0)*1e12+2*Cf*lr*factor/5.0*1e6)
+bv_max=100*0.9
c5 ( body 5 ) capacitor c= multi*(Ca*((wr*factor+0.03u)*lr*factor/5.0)*1e12+2*Cf*lr*factor/5.0*1e6)
+bv_max=100*0.9
c_soa ( n1 n2 ) capacitor c=1e-60 bv_max=j_max*wr*factor*(rend1_ov+r1_ov+r2_ov+r3_ov+r4_ov+rend2_ov)

I_flicker_noise (n1 n2) res_flicker_noise   //res_flicker_noise is on #15
+ rmain=4*ro
+ m=multi
+ l=lr
+ w=wr
+ dw=0
+ dl=0
+ af=1.79
+ kf=2.4E-23

ends rppo1rpo_dis```  Reply With Quote

20. ## Re: Resistance Flicker Noise Question Originally Posted by pancho_hideboo No.
There is no definition of res_va and ppolyf_u_1k_t.
And res_flicker_noise is not used anywhere.

Show me things correctly.
Hi,

In Veriloga, resistor flicker noise is modeled with a noisy current source: "I(p, n) <+ flicker_noise(kf*pow(abs(i_r), af)/geo ,ef, "flicker")";

In spectre, resistor flicker noise is modeled by parameter AF,EF....

I think two methods should be agreed with each other, but apparently the simulation result is different.

So, which is correct or agree with physic?

best regard,
Qingshan  Reply With Quote

--[[ ]]--