• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. How to print and/or view leff(r_l) & weff(r_w) in subckt...

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 125
  • Views 546
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to print and/or view leff(r_l) & weff(r_w) in subckt body resistor and terminal resistors after Spectre simulation

Paulux
Paulux over 14 years ago

Hello,

How to print and/or view leff(r_l) & weff(r_w) of subckt body resistor [rb (11 21) res_va] using results browser in Analog Design Environment in Spectre simulation given that the resistor subckt and VerilogA are shown below? I want to know whether simulatorOptions scale=1e-6 would be scaled in VerilogA resistor subckt or not, but I find no way to check this. Also I want to know whether the terminal resistor (using model ppolyf_u_t resistor) will also be scaled by scaled=1e-6 in simulatorOptions?  Could you please kindly

(1) provide a way to view leff(r_l) & weff(r_w) of subckt body resistor rb after Spectre simulation

(2) provide a way to view leff & weff of terminal resistor rt1 & rt2 after Spectre simulation

If I post to the wrong forum, could you please kindly help to move to the proper forum and let me know.

Thanks in advance for your help & kindness.

The netlist is shown below.

 I2 (vin 0 0) ppolyf_u   l=20 w=2

simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \

tnom=27 scalem=1.0 scale=1e-6 gmin=1e-12 rforce=1 maxnotes=5 \

maxwarns=5 digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \

sensfile="../psf/sens.output" dochecklimit=yes checklimitdest=psf

tran tran stop=100n errpreset=moderate step=100p write="spectre.ic" \

writefinal="spectre.fc" method=trap save=all oppoint=rawfile maxiters=5 \

finalTimeOP info what=oppoint where=rawfile

modelParameterinfo what=models where=rawfile

element info what=inst where=rawfile

outputParameter info what=output where=rawfile

designParamVals info what=parameters where=rawfile

primitives info what=primitives where=rawfile

subckt info what=subckts where=rawfile

asserts info what=assert where=rawfile

saveOptions options save=allpub

subckt ppolyf_u (1 2 3)
//-------------------
// model for body resistor
parameters l w  r_length=l r_width=w dtemp=0 par=1
//*******************************************************************************************************
+sqr=r_length/r_width
+vc1_eff= 0 + (r_width<=1.4u)*(sqr<=1.5)*(1.61e-2) + \
(r_width<=1.4u)*(sqr>1.5)*(sqr<=3.5)*(-5.98e-2) + \
(r_width<=1.4u)*(sqr>3.5)*(sqr<=7.5)*(-1.42e-1) + \
(r_width<=1.4u)*(sqr>7.5)*(sqr<=15 )*(-1.76e-1) + \
(r_width<=1.4u)*(sqr>15)*(-2.02e-1) + \
(r_width>1.4u)*(r_width<=3u)*(sqr<=1.5)*(-1.34e-2) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>1.5)*(sqr<=3.5)*(-5.07e-2) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>3.5)*(sqr<=7.5)*(-1.06e-1) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>7.5)*(sqr<=15 )*(-1.04e-1) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>15)*(-1.34e-1) + \
(r_width>3u)*(r_width<=6u)*(sqr<=1.5)*(2.00e-3) + \
(r_width>3u)*(r_width<=6u)*(sqr>1.5)*(sqr<=3.5)*(-6.50e-3) + \
(r_width>3u)*(r_width<=6u)*(sqr>3.5)*(sqr<=7.5)*(-3.47e-2) + \
(r_width>3u)*(r_width<=6u)*(sqr>7.5)*(sqr<=15 )*(-6.77e-2) + \
(r_width>3u)*(r_width<=6u)*(sqr>15)*(-9.78e-2) + \
(r_width>6u)*(sqr<=1.5)*(-5.60e-3) + \
(r_width>6u)*(sqr>1.5)*(sqr<=3.5)*(-1.25e-2) + \
(r_width>6u)*(sqr>3.5)*(sqr<=7.5)*(-2.99e-2) + \
(r_width>6u)*(sqr>7.5)*(sqr<=15 )*(-6.08e-2) + \
(r_width>6u)*(sqr>15)*(-1.01e-1)
**
+vc2_eff= 0 + (r_width<=1.4u)*(sqr<=1.5)*(-10.4) + \
(r_width<=1.4u)*(sqr>1.5)*(sqr<=3.5)*(-24.4) + \
(r_width<=1.4u)*(sqr>3.5)*(sqr<=7.5)*(-38.9) + \
(r_width<=1.4u)*(sqr>7.5)*(sqr<=15 )*(-41.5) + \
(r_width<=1.4u)*(sqr>15)*(-41) + \
(r_width>1.4u)*(r_width<=3u)*(sqr<=1.5)*(-4.1) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>1.5)*(sqr<=3.5)*(-6.89) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>3.5)*(sqr<=7.5)*(-8.3) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>7.5)*(sqr<=15 )*(-8.54) + \
(r_width>1.4u)*(r_width<=3u)*(sqr>15)*(-7.95) + \
(r_width>3u)*(r_width<=6u)*(sqr<=1.5)*(-1.68) + \
(r_width>3u)*(r_width<=6u)*(sqr>1.5)*(sqr<=3.5)*(-2.22) + \
(r_width>3u)*(r_width<=6u)*(sqr>3.5)*(sqr<=7.5)*(-2.45) + \
(r_width>3u)*(r_width<=6u)*(sqr>7.5)*(sqr<=15 )*(-2.48) + \
(r_width>3u)*(r_width<=6u)*(sqr>15)*(-1.74) + \
(r_width>6u)*(sqr<=1.5)*(-0.585) + \
(r_width>6u)*(sqr>1.5)*(sqr<=3.5)*(-0.664) + \
(r_width>6u)*(sqr>3.5)*(sqr<=7.5)*(-0.730) + \
(r_width>6u)*(sqr>7.5)*(sqr<=15 )*(-0.729) + \
(r_width>6u)*(sqr>15)*(-0.444)
//*******************************************************************************************************
+ r_rsh0=rsh_ppolyf_u
+ r_dw=2E-8
+ r_dl=7.34E-11
+ r_vc1=vc1_eff*res_vcr_sw
+ r_vc2=vc2_eff*res_vcr_sw
+ r_tc1=-1.27e-4
+ r_tc2=6.44E-7
+ r_tnom=25
+ r_l=r_length-2*r_dl
+ r_w=r_width-2*r_dw
// model for terminal resistor
model ppolyf_u_t resistor
+ rsh=80
+ tc1=-1.34E-3
+ tc2=2.49E-6
+ tnom=25
+ af=1.79
+ kf=2.4E-23
// model for substrate capacitor (pF/um2)
model fox_sub capacitor
+ cox=8.85e-05
//-------------------
// terminal 1
rt1 (1 11) ppolyf_u_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.79
+ kf=2.4E-23
// terminal 2
rt2 (21 2) ppolyf_u_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

