In this Topic Hide
This section is also in the User's manual. It is reproduced here for convenience.
SIMetrix provides the capability to export simulation data to a file in text form and also to import data from a file in text form. This makes it possible to process simulation data using another application such as a spreadsheet or custom program.
To import data use the OpenGroup command with the /text switch. E.g. at the command line type:
OpenGroup /text data.txt |
Note that if you create the file using another program such as a spreadsheet, the above command may fail if the file is still open in the other application. Closing the file in the other application will resolve this.
To export data, use the Show command with the /file switch. E.g:
Show /file data.txt vout r1_p q1#c |
In the above example the vector names are vout, r1_p and q1#c. If you simulate a schematic, the names used for voltage signals are the same as the node names in the netlist which in turn are assigned by the schematic's netlist generator. To find out what these names are, place the mouse cursor on the node of interest on the schematic then press ctrl-S. The node name - and therefore the vector name - will be displayed in the command shell. A similar procedure can be used for currents. Place the mouse cursor on the device pin of interest and press ctrl-P.
Data import and export makes it possible to process simulation data using other applications. SIMetrix has a facility to launch other programs using the Shell command. You could therefore write a script to export data, process it with your own program then read the processed data back in for plotting. To do this you must specify the /wait switch for the Shell command to force SIMetrix to wait until the external application has finished. E.g.
Shell /wait procdata.exe |
There are two alternative formats.
The first is simply a series of values separated by whitespace. This will be read in as a single vector with a reference equal to its index.
The second format is as follows:
A text data file may contain any number of blocks. Each block has a header followed by a list of datapoints. The header and each datapoint must be on one line. The header is of the form:
reference_nameydata1_name[ ydata2_name ... ] |
reference_valueydata1_value[ ydata2_value ... ] |
The reference is the x data (e.g. time or frequency).
Time Voltage1 Voltage2 |
0 14.5396 14.6916 |
1e-09 14.5397 14.6917 |
2e-09 14.5398 14.6917 |
4e-09 14.54 14.6917 |
8e-09 14.5408 14.6911 |
1.6e-08 14.5439 14.688 |
3.2e-08 14.5555 14.6766 |
6.4e-08 14.5909 14.641 |
1e-07 14.6404 14.5905 |
1.064e-07 14.6483 14.5821 |
To read in complex values, enclose the real and imaginary parts in parentheses and separate with a comma. E.g:
Frequency : VOUT |
1000 (-5.94260997 ,0.002837811 ) |
1004.61579 (-5.94260997 ,0.00285091 ) |
1009.252886 (-5.94260996 ,0.002864069 ) |
1013.911386 (-5.94260995 ,0.002877289 ) |
1018.591388 (-5.94260994 ,0.00289057 ) |
1023.292992 (-5.94260993 ,0.002903912 ) |
1028.016298 (-5.94260992 ,0.002917316 ) |
1032.761406 (-5.94260991 ,0.002930782 ) |
1037.528416 (-5.9426099 ,0.00294431 ) |
1042.317429 (-5.94260989 ,0.0029579 ) |
1047.128548 (-5.94260988 ,0.002971553 ) |
1051.961874 (-5.94260987 ,0.002985269 ) |
|