Skip to content

Releases: capn-freako/PyBERT

Fixed user-defined impulse response length.

09 Sep 11:01
Compare
Choose a tag to compare

This is a substantial release.
And you should upgrade to it if you use PyBERT regularly.

In this release:

Function Call Signature Changes

- `calc_jitter()`
- `make_bathtub()`

General Usage Notes

  1. A minor bug was fixed, which prevented the user from manually setting the channel impulse response length.

    This feature is used when PyBERT's native impulse response trimming is inappropriate for some reason.

  2. Adds Rx IBIS-AMI model use testing in all 3 modes:

    • Init(),
    • GetWave(), no clocks, and
    • GetWave() with clocks.
  3. Adds a user selector to the GUI, which allows for use of the clock times returned by GetWave().

  4. Fixes a crash that occurred when the Ignore_Bits field was absent in the AMI file.

  5. Adds reporting of IBIS-AMI GetWave() DFE adaptation, when those parameter names are easily recognized as DFE tap weights.

  6. Expands the PyBERT native DFE to 20 taps, making use of the new optimizer interface to control their presence and granularity.

  7. Cleaned up development infrastructure on Windows 10.

  8. Added ${PROJ_INFO} as a Makefile target, to fix single-sourced versioning.

  9. Fixed missing post-DFE eye and faulty bathtub extrapolation.

  10. Fixed bathtub curve generation.

  11. Altered plot titles, for less visual clutter.

  12. Increased lower y-limit of bathtubs to: 1e-12, reflecting the numerical accuracy limits of the code.

  13. Fixed wonky bathtub curves in closed eye cases.

  14. Changed scaling of impulse response plots to: V/samp.

  15. Added Tx analog output impedance to channel calculation.

Notes for Developers

  1. Added dual-Dirac Rj means to list of items returned by calc_jitter(), for use by make_bathtub().

  2. Altered make_bathtub() to take Rj means as input and to not return extrapolation indices.

  3. Began capturing all output parameters from each GetWave() call.

  4. Updated type stubs for pyibisami module.

New Linear EQ Optimizer

14 Jun 20:34
Compare
Choose a tag to compare

This release includes:

  • Pip installable!

    • Anaconda / MiniConda are no longer required to install and run PyBERT. :)
  • A completely re-tooled linear EQ optimizer.

    • The optimizer now does an exhaustive sweep, according to granularities set by the user, just like COM.
    • Optimizer performance has been dramatically improved.
  • Expanded Tx de-emphasis (6 taps).

  • Expanded Rx DFE (20 taps).

  • Direct manual control over frequency domain processing, via: fmax and fstep.

  • User control over S-parameter channel file windowing and port number correction.

  • Support for Python 3.9, 10, 11, and 12.

  • Improved development infrastructure.

    • Now, exclusively make driven.
      (Try just make for a list of targets.)

Note: With this release, we are dropping support for:

  • Python 3.8 and earlier.

  • Intel-based Macs.

Dual-Dirac Jitter Modeling & Updated GUI Machinery

21 Dec 12:27
b02f447
Compare
Choose a tag to compare

This release:

  • Adds ability to abort a running simulation.
  • Fixed the case where no AMI parameters are output by a model.
  • Update license to be exactly BSD-3 and correctly recognized by GitHub as such.
  • Adapted to recent change to exclusive SI units usage by SciKit-RF.
  • Added dual-Dirac Pj/Rj jitter separation.
  • Updated to use new releases of Chaco/Enable packages (v6.0.0).

Single Source Versioning

23 Apr 12:56
1559923
Compare
Choose a tag to compare

This release creates a single source (the pyproject.toml file) for version information, for both PyBERT/PyIBIS-AMI and their dependencies.

Before this release, version strings in 3 different places had to be manually kept in synch.:

  • the pyproject.toml file,
  • the meta.yaml file, and
  • the <pkg>/__init__.py file.

This was a big headache for developers and cost many unnecessary rebuilds.

As of this release, version strings are only maintained in the pyproject.toml file, both for PyBERT/PyIBIS-AMI and dependencies.

Note: There is one exception to this: the qt package has its version specifier: ">=5", still in the meta.yaml files of any packages dependent upon it.
This is because PyPi doesn't provide a binary release for the Qt package.
And, therefore, putting its version specifier in the pyproject.toml file will break the build.

Many thanks to David Patterson for catching this!

Brought conda-build infrastructure up to date.

04 Apr 19:38
Compare
Choose a tag to compare

Modern Python Packaging & Pip Support

13 Feb 12:23
Compare
Choose a tag to compare

This release brings the code structure and package building/distribution methodology of both the PyBERT & PyIBIS-AMI packages up-to-date w/ current Python community best practice standards.

It also adds support for pip based installation, although this is currently only recommended for new Apple MacBooks w/ the M1/M2 silicon.

Note: As per the bump in the major revision number ("3" to "4"), this release may potentially break pre-existing client code.
Typically, such breakages are easy to fix, by just changing the name of an imported module.

IBIS v7.1 Reserved Parameters

25 Sep 23:28
Compare
Choose a tag to compare

This release brings reserved AMI parameter parsing up to date with version 7.1 of the IBIS specification.

Note that not all reserved parameters are being faithfully implemented, yet.

Release v3.5.5

19 Feb 00:13
Compare
Choose a tag to compare

This release of PyBERT/PyAMI fixes some fragilities in the AMI parameter parser, which were originally found by Simon Fau.

v3.5.4

10 Jan 01:36
Compare
Choose a tag to compare

This release just adds a new module for parsing the output of HSPICE simulations: pybert.hspice_parser.

Rel. v3.5.3

05 Jan 23:56
Compare
Choose a tag to compare

Further improvements to on-die S-parameter handling.