Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top