Added releasing memory after plotting the FET graphs

Signed-off-by: Grzegorz Latosinski <glatosinski@antmicro.com>
This commit is contained in:
Grzegorz Latosinski 2020-11-18 16:13:56 +01:00
parent 3f0a64be4a
commit 1c0eeda6c6
1 changed files with 19 additions and 11 deletions

View File

@ -50,11 +50,12 @@ def run_sim(c, iparam, fet_W):
iparam % 'gm', iparam % 'id', iparam % 'gds', iparam % 'cgg' iparam % 'gm', iparam % 'id', iparam % 'gds', iparam % 'cgg'
) )
try:
# run the dc simulation # run the dc simulation
an = sim.dc(Vgg=slice(0, 1.8, 0.01)) an = sim.dc(Vgg=slice(0, 1.8, 0.01))
# calculate needed values..need as_ndarray() since most of these have None # calculate needed values..need as_ndarray() since most of these have
# as the unit and that causes an error # None as the unit and that causes an error
gm_id = (an.internal_parameters[iparam % 'gm'].as_ndarray() / gm_id = (an.internal_parameters[iparam % 'gm'].as_ndarray() /
an.internal_parameters[iparam % 'id'].as_ndarray()) an.internal_parameters[iparam % 'id'].as_ndarray())
ft = (an.internal_parameters[iparam % 'gm'].as_ndarray() / ft = (an.internal_parameters[iparam % 'gm'].as_ndarray() /
@ -62,6 +63,13 @@ def run_sim(c, iparam, fet_W):
id_W = (an.internal_parameters[iparam % 'id'].as_ndarray() / fet_W) id_W = (an.internal_parameters[iparam % 'id'].as_ndarray() / fet_W)
gm_gds = (an.internal_parameters[iparam % 'gm'].as_ndarray() / gm_gds = (an.internal_parameters[iparam % 'gm'].as_ndarray() /
an.internal_parameters[iparam % 'gds'].as_ndarray()) an.internal_parameters[iparam % 'gds'].as_ndarray())
except Exception:
sim.ngspice.destroy('all')
sim.ngspice.reset()
raise
sim.ngspice.destroy('all')
sim.ngspice.reset()
return gm_id, ft, id_W, gm_gds, an.nodes['v-sweep'] return gm_id, ft, id_W, gm_gds, an.nodes['v-sweep']