10.06.2016 Views

eldo_user

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Eldo Control Language<br />

Task Definition<br />

.define_task opamp (n=10)<br />

set vdd[]=1.65 open_lg[]=60<br />

set vx=0 i=0 max_olg=60 i_max_olg=1 vdd_max=1.5 ovs=0<br />

// for each value of VDD from 1.5V to 1.8V, find out the DC<br />

// offset, then inject it into a .AC simulation that computes the<br />

// open loop gain, and store this gain in open_lg[] vector<br />

for (type=step, param=i, start=1, stop=n, step=1)<br />

vdd[i] = 1.5 + (i-1) * (1.8-1.5) / (n-1)<br />

simulation(<br />

+ powersupply(pvdd = vdd[i]),<br />

+ follower(),<br />

+ vx = @vout_follower)<br />

simulation(<br />

+ powersupply(pvdd = vdd[i]),<br />

+ ac_open_loop(vout_follower = vx),<br />

+ open_lg[i] = @open_loop_gain)<br />

endstep<br />

// find out for which value of VDD the open loop gain is maximal<br />

i_max_olg = open_lg.imin<br />

max_olg = open_lg[i_max_olg]<br />

for (i=open_lg.imin + 1; i max_olg)<br />

i_max_olg = i<br />

max_olg = open_lg[i]<br />

endif<br />

endfor<br />

vdd_max = vdd[i_max_olg]<br />

// finally run a single transient simulation for this value of<br />

// VDD which maximizes the open loop gain and extract the<br />

// overshoot :<br />

simulation(<br />

+ powersupply(pvdd = vdd_max),<br />

+ transient(),<br />

+ ovs=@overshoot)<br />

fprint (stdout, \<br />

"Max. open loop gain : %.5g for VDD = %.5g. Corresponding<br />

overshoot is : %.5g\n",\<br />

max_olg, vdd_max, ovs)<br />

.end_define_task<br />

See “Variables” on page 821, “Flow Control Statements” on page 835, “Defining and<br />

Running Simulations” on page 841, and the fprint function for more information on the<br />

concepts used in the example.<br />

816<br />

Eldo® User's Manual, 15.3

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

Saved successfully!

Ooh no, something went wrong!