//VerilogA resistor model 

`include "discipline.h"
`include "constants.h"
module res_va(p, n);
inout p, n;
electrical p, n;

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;
//temperature parameters
parameter real dtemp=0;
parameter real tc1=0;
parameter real tc2=0;
parameter real tnom=25;
//VCR parameters
parameter real vc1=0;
parameter real vc2=0;

parameter real pi=3.14;
//added by Ramkumar
//parameter real etch=0;
//parameter real etchl=0;
//parameter real weexp=0;
//parameter real leexp=0;
//parameter real wdexp=1.0;
//parameter real ldexp=1.0;
//parameter real fexp=3.66;
// Requested additional parameter for simulation back-annotation
real r_v, r_i, r_pwr;
real r_l, r_w, r_n, r_temp, r_r0, r;

real geo;
analog begin

r_l=l-2*dl;
r_w=w-2*dw;
r_n=r_l/r_w;
r_temp=1+tc1*($temperature+dtemp-273.15-tnom)+tc2*($temperature+dtemp-273.15-tnom)*($temperature+dtemp-273.15-tnom);
r=r_temp*r_n*(rsh0+vc1*abs(V(p,n))/r_n+vc2*abs(V(p,n))*abs(V(p,n))/r_n/r_n)/m;

//$strobe(r);
// added by Ramkumar
//Weff = w - 2*etch;
//Leff = l - 2*etchl;
//geo = pow(Weff, weexp) * pow(Leff, leexp) * pow(w, wdexp) *pow(l, ldexp);
// end

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

I(p, n) <+ V(p, n)/r;
I(p, n) <+ white_noise(4*1.380620e-23*($temperature+dtemp)/r,"thermal");
I(p, n) <+ flicker_noise(kf*pow(abs(I(p, n)), af)/geo ,ef, "flicker");

// Requested additional parameter for simulation back-annotation
r_v = V(p,n);
r_i = I(p, n);
r_pwr = V(p,n)*I(p,n);

end
endmodule
 

  • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information