When Cadence Spectre performs a simulation, it writes all simulation results to a directory. This directory can be opened for exploring the simulation results. By default these files are in PSF or PSFXL format. Here we will give a short overview on the PSF and PSFXL file structure.
The most important file in the result directory is the “logFile”. This file is always present, even if the simulation fails and produces no output.
This file is a text file that can be read in a text editor. It refers to other files that have been generated by the simulator. The simulator generates one file per analysis type and simulation run.
The logFile also contains some meta-data associated to all files it refers to. This meta-data can be
- the type of the simulation (dc, tran, ac, info, info.primitives, info.subckts, …)
- the file format (PSF, FSDB, …)
- the parent. If this information is present, it informs that multiple simulation runs with varying run parameters were performed.
- the name of the sweep variable.
- a text description of the data.
- additional information on the sweep type (“sweepNode”, “leafNode”, …) and sweep parameters in the case of multiple runs.
The logFile can refer to any number of files holding the simulation results. They can often be identified by their name or extension:
- “transient1.tran” or more general “*.tran” defines a transient simulation result.
- “*.dc” defines a dc simulation result.
- “*.ac” defines a ac simulation result.
- “*.noise” defines a noise simulation result.
- “*.info” holds all kind of additional information about a simulation.
- “*.pss” has been generated by a periodic steady-state analysis.
- “*.sp” has been generated by an S-parameter analysis.
- “.xf” has been generated by an transfer function analysis.
Many more extensions exist (“.foreach”, “.primitives”, “.subckts”, “.*.violations”, …). All these files can be binary or ascii files. Cadence provides a number of utilities to convert these files into a human-readable ascii format.
PSFXL files are only generated for transient simulations. In this case the PSF file (“transient1.tran” in the example above) holds no data. Instead the data is stored in a file “transient1.tran.dat” or “transient1.tran.psfxl” where the extensions “.dat” or “.psfxl” are added. In addition to that, a file “transient1.tran.sig” might also have been created. This file holds some meta-data such as the minimum and maximum values of every waveform defined in the original “transient1.tran” file.
Our parser library and our graphical viewer “BeSpice Wave” read PSF and PSFXL files. It is possible to open either the logFile or the individual PSF files. If a logFile is opened, all files it refers to are also read. However this behavior can be deactivated for the library.
To open an individual PSFXL file, it is important to open the file “transient1.tran” without the additional “.dat”, “.psfxl” or “.sig” extension. These files will be detected and processed automatically.
The access to the parsed data might vary depending on the data type used within the PSF file. Transient or ac real-valued data can be accessed as a vector.
The “*.info” files often use structured data types. They can mix text strings with numerical data. In this case our library allows to access the data using an iterator. This iterator returns all stored information together with it’s data type. The iterator also allows to retrieve the text information stored in the “logFile” itself.