Esempio n. 1
0
def get_2probe_conduct(data, len2, wid2, str2):
	Ids_idx = get_idx(data, 'Ids', 1)
	Vds_idx = get_idx(data, 'Vds', 1)
	conduct2probe = [str2]
	abs_conduct2probe = ["abs "+str2]
	abs_Ids = ['abs Ids']
	nrows = len(data[0][:])
	ncols = len(data)
	for i in range(1, nrows):
		Ids = data[Ids_idx][i]
		Vds = data[Vds_idx][i]
		conduct2 = Ids/Vds * len2/wid2 * 1e6
		conduct2probe.append(conduct2)
		abs_conduct2probe.append(abs(conduct2))
		abs_Ids.append(abs(Ids))
	return conduct2probe, abs_conduct2probe, abs_Ids
Esempio n. 2
0
def get_4probe_conduct(data, len4, wid4, str4):
	v3idx = get_idx(data, 'V3', 1)
	v2idx = get_idx(data, 'V2', 1)
	Ids_idx = get_idx(data, 'Ids', 1)
	conduct4probe = [str4]
	abs_conduct4probe = ["abs "+str4]
	diffV = ['V3-V2']
	nrows = len(data[0][:])
	ncols = len(data)
	for i in range(1, nrows):
		v3_v2 = data[v3idx][i] - data[v2idx][i]
		Ids = data[Ids_idx][i]
		conduct4 = Ids/v3_v2 * len4/wid4 * 1e6
		conduct4probe.append(conduct4)
		abs_conduct4probe.append(abs(conduct4))
		diffV.append(v3_v2)
	return conduct4probe, abs_conduct4probe, diffV
Esempio n. 3
0
def get_trace_retrace(data, conduct4probe, conduct2probe, str4, str2):
	from inexactfloat import InexactFloat
	ncols = len(data)
	nrows = len(data[0][:])
	Vbg_idx = get_idx(data, 'Vbg', 1)
	trace_4probe = [str4+" trace"]
	trace_2probe = [str2+" trace"]
	retrace_4probe = [str4+" retrace"]
	retrace_2probe = [str2+" retrace"]
	for i in range(2, nrows-1):
		if InexactFloat(data[Vbg_idx][i]) == InexactFloat(data[Vbg_idx][i-1]):
			trace_idx = i 
	for j in range(1, trace_idx):
		trace_4probe.append(conduct4probe[j])
		trace_2probe.append(conduct2probe[j])
	for k in range(trace_idx, nrows):
		retrace_4probe.append(conduct4probe[k])
		retrace_2probe.append(conduct2probe[k])
	return trace_4probe, retrace_4probe, trace_2probe, retrace_2probe, trace_idx