# 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

•

2. ## Re: Resistance Flicker Noise Question

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

3. ## Re: Resistance Flicker Noise Question

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

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.

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?

•

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.

7. ## Re: Resistance Flicker Noise Question

Interesting, thank you!

8. ## Re: Resistance Flicker Noise Question

GLOBALFOUNDRIES resistor model

XFAB resistor model

There simulation are different, I wonder which one is correct, thank you very much.

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.

•

10. ## Re: Resistance Flicker Noise Question

FYI:

GLOBALFOUNDRIES noise simulation summary:
GLOBALFOUNDRIES pnoise simulation summary:
XFAB noise simulation summary:
XFAB pnoise simulation summary:

Thanks

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.

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.

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

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.

•

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

16. ## Re: Resistance Flicker Noise Question

No.
Show me resistor of Globalfoundaries.

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```

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.

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```

--[[ ]]--