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.