<#473 Poly resistor contact resistance modelling.>...
# ihp-sg13g2
g
#473 Poly resistor contact resistance modelling. Issue created by christoph-weiser # Poly resistor contact resistance modelling ## Issue The poly resistor models include incorrect modelling for contact resistance. ## Affected Models • Rsil • Rhigh • Rppd ## Issue Details Here is an extract with relevant lines from the rppd model in "resistors_mod.lib"
Copy code
.subckt rppd 1 3
.param w=0.5e-6 l=0.5e-6 b=0 ps=0.18e-6 trise=0 m=1 sw_et=0
[..]
+rzspec=35e-6
+res_rzspec=2*rzspec/w
+rz=rzspec/w-(postsim>0)*rqrc/w
[..]

NR1 1 0 2 dt res_rppd L=leff W=weff m=m
+a1=a a2=a
+p1=p p2=p
+c1=1 c2=1
+trise=trise
+sw_et=sw_et

R2 2 3 R=res_rzspec TC1=-950e-6 m=m

.model res_rppd r3_cmc
[..]
+rc=rz
[..]
.ends rppd
It appears that the model is build from two components. A simple spice resistive element and the r3_cmc compact model.
Copy code
1   NR1   2    R2   3
x--vvvvv--x--vvvvv--x
     | 
     0
The contact resistance at one end of the resistor is modelled using the spice resistor R2.
Copy code
R2 2 3 R=res_rzspec TC1=-950e-6 m=1
the parameter res_rzspec that gives the resistance to the model is simply given by:
Copy code
rzspec=35e-6
res_rzspec=2*rzspec/w
There is also modelling for contact resistance in NR1. the parameter c1 (contacts at node n1 terminal) is set to 1. the same is true for c2 (contacts at node n2 terminal). and rc (resistance per contact) is set to rz.
Copy code
rz=rzspec/w-(postsim>0)*rqrc/w
There appears to be two seperate issues: 1. The resistor is not symetrical so it is not irrelevant which way the resistor is placed when analyzing the impact of parasitic capacitance to node 0. 2. The contact resistance is accounting for both ends of the resistor hence the multiplication by 2 in res_rzspec. But there is also contact resistance modelled in the cmc model. ## Verification in Simulation From the datasheet attached to the PDK we have the following information • RCRPPD = 35ohm*um • RSRPPD = 260ohm Hence a resistor with w=1e-6 and l=1e-6 should simply have a total resistance of:
Copy code
R = 2*RCRPPD/w + 1*RCRPPD*(l/w) = 330 ohm
This assumes athat the parameter RCRPPD is required twice one for each side of the resistor. ### Simulation netlist
Copy code
.lib cornerRES.lib res_typ
.temp 27

vdd vdd 0 1
vss vss 0 0

XR1 vdd vss rppd w=1e-6 l=1e-6

.control
op
let i = abs(vdd#branch)
let r = vdd/i
print r
exit
.endc
.end
### Simulation result with w=1e-6 and l=1e-6 we get: r=397.01 which is 67 ohm to high, roughly 2*RCRPPD. IHP-GmbH/IHP-Open-PDK