PSF (Parameter Storage Format) files are mainly created by the Cadence Spectre simulator. Spectre stores it’s output data either in single or double precision binary or in a human-readable ascii format. Many other simulators also support the PSF file format. The Virtuoso design framework uses this format extensively.
Some inconveniences of the PSF format is that it is uncompressed and that reading is relatively slow.
To improve reading speed Cadence has enhanced the PSF file format and defined the PSFXL extension. The PSFXL format is the new default output format. Only transient simulations yield PSFXL files.
In addition to the data PSF files Spectre writes a “logFile” which lists all files containing simulation data. Monte Carlo analysis and multiple analyses create several output files. This post gives more details on the “logFile” and the PSF file structure.
BeSpice Wave and the underlying waveform parser parse binary and ascii PSF files as well as logfiles. We read output files for all possible analyses. This includes transient, ac, dc, noise and SOA analysis. For binary files, the waveform parser reads curve data dynamically when required. Ascii data is directly read to memory when parsing the file.
The C and C++ waveform parser library
Our waveform parser library is written in C++ and exposes it’s API functions through a pure C interface. If you are looking for maximum performance when reading PSF files this should be your choice!
Parsing PSF files from Python
For a long time Skill and Tcl where the predominant script languages for EDA software. However programming languages as Python make it a lot easier to write more complex software without having to compile the source code.
To address Python users we have written a Python interface for our parser library. The resulting Python module is entirely self contained and can easily be moved around.
So if you think to reading PSF files from Python can ease you job of processing PSF files this is the solution for you !
Accessing PSF files from Matlab
Processing data from Matlab or Octave has a couple of obvious advantages. Both environments offer enormous possibilities to work with you data and plot it in various ways.
In complement to the above possibilities we have extended our parser library to a Matlab and Octave toolbox. The functionality of the C API is entirely available. You can get a quick start by using simplified functions.
If you are familiar with Matlab, this is your choice !
Reading PSF files from Tcl
The Tcl language has been around quite a while. As a consequence many soft- and hardware engineers have developed a high level of expertise and a lot of software in Tcl.
The Tcl interface to our parser library offers exactly the same functionality as our other interfaces.
If Tcl is your preferred language or you want to extend existing code to read PSF files this is your solution !