.channel - Channel Modeling Utilities

Channel modeling utilities for PyBERT.

Original author: David Banas <capn.freako@gmail.com>

Original date: June 16, 2024

Copyright (c) 2024 David Banas; all rights reserved World wide.

A partial extraction of the old pybert/utility.py, as part of a refactoring.

pybert.utility.channel.calc_G(H: numpy.typing.NDArray.~Comp, Rs: float, Cs: float, Zc: numpy.typing.NDArray.~Comp, RL: float, Cp: float, ws: numpy.typing.NDArray.~Real) numpy.typing.NDArray.~Comp[source]

Calculates fully loaded transfer function of complete channel.

Parameters:
  • H – unloaded transfer function of interconnect

  • Rs – source series resistance (differential) (Ohms)

  • Cs – source parallel (parasitic) capacitance (single ended) (Farads)

  • Zc – frequency dependent characteristic impedance of the interconnect (Ohms)

  • RL – load resistance (differential) (Ohms)

  • Cp – load parallel (parasitic) capacitance (single ended) (Farads)

  • ws – frequency sample points vector (rads./s)

Returns:

Transfer function of fully loaded channel

pybert.utility.channel.calc_gamma(R0: float, w0: float, Rdc: float, Z0: float, v0: float, Theta0: float, ws: numpy.typing.NDArray.~Real) tuple[numpy.typing.NDArray.~Comp, numpy.typing.NDArray.~Comp][source]

Calculates the propagation constant from cross-sectional parameters.

The formula’s applied are taken from Howard Johnson’s “Metallic Transmission Model” (See “High Speed Signal Propagation”, Sec. 3.1.)

Parameters:
  • R0 – skin effect resistance (Ohms/m)

  • w0 – cross-over freq. (rads./s)

  • Rdc – d.c. resistance (Ohms/m)

  • Z0 – characteristic impedance in LC region (Ohms)

  • v0 – propagation velocity (m/s)

  • Theta0 – loss tangent

  • ws – frequency sample points vector (rads./s)

Returns:

A pair consisting of frequency dependent

  • propagation constant, and

  • characteristic impedance.

pybert.utility.channel.calc_gamma_RLGC(R: float, L: float, G: float, C: float, ws: numpy.typing.NDArray.~Real) tuple[numpy.typing.NDArray.~Comp, numpy.typing.NDArray.~Comp][source]

Calculates the propagation constant from R, L, G, and C.

Parameters:
  • R – resistance per unit length (Ohms/m)

  • L – inductance per unit length (Henrys/m)

  • G – conductance per unit length (Siemens/m)

  • C – capacitance per unit length (Farads/m)

  • ws – frequency sample points vector (rads./s)

Returns:

A pair consisting of frequency dependent

  • propagation constant, and

  • characteristic impedance.