JESD204 Reference

JESD parameterization definitions and helper functions.

class adijif.jesd.jesd(sample_clock: int, M: int, L: int, Np: int, K: int)

Bases: object

JESD interface class to manage JESD notations and definitions.

property CF: int | float

Get Control words per frame clock period per link.

Returns:

int: Control words per frame clock period per link

property CS: int | float

Get Control bits per conversion sample.

Returns:

int: Control bits per conversion sample

property D: int | float

FIXME.

property F: int | float

Get octets per frame per link.

Generally a power of 2

Returns:

int: Number of octets per frame per link

abstract property F_available: List[int]

Allowable F settings for device.

Must be a list ints

Raises:

NotImplementedError: If child classes do not implement method/property

property HD: int | float

Get High density mode.

Returns:

int: High density mode

property K: int | float

Get Frames per multiframe.

17/F <= K <= 32, is generally a multiple of 2

Returns:

int: Number of frames per multiframe

abstract property K_available: List[int]

Allowable K settings for device.

Must be a list ints

Raises:

NotImplementedError: If child classes do not implement method/property

property L: int | float

Get lanes per link.

Generally a multiple of 2

Returns:

int: Number of frames per multiframe

abstract property L_available: List[int]

Allowable L settings for device.

Must be a list ints

Raises:

NotImplementedError: If child classes do not implement method/property

property M: int | float

Get number of virtual converters.

Generally a power of 2

Returns:

int: Number of frames per multiframe

abstract property M_available: List[int]

Allowable M settings for device.

Must be a list ints

Raises:

NotImplementedError: If child classes do not implement method/property

property N: int | float

Get number of non-dummy bits per sample.

Generally a multiple of 2

Returns:

int: Number of non-dummy bits per sample

abstract property N_available: List[int]

Allowable N settings for device.

Must be a list ints

Raises:

NotImplementedError: If child classes do not implement method/property

property Np: int | float

Get number of bits per sample.

Generally a multiple of 2

Returns:

int: Number of bits per sample

abstract property Np_available: List[int]

Allowable Np settings for device.

Must be a list ints

Raises:

NotImplementedError: If child classes do not implement method/property

property S: int | float

Get Samples per converter per frame.

S == F/(M*Np) * encoding_p * L

Returns:

int: Samples per converter per frame

abstract property available_jesd_modes: List[str]

Available JESD modes supported by device.

Must be a list of strings

Raises:

NotImplementedError: If child classes do not implement method/property

property bit_clock: int | float

bit_clock: aka line rate aka lane rate.

bit_clock == (M * S * Np * encoding_d/encoding_n * frame_clock) / L

Returns:

int: Bits per second aka lane rate

property bit_clock_max: int | float

Get bit clock (lane rate) maximum based on JESD mode.

Returns:

int: bit clock in bits per second

property bit_clock_min: int | float

Get bit clock (lane rate) minimum based on JESD mode.

Returns:

int: bit clock in bits per second

property data_path_width: int | float

Get JESD data path width in bits.

Current options are: 32 (204B) and 64 (204C)

Returns:

int: Numerator of link encoding.

property device_clock: int | float

device_clock is the lane rate over D.

device_clock == bit_clock / D

Returns:

int: bits per second per device

property encoding: str

Get JESD FEC encoding.

Current options are: “8b10b”, “64b66b”

Returns:

str: String of supported encodings.

property encoding_d: int | float

Get JESD FEC encoding denominator.

Current options are: 10 or 66

Returns:

int: Denominator of link encoding.

property encoding_n: int | float

Get JESD FEC encoding numerator.

Current options are: 8 or 64

Returns:

int: Numerator of link encoding.

property frame_clock: int | float

frame_clock in frames per second.

frame_clock == sample_clock / S

Returns:

int: Data rate in samples per second

get_jesd_config(solution: CpoSolveResult | None = None) Dict

Extract configurations from solver results.

Collect JESD related parameters, includes modes and clocks.

Args:

solution (CpoSolveResult): CPlex solution. Only needed for CPlex solver

Returns:

Dict: Dictionary of JESD parameters

property jesd_class: str | List[str]

Get JESD selected mode. Wil be either jesd204b or jesd204c.

property multiframe_clock: int | float

multiframe_clock: aka LMFC in frames per multiframe.

multiframe_clock == frame_clock / K

Returns:

int: Frames per multiframe

property sample_clock: int | float

Data rate after decimation stages in Samples/second.

Returns:

int: Data rate in samples per second

validate_clocks() None

Validate all clocks clock settings are within range.