Hi,
I'm doing a DC sweep on a single transistor. I also would like to sweep the lengths and widths.
I have solution for now, but it's highly unsatisfactory, so I would like to be able to exhaust all the possibilities in this forum before resorting to external post-processing.
My aim the following:
- Generate a file per sweep point: each file has the VGS sweep values mapped to an OP param. e.g.: gm
- Each file has 4 columns: vgs and 3x gm for 3 different temperatures
- I'm also doing this across corners. I would like to be able to extract the corner information from the ocean script and append it to the filename.
- I would also like to add other parametric information, such as W or L.
For example, a file would be named "nmos_lvt_W_1u_L_100n_cgs_tt.csv"
And it'd look like this
vgs -40 ... 135
0.01 1.5e-15 ... 3e-15
0.02 1.6 e-15 ... 4e-15
...
Etc.
So far, my unsatisfactory solution is this one:
1) Generated an ocean script from the maestro TB I did the initial sweep on
2) I added code to extract the small signal params following this snippet's pattern:
selectResult('dc)
resultFile_gm = outfile("gmid_curves_gm.csv")
gm = getData("M2:gm" ?result 'dc)
drGetWaveformYVec(gm)->expression="gm"
ocnPrint(?output resultFile_gm ?numberNotation 'engineering gm)
close(resultFile_gm)
I apply this to every small signal parameter of interest.
My problem is that, while I get the desired 4 columns, I get the initial corner information which is quite messy and also get more data blocks due to the parametric sweep.
I am aware that with getData(), one can extract also values per corner by using the ResultsDir option. Unfortunately, when I run a simulation, the corners do not appear with their respective names, but only with numbers, which makes it inconvenient as I don't know what folder is which corner.
For example, now I'm sweeping the L with the following code (along with a DC sweep):
but I'm getting my data like this:
I would like to get the 2nd block of data in a separate file with the appropriate parametric info on the filename.
Thanks in advance for your help!