Andrew Beckett wrote on Feb 8th, 2018, 12:59pm:
That's a rather simplistic conclusion.
I don't think so, since I use same skill code and same psf data for both IC5 and IC6.Andrew Beckett wrote on Feb 8th, 2018, 12:59pm:
It could be that your code is hanging onto objects which are no longer needed
and thus preventing them being recycled,
or it could be if this is waveform data that it is being cached to improve performance.
I use only four work variables, "Vrec_out_Raw", "Ain0_dBV", "yyy" and "y".
So these work spaces have to be reused.Andrew Beckett wrote on Feb 8th, 2018, 12:59pm:
You still read waveform data if you're doing simulation post-processing
I do simulation as a completely another session, there I generate only psf data.
My skill script is for pure post processing without simulation.Andrew Beckett wrote on Feb 8th, 2018, 12:59pm:
it's likely to be dependent on the nature of what you're doing
rather than being something as simple as this being a "critical defect of Cadence Skill in IC6".
I don't think so.Andrew Beckett wrote on Feb 8th, 2018, 12:59pm:
Otherwise it would affect everyone, all the time. Which it doesn't.
Simply no one do heavy post processing by skill code. Code:
Vrec_out_x = 1.5
for(i, 1, 150
sprintf(psf_dir, "results_dir_%d/pss", i)
Vrec_out_Raw = real( harmonic( v("vout"), 0 ) )
Ain0_dBV = cross(Vrec_out_Raw, Vrec_out_x, 1, 'rising)
fprintf(fp, "%g", Ain0_dBV)
for(k, 1, 200
sprintf(yyy, "aho_%d:in", k)
y = value( i(yyy), "Ain_dBV" Ain0_dBV )
fprintf( fp, ",%g", average( abs(y) )/1m )
sprintf(yyy, "boke_%d.Vb", k)
y = value( v(yyy), "Ain_dBV" Ain0_dBV )
fprintf( fp, ",%g", ymax(y) )
); for k
when( dbGetDatabaseType() == "OpenAccess", closeResults(psf_dir) )
); for i
I can complete this code by Skill in IC5.
But I can not by Skill in IC6.
If loop is small, e.g. " for(k, 1, 10" instead of " for(k, 1, 200" , I can complete even by Skill in IC6.
BTW, "closeResults(psf_dir)" is available in OCEAN in IC6,
but it is not helpful at all.