10.06.2016 Views

eldo_user

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Eldo Control Language<br />

Library of Functions for Tasks<br />

iter = 0<br />

while (abs(vds_max - vds_min) > 0.001 && iter < 50)<br />

iter++<br />

vds = vds_min + (abs(vds_max - vds_min) / 2)<br />

simulation(mos(w_val = w, vds_val=vds), m1_mode = @m1_mode, m1_ids =<br />

@m1_ids)<br />

if (m1_mode == "linear")<br />

vds_min = vds<br />

else<br />

vds_max = vds<br />

endif<br />

endwhile<br />

if (iter >= 50)<br />

fprint(stdout, "Failed to find ids_sat in less than 50 iterations for<br />

w=%em.\n", w)<br />

return -1<br />

else<br />

ids_sat_w_res[i] = m1_ids<br />

endif<br />

endstep<br />

/**<br />

* Compute ids_sat by dichotomy for many values of l.<br />

*/<br />

i = 0<br />

step (type = lin, param = l, start = 1u, stop = 5u, n = 20)<br />

i++<br />

l_res[i] = l<br />

/* Check bounds. */<br />

vds_min = 0<br />

vds_max = 5<br />

simulation(mos(l_val = l, vds_val=vds_min), m1_mode = @m1_mode, m1_ids<br />

= @m1_ids)<br />

if (m1_mode != "linear")<br />

fprint(stdout, "Failed to find ids_sat for l=%em because with<br />

vds=%eV, opmode(m1)=%s\n", l, vds_min, m1_mode)<br />

return -1<br />

endif<br />

simulation(mos(l_val = l, vds_val=vds_max), m1_mode = @m1_mode, m1_ids<br />

= @m1_ids)<br />

if (m1_mode != "saturation")<br />

fprint(stdout, "Failed to find ids_sat for l=%em because with<br />

vds=%eV, opmode(m1)=%s\n", l, vds_max, m1_mode)<br />

return -1<br />

endif<br />

/* Dichotomy. */<br />

iter = 0<br />

while (abs(vds_max - vds_min) > 0.001 && iter < 50)<br />

iter++<br />

vds = vds_min + (abs(vds_max - vds_min) / 2)<br />

simulation(mos(l_val = l, vds_val=vds), m1_mode = @m1_mode, m1_ids =<br />

@m1_ids)<br />

if (m1_mode == "linear")<br />

vds_min = vds<br />

else<br />

Eldo® User's Manual, 15.3 983

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!