Quantcast
Channel: Cadence Custom IC Design Forum
Viewing all articles
Browse latest Browse all 4906

Exporting several DC sweeps (OP transistor params) to CSV in an organized way

$
0
0

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!


Viewing all articles
Browse latest Browse all 4906

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>