Skip to content

Releases: capn-freako/PyBERT

Fixed MMSE breakage.

24 Jul 22:27
Compare
Choose a tag to compare

General Description

MMSE EQ optimization got broken by a silly error in v9.1.2.
This release just fixes that.

Quick Update

pip install --upgrade pipbert

Detailed Instructions

Full Changelog: v9.1.2...v9.1.3

Fixed Viterbi decoder input routing.

23 Jul 22:36
Compare
Choose a tag to compare

General Description

This release just fixes the input routing of the Viterbi decoder.
(It was taking the CTLE output. Now it takes the FFE output.)

Quick Update

pip install --upgrade pipbert

Detailed Instructions

Instant Gratification

Full Changelog: v9.1.1...v9.1.2

Added Rx FFE and MMSE-based EQ optimization.

21 Jul 14:11
Compare
Choose a tag to compare

General Description

With the addition of an Rx FFE and MMSE-based EQ optimization, this release is intended to pave the way for a native Rx model that is compliant to the coming extension to the Ethernet standard embodied in P802.3dj, scheduled for ratification sometime next year.

Quick Update

pip install --upgrade pipbert

Detailed Setup Instructions

What's Changed

Full Changelog: v8.1.1...v9.1.1

Fixed a bug in Viterbi decoder.

27 Jun 22:06
Compare
Choose a tag to compare

Added Viterbi Decoder

22 Jun 14:44
Compare
Choose a tag to compare

Update Instructions

  • Quick: pip install --upgrade pipbert

  • Detailed

Highlights

  1. The native Rx model now has a Viterbi decoder.

What's Changed

Full Changelog: v7.2.3...v8.1.0

v7.2.3 - Fixed string parameter passing in PyIBIS-AMI.

01 May 21:37
Compare
Choose a tag to compare

What's Changed

  • Removed all assertions from code base, replacing with explicit except… by @capn-freako in #162
  • Added explicit double-quotes around AMI parameters of type: String. by @capn-freako in #164

Full Changelog: v7.2.2...v7.2.3

Build infrastructure cleanup.

06 Apr 19:07
Compare
Choose a tag to compare

This "for developers only" release just cleans up some warts in the build infrastructure.

There are only these minor changes in functionality:

  1. Jitter analysis errors no longer block the completion of a simulation run.
  2. Additional PRBS types were added.
  3. f_max is now limited to the Nyquist frequency.
  4. The user is alerted if Nbits is insufficient to cover the pattern length chosen.

Full Changelog: v7.2.0...v7.2.2

v7.2.0

18 Mar 20:37
Compare
Choose a tag to compare

Quick Start

From within an appropriate Python virtual environment:

  • pip install --upgrade pipbert
  • pybert

Documentation & Community

What's Changed

Important Notes

  1. Support for Python 3.9 has been dropped with this release.

    • Python versions: 3.10, 3.11, and 3.12 are supported.
  2. In keeping with current packaging standards, both the wheel and tarball files now use lower-case names.

  3. This release requires PyIBIS-AMI >=7.2.

  4. More robust handling of Rx IBIS-AMI model DFE adaptation has been added.

  5. Independent system time/frequency vectors has been abandoned.

    • Now, either serves as a correct index for the result of Fourier transforming a quantity properly indexed by the other.

Removed Functions

  1. The pybert.utility.sparam.renorm_s2p() function was unused and has been removed.

Full Changelog: v6.2.1...v7.2.0

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.