Releases: capn-freako/PyBERT
Fixed MMSE breakage.
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.
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
Full Changelog: v9.1.1...v9.1.2
Added Rx FFE and MMSE-based EQ optimization.
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
- 173 add ffe to rx by @capn-freako in #174
Full Changelog: v8.1.1...v9.1.1
Fixed a bug in Viterbi decoder.
Full Changelog: v8.1.0...v8.1.1
Added Viterbi Decoder
Update Instructions
-
Quick:
pip install --upgrade pipbert
Highlights
-
The native Rx model now has a Viterbi decoder.
- See this Jupyter notebook for a performance comparison to the existing DFE.
What's Changed
- 159 add requirementstxt target to build flow by @capn-freako in #165
- Bump tornado from 6.4.2 to 6.5.1 by @dependabot in #166
- Useful debugging residue. by @capn-freako in #167
- Bump requests from 2.32.3 to 2.32.4 by @dependabot in #169
- Bump urllib3 from 2.3.0 to 2.5.0 by @dependabot in #170
- 168 add a viterbi decoder to the native pybert rx model by @capn-freako in #171
Full Changelog: v7.2.3...v8.1.0
v7.2.3 - Fixed string parameter passing in PyIBIS-AMI.
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.
This "for developers only" release just cleans up some warts in the build infrastructure.
There are only these minor changes in functionality:
- Jitter analysis errors no longer block the completion of a simulation run.
- Additional PRBS types were added.
f_max
is now limited to the Nyquist frequency.- 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
Quick Start
From within an appropriate Python virtual environment:
pip install --upgrade pipbert
pybert
Documentation & Community
What's Changed
- Fixes broken eye diagram generation due to newly added channel noise. by @capn-freako in #156
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #158
Important Notes
-
Support for Python 3.9 has been dropped with this release.
- Python versions: 3.10, 3.11, and 3.12 are supported.
-
In keeping with current packaging standards, both the wheel and tarball files now use lower-case names.
-
This release requires PyIBIS-AMI >=7.2.
-
More robust handling of Rx IBIS-AMI model DFE adaptation has been added.
-
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
- 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.
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
-
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.
-
Adds Rx IBIS-AMI model use testing in all 3 modes:
Init()
,GetWave()
, no clocks, andGetWave()
with clocks.
-
Adds a user selector to the GUI, which allows for use of the clock times returned by
GetWave()
. -
Fixes a crash that occurred when the
Ignore_Bits
field was absent in the AMI file. -
Adds reporting of IBIS-AMI
GetWave()
DFE adaptation, when those parameter names are easily recognized as DFE tap weights. -
Expands the PyBERT native DFE to 20 taps, making use of the new optimizer interface to control their presence and granularity.
-
Cleaned up development infrastructure on Windows 10.
-
Added ${PROJ_INFO} as a
Makefile
target, to fix single-sourced versioning. -
Fixed missing post-DFE eye and faulty bathtub extrapolation.
-
Fixed bathtub curve generation.
-
Altered plot titles, for less visual clutter.
-
Increased lower y-limit of bathtubs to: 1e-12, reflecting the numerical accuracy limits of the code.
-
Fixed wonky bathtub curves in closed eye cases.
-
Changed scaling of impulse response plots to: V/samp.
-
Added Tx analog output impedance to channel calculation.
Notes for Developers
-
Added dual-Dirac Rj means to list of items returned by
calc_jitter()
, for use bymake_bathtub()
. -
Altered
make_bathtub()
to take Rj means as input and to not return extrapolation indices. -
Began capturing all output parameters from each GetWave() call.
-
Updated type stubs for
pyibisami
module.
New Linear EQ Optimizer
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
andfstep
. -
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 justmake
for a list of targets.)
- Now, exclusively
Note: With this release, we are dropping support for:
-
Python 3.8 and earlier.
-
Intel-based Macs.