Skip to content

Reference

JESD parameterization definitions and helper functions.

jesd

JESD interface class to manage JESD notations and definitions.

CF: Union[int, float] property writable

Get Control words per frame clock period per link.

Returns:

Type Description
int

Control words per frame clock period per link

CS: Union[int, float] property writable

Get Control bits per conversion sample.

Returns:

Type Description
int

Control bits per conversion sample

D: Union[int, float] property readonly

FIXME.

F: Union[int, float] property writable

Get octets per frame per link.

Generally a power of 2

Returns:

Type Description
int

Number of octets per frame per link

F_available: List[int] property readonly

Allowable F settings for device.

Must be a list ints

Exceptions:

Type Description
NotImplementedError

If child classes do not implement method/property

HD: Union[int, float] property writable

Get High density mode.

Returns:

Type Description
int

High density mode

K: Union[int, float] property writable

Get Frames per multiframe.

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

Returns:

Type Description
int

Number of frames per multiframe

K_available: List[int] property readonly

Allowable K settings for device.

Must be a list ints

Exceptions:

Type Description
NotImplementedError

If child classes do not implement method/property

L: Union[int, float] property writable

Get lanes per link.

Generally a multiple of 2

Returns:

Type Description
int

Number of frames per multiframe

L_available: List[int] property readonly

Allowable L settings for device.

Must be a list ints

Exceptions:

Type Description
NotImplementedError

If child classes do not implement method/property

M: Union[int, float] property writable

Get number of virtual converters.

Generally a power of 2

Returns:

Type Description
int

Number of frames per multiframe

M_available: List[int] property readonly

Allowable M settings for device.

Must be a list ints

Exceptions:

Type Description
NotImplementedError

If child classes do not implement method/property

N: Union[int, float] property writable

Get number of non-dummy bits per sample.

Generally a multiple of 2

Returns:

Type Description
int

Number of non-dummy bits per sample

N_available: List[int] property readonly

Allowable N settings for device.

Must be a list ints

Exceptions:

Type Description
NotImplementedError

If child classes do not implement method/property

Np: Union[int, float] property writable

Get number of bits per sample.

Generally a multiple of 2

Returns:

Type Description
int

Number of bits per sample

Np_available: List[int] property readonly

Allowable Np settings for device.

Must be a list ints

Exceptions:

Type Description
NotImplementedError

If child classes do not implement method/property

S: Union[int, float] property writable

Get Samples per converter per frame.

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

Returns:

Type Description
int

Samples per converter per frame

available_jesd_modes: List[str] property readonly

Available JESD modes supported by device.

Must be a list of strings

Exceptions:

Type Description
NotImplementedError

If child classes do not implement method/property

bit_clock: Union[int, float] property writable

bit_clock: aka line rate aka lane rate.

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

Returns:

Type Description
int

Bits per second aka lane rate

bit_clock_max: Union[int, float] property readonly

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

Returns:

Type Description
int

bit clock in bits per second

bit_clock_min: Union[int, float] property readonly

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

Returns:

Type Description
int

bit clock in bits per second

data_path_width: Union[int, float] property writable

Get JESD data path width in bits.

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

Returns:

Type Description
int

Numerator of link encoding.

device_clock: Union[int, float] property readonly

device_clock is the lane rate over D.

device_clock == bit_clock / D

Returns:

Type Description
int

bits per second per device

encoding: str property writable

Get JESD FEC encoding.

Current options are: "8b10b", "64b66b"

Returns:

Type Description
str

String of supported encodings.

encoding_d: Union[int, float] property readonly

Get JESD FEC encoding denominator.

Current options are: 10 or 66

Returns:

Type Description
int

Denominator of link encoding.

encoding_n: Union[int, float] property readonly

Get JESD FEC encoding numerator.

Current options are: 8 or 64

Returns:

Type Description
int

Numerator of link encoding.

frame_clock: Union[int, float] property readonly

frame_clock in frames per second.

frame_clock == sample_clock / S

Returns:

Type Description
int

Data rate in samples per second

jesd_class: Union[str, List[str]] property writable

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

multiframe_clock: Union[int, float] property readonly

multiframe_clock: aka LMFC in frames per multiframe.

multiframe_clock == frame_clock / K

Returns:

Type Description
int

Frames per multiframe

sample_clock: Union[int, float] property writable

Data rate after decimation stages in Samples/second.

Returns:

Type Description
int

Data rate in samples per second

__init__(self, sample_clock: int, M: int, L: int, Np: int, K: int) -> None special

Initialize JESD device through link parameterization.

Parameters:

Name Type Description Default
sample_clock int

Human readable string describing the exception.

required
M int

Number of virtual converters

required
L int

Number of lanes

required
Np int

Number of bits per sample

required
K int

Frames per multiframe

required

get_jesd_config(self, solution: CpoSolveResult = None) -> Dict

Extract configurations from solver results.

Collect JESD related parameters, includes modes and clocks.

Parameters:

Name Type Description Default
solution CpoSolveResult

CPlex solution. Only needed for CPlex solver

None

Returns:

Type Description
Dict

Dictionary of JESD parameters

validate_clocks(self) -> None

Validate all clocks clock settings are within range.