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 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 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 multiframe_clock: int | float
multiframe_clock: aka LMFC in frames per multiframe.
multiframe_clock == frame_clock / K
- Returns:
int: Frames per multiframe