// 2020/03/09  Suriono
//      Why  : New S130 models for S130 PDK
//      What : Remove "mult" parameter, it is not used anymore.
//             Replace "mult" with "m" for matching scale
// ===========================================================

//  converted from amsmodels/pmos_rf.pm3
simulator lang=spectre
// *********************************************************************************
inline subckt psrf_1p65p15m2_b (d g s b)
psrf_1p65p15m2_b (d g s b) pmos_rf_base_m2_b w = 1.65 l = 0.15 m = 2 ad = 0.231 pd = 1.93 as = 0.462 ps = 3.86 nrd = 240.00 nrs = 120.00 m = 2
psrf_1p65p15m2_b_dummy (b b s b) pmos_rf_base_m2_b w = 1.65 l = 0.15 m = 2 ad = 0.495 pd = 3.9 as = 0.0 ps = 0.0 nrd = 120.0 nrs = 0.0 m = 2
ends psrf_1p65p15m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_1p65p15m4_b (d g s b)
psrf_1p65p15m4_b (d g s b) pmos_rf_base_m4_b w = 1.65 l = 0.15 m = 4 ad = 0.231 pd = 1.93 as = 0.347 ps = 2.90 nrd = 240.00 nrs = 160.00 m = 4
psrf_1p65p15m4_b_dummy (b b s b) pmos_rf_base_m4_b w = 1.65 l = 0.15 m = 2 ad = 0.495 pd = 3.9 as = 0.0 ps = 0.0 nrd = 120.00 nrs = 0.0 m = 2
ends psrf_1p65p15m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_1p65p18m2_b (d g s b)
psrf_1p65p18m2_b (d g s b) pmos_rf_base_m2_b w = 1.65 l = 0.18 m = 2 ad = 0.231 pd = 1.93 as = 0.462 ps = 3.86 nrd = 240.00 nrs = 120.00 m = 2
psrf_1p65p18m2_b_dummy (b b s b) pmos_rf_base_m2_b w = 1.65 l = 0.18 m = 2 ad = 0.495 pd = 3.9 as = 0.0 ps = 0.0 nrd = 120.00 nrs = 0.00 m = 2
ends psrf_1p65p18m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_1p65p18m4_b (d g s b)
psrf_1p65p18m4_b (d g s b) pmos_rf_base_m4_b w = 1.65 l = 0.18 m = 4 ad = 0.231 pd = 1.93 as = 0.347 ps = 2.90 nrd = 240.00 nrs = 160.00 m = 4
psrf_1p65p18m4_b_dummy (b b s b) pmos_rf_base_m4_b w = 1.65 l = 0.18 m = 2 ad = 0.495 pd = 3.9 as = 0.0 ps = 0.0 nrd = 120.00 nrs = 0.0 m = 2
ends psrf_1p65p18m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_1p65p25m2_b (d g s b)
psrf_1p65p25m2_b (d g s b) pmos_rf_base_m2_b w = 1.65 l = 0.25 m = 2 ad = 0.231 pd = 1.93 as = 0.462 ps = 3.86 nrd = 240.00 nrs = 120.00 m = 2
psrf_1p65p25m2_b_dummy (b b s b) pmos_rf_base_m2_b w = 1.65 l = 0.25 m = 2 ad = 0.495 pd = 3.9 as = 0.0 ps = 0.0 nrd = 120.00 nrs = 0.00 m = 2
ends psrf_1p65p25m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_1p65p25m4_b (d g s b)
psrf_1p65p25m4_b (d g s b) pmos_rf_base_m4_b w = 1.65 l = 0.25 m = 4 ad = 0.231 pd = 1.93 as = 0.347 ps = 2.90 nrd = 240.00 nrs = 160.00 m = 4
psrf_1p65p25m4_b_dummy (b b s b) pmos_rf_base_m4_b w = 1.65 l = 0.25 m = 2 ad = 0.495 pd = 3.9 as = 0.0 ps = 0.0 nrd = 120.00 nrs = 0.00 m = 2
ends psrf_1p65p25m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_3p15m2_b (d g s b)
psrf_3p15m2_b (d g s b) pmos_rf_base_m2_b_w3 w = 3.01 l = 0.15 m = 2 ad = 0.421 pd = 3.29 as = 0.843 ps = 6.58 nrd = 133.33 nrs = 66.67 m = 2
psrf_3p15m2_b_dummy (b b s b) pmos_rf_base_m2_b_w3 w = 3.01 l = 0.15 m = 2 ad = 0.903 pd = 6.62 as = 0.0 ps = 0.0 nrd = 66.67 nrs = 0.00 m = 2
ends psrf_3p15m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_3p15m4_b (d g s b)
psrf_3p15m4_b (d g s b) pmos_rf_base_m4_b_w3 w = 3.01 l = 0.15 m = 4 ad = 0.421 pd = 3.29 as = 0.632 ps = 4.94 nrd = 133.33 nrs = 88.89 m = 4
psrf_3p15m4_b_dummy (b b s b) pmos_rf_base_m4_b_w3 w = 3.01 l = 0.15 m = 2 ad = 0.903 pd = 6.62 as = 0.0 ps = 0.0 nrd = 66.67 nrs = 0.00 m = 2
ends psrf_3p15m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_3p18m2_b (d g s b)
psrf_3p18m2_b (d g s b) pmos_rf_base_m2_b_w3 w = 3.01 l = 0.18 m = 2 ad = 0.421 pd = 3.29 as = 0.843 ps = 6.58 nrd = 133.33 nrs = 66.67 m = 2
psrf_3p18m2_b_dummy (b b s b) pmos_rf_base_m2_b_w3 w = 3.01 l = 0.18 m = 2 ad = 0.903 pd = 6.62 as = 0.0 ps = 0.0 nrd = 66.67 nrs = 0.00 m = 2
ends psrf_3p18m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_3p18m4_b (d g s b)
psrf_3p18m4_b (d g s b) pmos_rf_base_m4_b_w3 w = 3.01 l = 0.18 m = 4 ad = 0.421 pd = 3.29 as = 0.632 ps = 4.94 nrd = 133.33 nrs = 88.89 m = 4
psrf_3p18m4_b_dummy (b b s b) pmos_rf_base_m4_b_w3 w = 3.01 l = 0.18 m = 2 ad = 0.903 pd = 6.62 as = 0.0 ps = 0.0 nrd = 66.67 nrs = 0.00 m = 2
ends psrf_3p18m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_3p25m2_b (d g s b)
psrf_3p25m2_b (d g s b) pmos_rf_base_m2_b_w3 w = 3.01 l = 0.25 m = 2 ad = 0.421 pd = 3.29 as = 0.843 ps = 6.58 nrd = 133.33 nrs = 66.67 m = 2
psrf_3p25m2_b_dummy (b b s b) pmos_rf_base_m2_b_w3 w = 3.01 l = 0.25 m = 2 ad = 0.903 pd = 6.62 as = 0.0 ps = 0.0 nrd = 66.67 nrs = 0.00 m = 2
ends psrf_3p25m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_3p25m4_b (d g s b)
psrf_3p25m4_b (d g s b) pmos_rf_base_m4_b_w3 w = 3.01 l = 0.25 m = 4 ad = 0.421 pd = 3.29 as = 0.632 ps = 4.94 nrd = 133.33 nrs = 88.89 m = 4
psrf_3p25m4_b_dummy (b b s b) pmos_rf_base_m4_b_w3 w = 3.01 l = 0.25 m = 2 ad = 0.903 pd = 6.62 as = 0.0 ps = 0.0 nrd = 66.67 nrs = 0.00 m = 2
ends psrf_3p25m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_5p15m2_b (d g s b)
psrf_5p15m2_b (d g s b) pmos_rf_base_m2_b_w5 w = 5.05 l = 0.15 m = 2 ad = 0.707 pd = 5.33 as = 1.414 ps = 10.66 nrd = 80.00 nrs = 40.00 m = 2
psrf_5p15m2_b_dummy (b b s b) pmos_rf_base_m2_b_w5 w = 5.05 l = 0.15 m = 2 ad = 1.515 pd = 10.7 as = 0.0 ps = 0.0 nrd = 40.00 nrs = 0.00 m = 2
ends psrf_5p15m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_5p15m4_b (d g s b)
psrf_5p15m4_b (d g s b) pmos_rf_base_m4_b_w5 w = 5.05 l = 0.15 m = 4 ad = 0.707 pd = 5.33 as = 1.061 ps = 8.00 nrd = 80.00 nrs = 53.33 m = 4
psrf_5p15m4_b_dummy (b b s b) pmos_rf_base_m4_b_w5 w = 5.05 l = 0.15 m = 2 ad = 1.515 pd = 10.7 as = 0.0 ps = 0.0 nrd = 40.00 nrs = 0.00 m = 2
ends psrf_5p15m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_5p18m2_b (d g s b)
psrf_5p18m2_b (d g s b) pmos_rf_base_m2_b_w5 w = 5.05 l = 0.18 m = 2 ad = 0.707 pd = 5.33 as = 1.414 ps = 10.66 nrd = 80.00 nrs = 40.00 m = 2
psrf_5p18m2_b_dummy (b b s b) pmos_rf_base_m2_b_w5 w = 5.05 l = 0.18 m = 2 ad = 1.515 pd = 10.7 as = 0.0 ps = 0.0 nrd = 40.00 nrs = 0.00 m = 2
ends psrf_5p18m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_5p18m4_b (d g s b)
psrf_5p18m4_b (d g s b) pmos_rf_base_m4_b_w5 w = 5.05 l = 0.18 m = 4 ad = 0.707 pd = 5.33 as = 1.061 ps = 8.00 nrd = 80.00 nrs = 53.33 m = 4
psrf_5p18m4_b_dummy (b b s b) pmos_rf_base_m4_b_w5 w = 5.05 l = 0.18 m = 2 ad = 1.515 pd = 10.7 as = 0.0 ps = 0.0 nrd = 40.00 nrs = 0.00 m = 2
ends psrf_5p18m4_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_5p25m2_b (d g s b)
psrf_5p25m2_b (d g s b) pmos_rf_base_m2_b_w5 w = 5.05 l = 0.25 m = 2 ad = 0.707 pd = 5.33 as = 1.414 ps = 10.66 nrd = 80.00 nrs = 40.00 m = 2
psrf_5p25m2_b_dummy (b b s b) pmos_rf_base_m2_b_w5 w = 5.05 l = 0.25 m = 2 ad = 1.515 pd = 10.7 as = 0.0 ps = 0.0 nrd = 40.00 nrs = 0.00 m = 2
ends psrf_5p25m2_b
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_5p25m4_b (d g s b)
psrf_5p25m4_b (d g s b) pmos_rf_base_m4_b_w5 w = 5.05 l = 0.25 m = 4 ad = 0.707 pd = 5.33 as = 1.061 ps = 8.00 nrd = 80.00 nrs = 53.33 m = 4
psrf_5p25m4_b_dummy (b b s b) pmos_rf_base_m4_b_w5 w = 5.05 l = 0.25 m = 2 ad = 1.515 pd = 10.7 as = 0.0 ps = 0.0 nrd = 40.00 nrs = 0.00 m = 2
ends psrf_5p25m4_b
// *********************************************************************************
// *********************************************************************************
// AW (Analog Wrapper) models for Atlantis
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_1p68p15nf2 (d g s b)
parameters 
+ rg_sub_tnom = (127 * pmos_rf_aw_rgate_stub_mult)
+ rg_dist_tnom = (150.129 * pmos_rf_aw_rgate_dist_mult)
+ tref = 30
psrf_1p68p15nf2 (1 2 3 b) pmos l=0.15 w=(2)*(1.68) ad=(2)*(0.2352) as=(2)*(0.445) pd=(2)*(1.96) ps=(2)*(3.89) nrd=(0)/(2) nrs=(0)/(2) nf=2 sa=0.265 sb=0.265 sd=0.28 
cpar_ds (1  3)  capacitor c=(0.41f * pmos_rf_aw_cap_mult)
cpar_gd (2  1)  capacitor c=(0.74f * pmos_rf_aw_cap_mult)
cpar_gs (2  3)  capacitor c=(0.119f * pmos_rf_aw_cap_mult)
rg      (2  g)  resistor  r=(rg_sub_tnom*(1+(temp-tref)*tc1rcgp+(temp-tref)*(temp-tref)*tc2rcgp)) + (rg_dist_tnom*(1+(temp-tref)*tc1rsgpu+(temp-tref)*(temp-tref)*tc2rsgpu))
rd      (1  d)  resistor  r=(154 * pmos_rf_aw_rd_mult)
rs      (3  s)  resistor  r=(76 * pmos_rf_aw_rs_mult)
ends psrf_1p68p15nf2
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_5p15nf2 (d g s b)
parameters 
+ rg_stub_tnom = (127 * pmos_rf_aw_rgate_stub_mult_2)
+ rg_dist_tnom = (366.81 * pmos_rf_aw_rgate_dist_mult_2)
+ tref = 30
psrf_5p15nf2 (1 2 3 b) pmos l=0.15 w=(2)*(5.00) ad=(2)*(0.7) as=(2)*(1.325) pd=(2)*(5.28) ps=(2)*(10.53) nrd=(0)/(2) nrs=(0)/(2) nf=2 sa=0.265 sb=0.265 sd=0.28 
cpar_ds (1  3)  capacitor c=(1.22f * pmos_rf_aw_cap_mult_2)
cpar_gd (2  1)  capacitor c=(1.665f * pmos_rf_aw_cap_mult_2)
cpar_gs (2  3)  capacitor c=(0.285f * pmos_rf_aw_cap_mult_2)
rg      (2  g)  resistor  r=(rg_stub_tnom*(1+(temp-tref)*tc1rcgp+(temp-tref)*(temp-tref)*tc2rcgp)) + (rg_dist_tnom*(1+(temp-tref)*tc1rsgpu+(temp-tref)*(temp-tref)*tc2rsgpu)) 
rd      (1  d)  resistor  r=(50 * pmos_rf_aw_rd_mult)
rs      (3  s)  resistor  r=(24 * pmos_rf_aw_rs_mult)
ends psrf_5p15nf2
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_p84p15nf2 (d g s b)
parameters 
+ rg_stub_tnom = (127 * pmos_rf_aw_rgate_stub_mult_2) 
+ rg_dist_tnom = (37.53 * pmos_rf_aw_rgate_dist_mult_2)
+ tref = 30
psrf_p84p15nf2 (1 2 3 b) pmos l=0.15 w=(2)*(0.84) ad=(2)*(0.1176) as=(2)*(0.223) pd=(2)*(1.12) ps=(2)*(2.21) nrd=(0)/(2) nrs=(0)/(2) nf=2 sa=0.265 sb=0.265 sd=0.28 
cpar_ds (1  3)  capacitor c=(0.17f * pmos_rf_aw_cap_mult)
cpar_gd (2  1)  capacitor c=(0.459f * pmos_rf_aw_cap_mult)
cpar_gs (2  3)  capacitor c=(0.257f * pmos_rf_aw_cap_mult)
rg      (2  g)  resistor  r=(rg_stub_tnom*(1+(temp-tref)*tc1rcgp+(temp-tref)*(temp-tref)*tc2rcgp)) + (rg_dist_tnom*(1+(temp-tref)*tc1rsgpu+(temp-tref)*(temp-tref)*tc2rsgpu))
rd      (1  d)  resistor  r=(306 * pmos_rf_aw_rd_mult)
rs      (3  s)  resistor  r=(152.5 * pmos_rf_aw_rs_mult)
ends psrf_p84p15nf2
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_1p68p15nf4 (d g s b)
parameters
+ rg_stub_tnom = (63.5 * pmos_rf_aw_rgate_stub_mult)
+ rg_dist_tnom = (75.061 * pmos_rf_aw_rgate_dist_mult)
+ tref = 30
psrf_1p68p15nf4 (1 2 3 b) pmos l=0.15 w=(4)*(1.68) ad=(4)*(0.2352) as=(4)*(0.34) pd=(4)*(1.96) ps=(4)*(2.925) nrd=(0)/(4) nrs=(0)/(4) nf=4 sa=0.265 sb=0.265 sd=0.28 
cpar_ds (1  3)  capacitor c=(0.82f * pmos_rf_aw_cap_mult)
cpar_gd (2  1)  capacitor c=(0.984f * pmos_rf_aw_cap_mult)
cpar_gs (2  3)  capacitor c=(0.354f * pmos_rf_aw_cap_mult)
rg      (2  g)  resistor  r=(rg_stub_tnom*(1+(temp-tref)*tc1rcgp+(temp-tref)*(temp-tref)*tc2rcgp)) + (rg_dist_tnom*(1+(temp-tref)*tc1rsgpu+(temp-tref)*(temp-tref)*tc2rsgpu))
rd      (1  d)  resistor  r=(78 * pmos_rf_aw_rd_mult)
rs      (3  s)  resistor  r=(50.6 * pmos_rf_aw_rs_mult)
ends psrf_1p68p15nf4
// *********************************************************************************
// *********************************************************************************
inline subckt psrf_3p15nf2 (d g s b)
parameters
+ rg_stub_tnom = (127 * pmos_rf_aw_rgate_stub_mult)
+ rg_dist_tnom = (183.0 * pmos_rf_aw_rgate_dist_mult)
+ tref = 30
psrf_3p15nf2 (1 2 3 b) pmos l=0.15 w=(2)*(3.00) ad=(2)*(0.42) as=(2)*(0.795) pd=(2)*(3.28) ps=(2)*(6.53) nrd=(0)/(2) nrs=(0)/(2) nf=2 sa=0.265 sb=0.265 sd=0.28 
cpar_ds 1  3  capacitor c=(0.7f * pmos_rf_aw_cap_mult)
cpar_gd 2  1  capacitor c=(1.056f * pmos_rf_aw_cap_mult)
cpar_gs 2  3  capacitor c=(0.232f * pmos_rf_aw_cap_mult)
rg      2  g  resistor  r=(rg_stub_tnom*(1+(temp-tref)*tc1rcgp+(temp-tref)*(temp-tref)*tc2rcgp)) + (rg_dist_tnom*(1+(temp-tref)*tc1rsgpu+(temp-tref)*(temp-tref)*tc2rsgpu))
rd      1  d  resistor  r=(78 * pmos_rf_aw_rd_mult)
rs      3  s  resistor  r=(38.5 * pmos_rf_aw_rs_mult)
ends psrf_3p15nf2
// *********************************************************************************
// *********************************************************************************
