[SOLVED] How to acquire Vth, Tox, Xl, and Xw values for each monte carlo iteration in HSPICE

Status
Not open for further replies.

rmanalo

Advanced Member level 4
Joined
Feb 8, 2017
Messages
107
Helped
16
Reputation
32
Reaction score
16
Trophy points
18
Location
Philippines
Activity points
979
Hello everyone. I am trying to find the values of a specific iteration (or all of the iteration) of a monte carlo simulation run of 1000 samples.

In HSPICE I did this with a variation block where the 3-sigma value corresponds to the Fast or Slow corner.

Code:
.Variation
	.Global_Variation
		Parameter Toxvar = N()

		$Distribution for 1.8-V NMOS
		NMOS NCH tox=Perturb('(0.133e-9/3)*Toxvar')
		NMOS NCH vth0='0.1/3'
		NMOS NCH xl='0.133e-9/3'
		NMOS NCH xW='0.22e-9/3'

		$Distribution for 1.8-V PMOS
		PMOS PCH tox=Perturb('(0.133e-9/3)*Toxvar')
		PMOS PCH vth0='0.067/3'
		PMOS PCH xl='0.133e-9/3'
		PMOS PCH xW='0.22e-9/3'
	.End_Global_Variation

	.Local_Variation
	$No Statistical data for mismatch considerations
	.End_Local_Variation
.End_Variation

.dc temp -25 100 5 monte=1000

I'd like to get the values of Vth, tox, xl, and xw of each iteration run. The manual states that I can aquire this through CScope but the license only allows me to use Avanwaves. I'm using HSPICE ver:A-2008.03. How should I get them? Thanks.
 

have you tried plotting/exporting the values by yourself? I mean, no one would use the GUI for acquiring the values, there must be a way to automate/script it.
 

I was interested in a command statement. like a .measure and see the parameters on the LIS file.

though I did see the values (I believe) in the .mca0 file. Am I correct in saying that the parameters I am looking for are in the .mca0 file?

Code:
index	toxvar@IGN	nch@vth0@IGN	nch@xl@IGN
nch@xw@IGN	pch@vth0@IGN	pch@xl@IGN	
pch@xw@IGN	nch3@vth0@IGN	nch3@xl@IGN	
nch3@xw@IGN	nch.1@tox@MGA	nch.4@tox@MGA	
nch.7@tox@MGA	nch.1@vth0@MGA	nch.4@vth0@MGA	
nch.7@vth0@MGA	nch.1@xl@MGA	nch.4@xl@MGA	
nch.7@xl@MGA	nch.1@xw@MGA	nch.4@xw@MGA	
nch.7@xw@MGA	pch.1@tox@MGA	pch.4@tox@MGA	
pch.1@vth0@MGA	pch.4@vth0@MGA	pch.1@xl@MGA	
pch.4@xl@MGA	pch.1@xw@MGA	pch.4@xw@MGA	
nch3.1@tox@MGA	nch3.4@tox@MGA	nch3.1@vth0@MGA	
nch3.4@vth0@MGA	nch3.1@xl@MGA	nch3.4@xl@MGA	
nch3.1@xw@MGA	nch3.4@xw@MGA		
status	alter#		
1	0	0	0
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0		
1	1		
2	-0.6525	-0.9546	-9.64E-03
2.3853	0.9269	0.4077	
0.2027	1.4667	-0.5284	
0.6795	-2.89E-11	-2.89E-11	
-2.89E-11	-3.18E-02	-3.18E-02	
-3.18E-02	-4.27E-13	-4.27E-13	
-4.27E-13	1.75E-10	1.75E-10	
1.75E-10	-2.89E-11	-2.89E-11	
2.07E-02	2.07E-02	1.81E-11	
1.81E-11	1.49E-11	1.49E-11	
-1.52E-10	-1.52E-10	4.89E-02	
4.89E-02	-2.34E-11	-2.34E-11	
4.98E-11	4.98E-11		
1	1		
3	-0.7865	-1.0127	0.8544
-5.36E-02	-0.24	-0.5101	
0.7858	0.1598	1.1904	
1.0463	-3.49E-11	-3.49E-11	
-3.49E-11	-3.38E-02	-3.38E-02	
-3.38E-02	3.79E-11	3.79E-11	
3.79E-11	-3.93E-12	-3.93E-12	
-3.93E-12	-3.49E-11	-3.49E-11	
-5.36E-03	-5.36E-03	-2.26E-11	
-2.26E-11	5.76E-11	5.76E-11	
-1.84E-10	-1.84E-10	5.33E-03	
5.33E-03	5.28E-11	5.28E-11	
7.67E-11	7.67E-11		
1	1

The values listed is (I believe) the ones used from iterations 1-3.
I'm gonna say this now. It will be a pain sorting these out in excel (LOL)

I have a follow up question.
What does IGN and MGA stand for and what are their implications in my simulation?
 

UPDATE:

Turns out that IGN and MGA refers to (Independent-Global-Normal) and (Model-Global-Absolute) respectively.
Now that I have found these values. I've been looking at the HSPICE manual and it's a bit confusing to manipulate the .lib file.

Code:
. LIB TT
.param
+toxn   = 4.08E-09        toxp   = 4.08E-09       
+dvthn  = 0               dvthp  = 0              
+dxl    = 0               dxw    = 0              
+cjn    = 0.001000266     cjp    = 0.001121       
+cjswn  = 2.040547E-10    cjswp  = 2.481E-10      
+cjswgn = 3.340547E-10    cjswgp = 4.221E-10      
+cgon   = 3.665E-10       cgop   = 3.28E-10      
+hdifn  = 2E-07           hdifp  = 2E-07          
.lib 'mm018.l' MOS
.ENDL TT

Here are the parameters for the Library. Is there a way to manipulate these values from the netlist like say for example the Vth0 for NMOS in the 3rd iteration in monte carlo is -0.03376 and write a code that substitutes this in the library like say .param dvthn=-0.03376?
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…