See [Installation](https://github.com/TeledyneLeCroy/SignalIntegrity/wiki/Installation) for installation instructions.
Network Analyzers
The main theme of this release is network analyzer calibration and measurements. Previously, this was the last unexposed element in the library SignalIntegrity.Lib that was not usable through the GUI. This release makes network analysis not only completely scriptable, but solvable through projects created in SignalIntegrity.App.
Using the SignalIntegrity GUI, users can define calibrations of their network analyzer by supplying raw measurements of standards to generate calibration files (network analyzer error terms). Then, in another project, users can import these error terms and convert uncalibrated s-parameter measurements into calibrated s-parameter measurements. This is all documented in the help system.
And, as with the other capabilities, like s-parameter generation, de-embedding, simulation, etc, that have a GUI based method, the calibration and generation of calibrated measurements can all be performed easily using scripting and straightforward netlists.
To facilitate all of this, several new devices were created and made available in the GUI:
- Short, Open, Load, Thru standards
- Reflect and Thru measurements -- for providing the calibration measurements
- Network Analyzer -- for producing calibrated s-parameter measurements
The calibrations are quite capable and offer:
- Standard SOLT calibration
- SOLR calibration (or unknown thru calibration)
- Overconstrained solutions (like sliding load)
- Thru calibrations with reduced number of thru connections
- Any number of ports supported
F0 added to calibration standards
In the process, the loss frequency ![f_0](https://render.githubusercontent.com/render/math?math=f_0) was added to the standard definitions.
Error-terms Viewing in S-Parameter Viewer
The s-parameter viewer now supports the viewing of network analyzer calibration files, with the error terms annotated in the button selections. The ability to select between multiple s-parameters was added.
Improvements
Software Documentation Available in Help
Not only was the online software documentation completely updated, it is now available in the SignalIntegrity GUI so it can be accessed more easily.
Netlist Improvements
The netlists have been improved to employ engineering notation with exponents where appropriate. Previously, these were just large numbers without exponents.
Ask Open File Extensions
With the ability to support multiple extensions, when you open a file, some improvements were made so it starts with a better suggestion at the extension.
Matrix Class Removal
With Python 3.x, the buffoons that meet and discuss what is the right and wrong way to write Python code have determined that it is wrong to use the matrix class in numpy. So, in order to get everyone to write less readable code not using the matrix class, they introduced a deprecation warning that fires continuously, especially when running the tests. These had the desired effect and I got so tired of seeing this that I submitted, making all of the code less readable, but no longer using the matrix class.
Significant Digits in S-parameter Files
One user complained that the resolution of the s-parameter files is not fine enough (it's six digits meaning -120 dB). I personally think this enough and am not in favor of further bloating my disk with insignificant digits, but now offer a preference that lets you change the number of digits. Changing this number to 10, would take this to -200 dB, surely enough. In the future, maybe exponents will be used, but not for now.
12458 Sequence in Calculation Properties
The calculation properties have always locked the user to a 12458 sequence. This means that if entered 65.2345 GHz as an end frequency, it would change this to 80 GHz (the next higher value in the 12458 sequence). Sometimes, one really needs to enter the numbers exactly, so in the preferences, the user can disable this locking.
Tool Tips
Hovering over the toolbar elements now reveals, through a tooltip, what the button actually does. It's very nice.
Simulation Waveforms
In simulation results, there is now the ability to turn on and off waveforms being displayed.
Double Click for Selecting Parts
Now, in the part picker, one can simply double click on the desired part. Previously, one had to press an okay button.
Device Edits in Headless Projects
Some helper functions were added to improve the ability to edit device properties when project files are opened in scripts.
Bug Fixes
The bug fixes are not very note-worthy and probably not noticeable, but are listed anyway.
Devices with Spaces in Name or Path
if a device references an s-parameter file or project with spaces in the name or path, these are now correctly utilized. Previously, they produced the right results, but could not be previewed from the properties dialog.
Documentation Updates
The documentation system, both the software documentation and help was completely updated. While it has been kept mostly up to date, a large effort was placed in this release. While it can't be promised that everything is perfect, the effort made was really to completely update and document all of the necessary code and features.
Caching Fixes
_SignalIntegrity_ allows virtually unlimited depth of nesting projects hierarchically. This stressed the results caching system that tries to avoid recalculation of things. This has been completely overhauled and the belief is that this now works perfectly. It now uses recursion to check whether recalculation is necessary.
Upgraded Doxygen software documentation and improved rendering.
S-Parameter Viewer
Displaying s-parameters or transfer matrices turns on and off various features in the viewer. These features are held in the preferences, and strange side effects were found with respect to the preferences when switching back and forth between these types of displays. This is now resolved.
PyPlot
A failure do to missing PyPlot import has been fixed.
Add Net Names Activation
The command to add net names is now properly activated/deactivated depending on schematic state.