Skip to content

Schematic Variables, Archiving, Eye Diagram Measurements

Compare
Choose a tag to compare
@PetePupalaikis PetePupalaikis released this 18 Feb 22:41
· 84 commits to master since this release

Features

Schematic Variables

This is a long awaited and hugely valuable feature, especially for hierarchical projects and scripted applications. Now, a schematic has 'variables'. Devices within the schematic can derive their settings from these variables. Devices which access other projects can also have variables and these variables are passed down into the nested project. In the future, schematic equations will be added that can compute new variables.
The UI handling of these variables will be improved in the future, but for now, is good enough.

Calculation properties in nested projects

Devices that reference other projects can now pass the calculation properties along so that the nested projects inherit these calculation properties.

Eye Diagrams

Sampled Waveforms

Now it is possible to view the sampled waveform containing only the samples taken at the eye diagram alignment point. This is useful for qualitatively viewing the goodness of the communications from the waveform perspective and for generating residual errors in the sampling.

Eye Diagram Measurements

Signal power, noise, residual error, SDR, SNR, and SNDR are now calculated and displayed.

Eye Waveforms (and Regular Waveforms) Added to Simulation Results

Eye waveforms and regular waveforms can now be dropped into a schematic whereby they are added to the waveform and eye diagram results without any simulation -- the waveforms are simply read from the disk and processed. Closes #22.

Optical Measurements

Optical measurements are added to the eye diagram measurements. These are measurements of input and output power, transmission penalty, insertion loss, extinction ratio, etc.

Archiving

An archiving feature has been added for dealing with deeply hierarchical projects. When projects are archived, all of the elements and projects referenced by a schematic are gathered into a directory structure, with the schematics changed to point to these newly located elements and zipped. In this manner, projects can be archived and moved easily.

Headers in S-parameter Files

Headers can now be displayed, edited, and written in post-processing steps.

Lossy Ideal Transmission Line

Ideal transmission lines with skin-effect and dielectric loss can now be used.

PDN Analysis Features

I've been using the tool a lot for analyzing PDNs, and have added a number of features, mostly to speed up these analyses that require typically very high frequency resolution

Multi-port Tees

Every area in a schematic that contains a multiple device port connection was previously implemented as a three-port tee per three port connection, followed by an additional three-port tee connected per extra device connection. This could be a lot of three-port tees, and therefore very large matrices. Now, at the parser level, if I know that there are many device connections, all device connections are made with a very large tee element connecting to all of the device ports. This greatly speeds up the calculation of these types of systems.

Parallel devices

In PDN analysis, it might often occur that many pins of a connector are placed in parallel, and many on-die capacitances might be put in parallel. This could bog down the simulator. Now, there is a specific parallel device that can put any two port device in parallel. This also greatly speeds up the calculation.

Resampling Errors

This is an enormous fix for a problem that mostly only occurs with PDNs. Inside the simulator, all calculations are performed using 50 ohm s-parameters. The ideal reference impedance for a PDN is something like one ohm. The reference impedance itself is not much of a problem, but resampling the s-parameters in the wrong reference impedance could be disastrous. This is a complicated topic, so I'll not completely explain it here, but now, all s-parameters are resampled in their reference impedance prior to conversion to 50 ohms. This means that in sub-schematics, you can set the reference impedance and make sure that the impulse and step response settles in that reference impedance, and rest assured that they will be resampled in that reference impedance. This allows PDN elements to be sampled sufficiently and analyzed for sufficiency of sampling with as few frequency points as possible, and know that it will operate properly in the simulation.

Source waveforms in results

Now, a voltage or current source can be placed raw in to the resulting simulation without having to add a probe. This eliminates the need for a transfer characteristic calculation, which is superfluous and takes unneccesary time.

Minor Features

S-parameter postprocessing

Offset Removal

offset can be removed from the impulse responses of s-parameters. This helps remove any tilt that occurs in the step response due to various problems with s-parameters (including DC point restoration).

Writing Waveforms as .csv

Waveforms can now be saved in .csv format as time, value. Closes #60

Speedups

Probe Calculation Control

To speed things up, probes can now be turned on and off. This allows probes to be placed into a schematic, but disabled until they are really needed for diagnosis or debugging.

Caching

Cached results have been trimmed to use less disk space and to open more quickly.

S-parameter Calculation

These are sped up using some more intricate linear algebra. It turns out that, at the time of my book writing, this simplification feature was already present in symbolic results, but was not carried over to numeric results. It was relatively easy to drop this optimization in. Basically the speedup is to essentially trim away parts of the network that are not interacting with ports at all, thus simplifying the computation.

Schematic Output

Schematics can now be saved as .png files.

Bug Fixes

Two-port Current Sources

A bug that caused the current direction to be invariant to the orientation of the part has been fixed.

Eye Diagrams

Jitter and Noise

Jitter and/or noise is now applied to eye diagrams, even when some (but not all) of the values are zero.

SI units

Engineering notation is no longer used with dB or dB-like units.

Reference Impedance Errors

These are now shown with an error message.

Calibration Standards Documentation

Updated to correctly document units for standards.

Opening S-Parameter Files

Previously, when opening an s-parameter file directly, if a project file was similarly named, it opened the project file. This is now fixed.

Caching fixes

Caching has been improved, especially when moving projects between Linux and Windows machines by properly sorting the netlist prior to generating the hash, and by maintaining the Linux style directory structure. In some projects, cached results were being constantly recalculated.

See Installation for installation instructions.