8.3.1.14. Port Layer-1

This module contains the Layer-1 classes that mainly deal auto-negotiation and link training on a Freya port.


class PL1_ANLT[source]

Bases: object

Added in version 2.5.

ANLT action

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

disable_anlt()

Disable ANLT.

enable_an_lt_auto()

Enable Autoneg + Link Training (auto).

enable_an_lt_interactive()

Enable Autoneg + Link Training (interactive).

enable_an_only()

Enable Autoneg only.

enable_lt_auto_only()

Enable Link Training (auto) only.

enable_lt_interactive_only()

Enable Link Training (interactive) only.

class PL1_AUTONEGINFO[source]

Bases: object

Added in version 2.0.

Warning

Still in beta mode. Subjected to changes

Get L1 auto-negotiation information. Information is split into a number of pages.

class GetDataAttr[source]

Bases: ResponseBodyStruct

duration_us

duration of the auto-negotiation in microseconds, from autoneg is enabled on the port to the negotiation is finished.

negotiation_fec_fail_count

number of negotiation FEC failures.

negotiation_hcd_fail_count

number of negotiation HCD (Highest Common Denominator) failures.

negotiation_loss_of_sync_count

number of negotiation Loss of Sync failures.

negotiation_success_count

number of negotiation successes.

negotiation_timeout_count

number of negotiation timeouts.

received number of Link Code Words (Base Pages).

rx_next_page_message_count

received number of Next Pages - Message Pages.

rx_next_page_unformatted_count

received number of Nex Pages - Unformatted Pages.

transmitted number of Link Code Words (Base Pages).

tx_next_page_message_count

transmitted number of Next Pages - Message Pages.

tx_next_page_unformatted_count

transmitted number of Nex Pages - Unformatted Pages.

get()[source]

Get L1 auto-negotiation information. Information is split into a number of pages.

Returns:

L1 auto-negotiation information

Return type:

PL1_AUTONEGINFO.GetDataAttr

class PL1_AUTONEG_ABILITIES[source]

Bases: object

Added in version 2.5.

Return the supported technology abilities, FEC abilities, and pause abilities of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

fec_modes_supported

supported FEC modes by the port. This returns a value in Hex of the format 0xH (8 bits). Each bit corresponds to FEC mode as shown below. A bit of 1 means the corresponding FEC mode is supported by the port.

pause_modes_supported

pause abilities supported by the port. This returns a value in Hex of the format 0xH (8 bits). Each bit corresponds to pause mode as shown below. A bit of 1 means the corresponding FEC mode is supported by the port.

tech_abilities_supported

supported technology abilities by the port. This returns a value in Hex of the format 0xHHHHHHHH (64 bits). Each bit corresponds to technology ability as shown below. A bit of 1 means the corresponding technology ability is supported by the port.

class PL1_AUTONEG_CONFIG[source]

Bases: object

Added in version 2.5.

Auto-negotiation configuration for Freya

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

class PL1_AUTONEG_STATUS[source]

Bases: object

Added in version 2.5.

Returns received technology abilities, FEC abilities, pause abilities, HCD technology ability, FEC mode result, and pause mode result.

class GetDataAttr[source]

Bases: ResponseBodyStruct

autoneg_state

Autoneg state

fec_mode_result

FEC mode negotiation result

mode

Autoneg mode

pause_mode_result

Pause mode negotiation result

received_fec_abilities

Received FEC capabilities from the remote port

received_pause_mode

Received pause capabilities from the remote port

received_tech_abilities

Received technology abilities from the remote port

tech_ability_hcd_status

HCD technology ability negotiation status

tech_ability_hcd_value

HCD technology ability negotiation result

class PL1_CFG_TMP[source]

Bases: object

Added in version 1.1.

Warning

Still in beta mode. Subjected to changes

Configure some L1 parameters.

class GetDataAttr[source]

Bases: ResponseBodyStruct

Data structure of the get response.

class SetDataAttr[source]

Bases: RequestBodyStruct

Data structure of the set action.

get()[source]

Get various L1 parameters

Returns:

various L1 parameters

Return type:

PL1_CFG_TMP.GetDataAttr

set(values)[source]

Get various L1 parameters

Parameters:

values (List[int]) – L1 parameters

class PL1_CTRL[source]

Bases: object

Added in version 2.5.

The Signal Integrity feature offers the equivalent of an Equivalent Time oscilloscope trace of the RX PAM4 signal (later, also PAM2). The trace is done with the A/D converter in the GTM receiver also doing the data sampling / CDR function, i.e. the trace is taken after the RX equalizer.

The HW characteristics of the Versal GTM used in Freya are: Trace length = 2000 samples, sample resolution = 7 bits 2’s complement, i.e. range = -64..63.

Using the sampled eye scan feature through CLI involves two steps:

Trigger the acquisition of a trace (PL1_CTRL)

Retrieve the trace data (PL1_GET_DATA)

This command is a generic control function related to Layer 1 / SERDES. For now, only used for signal integrity scan.

class SetDataAttr[source]

Bases: RequestBodyStruct

opcode

Operation code

set(opcode)[source]

Set the control command

Parameters:

opcode (Layer1Opcode) – operation code

class PL1_CWE_BIT_ERR_MASK[source]

Bases: object

Added in version 2.7.

Configure the bit error mask for the errored symbols.

class GetDataAttr[source]

Bases: ResponseBodyStruct

bitmask

bit error mask for the errored symbols, big endian, only 10 bits are effective.

mode

bit error mask mode.

class SetDataAttr[source]

Bases: RequestBodyStruct

bitmask

bit error mask for the errored symbols, big endian, only 10 bits are effective.

mode

bit error mask mode.

set_all_bits()

Set all bits to errored bits in an errored symbol.

set_no_bits()

Set no bits to errored bits in an errored symbol.

class PL1_CWE_CONTROL[source]

Bases: object

Added in version 2.7.

Control the FEC codeword error injection.

class GetDataAttr[source]

Bases: ResponseBodyStruct

action

Control action for FEC codeword error injection

class SetDataAttr[source]

Bases: RequestBodyStruct

action

Control action for FEC codeword error injection

set_start()

Start FEC codeword error injection.

set_stop()

Stop FEC codeword error injection.

class PL1_CWE_CYCLE[source]

Bases: object

Added in version 2.7.

Configure the FEC codeword error injection cycle.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cycle_len

The number of FEC codewords in the cycle, must be larger than 0 and an even number.

error_len

The number of consecutive errored FEC codewords in a cycle, must not be larger than cycle_len

loop

Loop count of the FEC codeword error injection cycle. <loop> == 0 means continuous.

class SetDataAttr[source]

Bases: RequestBodyStruct

cycle_len

The number of FEC codewords in the cycle, must be larger than 0 and an even number.

error_len

The number of consecutive errored FEC codewords in a cycle, must not be larger than cycle_len

loop

Loop count of the FEC codeword error injection cycle. <loop> == 0 means continuous.

set_continuous(cycle_len, error_len)

Set continuous loop

class PL1_CWE_ERR_SYM_INDICES[source]

Bases: object

Added in version 2.7.

Configure the positions of the errored symbols in errored codewords.

class GetDataAttr[source]

Bases: ResponseBodyStruct

error_sym_indices

the indices of the position of the errored symbols.

  • An empty list means there is no errored symbol in the errored codewords.

  • The indices in the list must not duplicate.

  • The indices in the list do not necessarily need to be sorted.

  • The maximum value of an index must not be larger than what the FEC schema allows, e.g. an index must not be larger than 543 for RS(544, 514).

class SetDataAttr[source]

Bases: RequestBodyStruct

error_sym_indices

the indices of the position of the errored symbols.

  • An empty list means there is no errored symbol in the errored codewords.

  • The indices in the list must not duplicate.

  • The indices in the list do not necessarily need to be sorted.

  • The maximum value of an index must not be larger than what the FEC schema allows, e.g. an index must not be larger than 543 for RS(544, 514).

class PL1_CWE_FEC_ENGINE[source]

Bases: object

Added in version 2.7.

Configure which FEC engines to use.

class GetDataAttr[source]

Bases: ResponseBodyStruct

bitmask

big endian.

  • the highest bit corresponds to FEC engine 4 (0x08)

  • the lowest bit corresponds to FEC engine 1 (0x01)

class SetDataAttr[source]

Bases: RequestBodyStruct

bitmask

big endian.

  • the highest bit corresponds to FEC engine 4 (0x08)

  • the lowest bit corresponds to FEC engine 1 (0x01)

set_all_engines()

Use all FEC engines

class PL1_CWE_FEC_STATS[source]

Bases: object

Added in version 2.7.

FEC error injection statistics.

class GetDataAttr[source]

Bases: ResponseBodyStruct

total_correctable_cw

Total injected correctable codewords.

total_cw

Total codewords transmitted.

total_error_free_cw

Total error-free codewords transmitted.

total_symbol_error

Total injected symbol errors.

total_uncorrectable_cw

Total uncorrectable codewords transmitted.

class PL1_CWE_FEC_STATS_CLEAR[source]

Bases: object

Added in version 2.7.

Clear FEC codeword injection TX stats

class SetDataAttr[source]

Bases: RequestBodyStruct

set()[source]

Clear FEC codeword injection TX stats

class PL1_GET_DATA[source]

Bases: object

Added in version 2.5.

The Signal Integrity feature offers the equivalent of an Equivalent Time oscilloscope trace of the RX PAM4 signal (later, also PAM2). The trace is done with the A/D converter in the GTM receiver also doing the data sampling / CDR function, i.e. the trace is taken after the RX equalizer.

The HW characteristics of the Versal GTM used in Freya are: Trace length = 2000 samples, sample resolution = 7 bits 2’s complement, i.e. range = -64..63.

Using the sampled eye scan feature through CLI involves two steps:

Trigger the acquisition of a trace (PL1_CTRL)

Retrieve the trace data (PL1_GET_DATA)

This command is a generic function to retrieve dynamic data related to Layer 1 / SERDES. For now, only used for signal integrity scan.

For func==0, sampled eye scan:

  • result==0: No data available.

    “No data available” means that either a scan was never started, an acquisition was started and in progress, or the acquired data has become too old (e.g. older than 500 ms). The acquisition time for a trace is in the very low ms-range. If result==0, sweep_no and age_us are dummy (=0), and no additional data are returned.

  • result==1: Data returned. In that case, the rest of the parameters apply:

    sweep_no: per-SERDES trace acquisition counter: 1,2,3… Each trace can be returned multiple times, to different users, within its lifetime. A new trace acquisition is triggered with the PL1_CTRL command.

    age_us: The “age” of the trace data in microseconds, i.e. the time from data acquisition from hardware was completed until the time the command reply data is generated.

    value: The rest of the reply is a set of 16 bit signed 2-complement sample values. With present hardware, the range of each sample is -64..63. In XMP scripting, each sample value is represented as two bytes, msb first.

    With present implementation, 2006 sample values (4012 bytes) are returned.

    The first 6 sample values are so-called “sampled levels”: <p1> <p2> < p3> <m1> <m2> <m3>

class GetDataAttr[source]

Bases: ResponseBodyStruct

age_us

the age of the trace data in microseconds, i.e. the time from data acquisition from hardware was completed until the time the command reply data is generated.

result

Data availability.

sweep_no

per-SERDES trace acquisition counter.

value

a set of 16 bit signed 2-complement sample values. With present hardware, the range of each sample is -64..63. In CLI scripting, each sample value is represented as two bytes, msb first.

class PL1_LINKTRAININFO[source]

Bases: object

Added in version 2.0.

Warning

Still in beta mode. Subjected to changes

Get L1 link training information. Information is per Serdes and split into a number of pages.

class GetDataAttr[source]

Bases: ResponseBodyStruct

duration_us

duration of the auto-negotiation process in microseconds, from autoneg is enabled on the port to the negotiation is finished.

frame_lock

frame lock status of the local end.

lock_lost_count

number of lost locks on auto-neg.

main_current_level

c(0) current level.

main_rx_coeff_at_limit_count

c(0) received number of coefficients at limit.

main_rx_coeff_eq_limit_reached_count

c(0) received number of maximum limits of coefficient and equalization requests reached.

main_rx_coeff_not_supported_count

c(0) received number of coefficients not supported.

main_rx_decrement_req_count

c(0) received number of decrement requests.

main_rx_eq_limit_reached_count

c(0) received number of maximum limits of equalization requests reached.

main_rx_increment_req_count

c(0) received number of increment requests.

main_tx_coeff_at_limit_count

c(0) transmitted number of coefficients at limit.

main_tx_coeff_eq_limit_reached_count

c(0) transmitted number of maximum limits of coefficient and equalization requests reached.

main_tx_coeff_not_supported_count

c(0) transmitted number of coefficients not supported.

main_tx_decrement_req_count

c(0) transmitted number of decrement requests.

main_tx_eq_limit_reached_count

c(0) transmitted number of maximum limits of equalization requests reached.

main_tx_increment_req_count

c(0) transmitted number of increment requests.

post1_current_level

c(1) current level.

post1_rx_coeff_at_limit_count

c(1) received number of coefficients at limit.

post1_rx_coeff_eq_limit_reached_count

c(1) received number of maximum limits of coefficient and equalization requests reached.

post1_rx_coeff_not_supported_count

c(1) received number of coefficients not supported.

post1_rx_decrement_req_count

c(1) received number of decrement requests.

post1_rx_eq_limit_reached_count

c(1) received number of maximum limits of equalization requests reached.

post1_rx_increment_req_count

c(1) received number of increment requests.

post1_tx_coeff_at_limit_count

c(1) transmitted number of coefficients at limit.

post1_tx_coeff_eq_limit_reached_count

c(1) transmitted number of maximum limits of coefficient and equalization requests reached.

post1_tx_coeff_not_supported_count

c(1) transmitted number of coefficients not supported.

post1_tx_decrement_req_count

c(1) transmitted number of decrement requests.

post1_tx_eq_limit_reached_count

c(1) transmitted number of maximum limits of equalization requests reached.

post1_tx_increment_req_count

c(1) transmitted number of increment requests.

prbs_total_bits_high

PRBS total bits (most significant 32-bit).

prbs_total_bits_low

PRBS total bits (least significant 32-bit).

prbs_total_error_bits_high

PRBS total error bits (most significant 32-bit, only bit 15-0 should be used).

prbs_total_error_bits_low

PRBS total error bits (least significant 32-bit).

pre1_current_level

c(-1) current level.

pre1_rx_coeff_at_limit_count

c(-1) received number of coefficients at limit.

pre1_rx_coeff_eq_limit_reached_count

c(-1) received number of maximum limits of coefficient and equalization requests reached.

pre1_rx_coeff_not_supported_count

c(-1) received number of coefficients not supported.

pre1_rx_decrement_req_count

c(-1) received number of decrement requests.

pre1_rx_eq_limit_reached_count

c(-1) received number of maximum limits of equalization requests reached.

pre1_rx_increment_req_count

c(-1) received number of increment requests.

pre1_tx_coeff_at_limit_count

c(-1) transmitted number of coefficients at limit.

pre1_tx_coeff_eq_limit_reached_count

c(-1) transmitted number of maximum limits of coefficient and equalization requests reached.

pre1_tx_coeff_not_supported_count

c(-1) transmitted number of coefficients not supported.

pre1_tx_decrement_req_count

c(-1) transmitted number of decrement requests.

pre1_tx_eq_limit_reached_count

c(-1) transmitted number of maximum limits of equalization requests reached.

pre1_tx_increment_req_count

c(-1) transmitted number of increment requests.

pre2_current_level

c(-2) current level.

pre2_rx_coeff_at_limit_count

c(-2) received number of coefficients at limit.

pre2_rx_coeff_eq_limit_reached_count

c(-2) received number of maximum limits of coefficient and equalization requests reached.

pre2_rx_coeff_not_supported_count

c(-2) received number of coefficients not supported.

pre2_rx_decrement_req_count

c(-2) received number of decrement requests.

pre2_rx_eq_limit_reached_count

c(-2) received number of maximum limits of equalization requests reached.

pre2_rx_increment_req_count

c(-2) received number of increment requests.

pre2_tx_coeff_at_limit_count

c(-2) transmitted number of coefficients at limit.

pre2_tx_coeff_eq_limit_reached_count

c(-2) transmitted number of maximum limits of coefficient and equalization requests reached.

pre2_tx_coeff_not_supported_count

c(-2) transmitted number of coefficients not supported.

pre2_tx_decrement_req_count

c(-2) transmitted number of decrement requests.

pre2_tx_eq_limit_reached_count

c(-2) transmitted number of maximum limits of equalization requests reached.

pre2_tx_increment_req_count

c(-2) transmitted number of increment requests.

pre3_current_level

c(-3) current level.

pre3_rx_coeff_at_limit_count

c(-3) received number of coefficients at limit.

pre3_rx_coeff_eq_limit_reached_count

c(-3) received number of maximum limits of coefficient and equalization requests reached.

pre3_rx_coeff_not_supported_count

c(-3) received number of coefficients not supported.

pre3_rx_decrement_req_count

c(-3) received number of decrement requests.

pre3_rx_eq_limit_reached_count

c(-3) received number of maximum limits of equalization requests reached.

pre3_rx_increment_req_count

c(-3) received number of increment requests.

pre3_tx_coeff_at_limit_count

c(-3) transmitted number of coefficients at limit.

pre3_tx_coeff_eq_limit_reached_count

c(-3) transmitted number of maximum limits of coefficient and equalization requests reached.

pre3_tx_coeff_not_supported_count

c(-3) transmitted number of coefficients not supported.

pre3_tx_decrement_req_count

c(-3) transmitted number of decrement requests.

pre3_tx_eq_limit_reached_count

c(-3) transmitted number of maximum limits of equalization requests reached.

pre3_tx_increment_req_count

c(-3) transmitted number of increment requests.

remote_frame_lock

frame lock status of the remote end.

get()[source]

Get L1 link training information. Information is per Serdes and split into a number of pages.

Returns:

L1 link training information

Return type:

PL1_LINKTRAININFO.GetDataAttr

class PL1_LINKTRAIN_CMD[source]

Bases: object

Added in version 1.1.

Warning

Still in beta mode. Subjected to changes

Link training RPC. Issue link training commands on a given serdes and poll for status

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

get()[source]

Get status of current command

Returns:

4 bytes: command, arg, result, flags

Return type:

PL1_LINKTRAIN_CMD.GetDataAttr

set(cmd, arg)[source]

Issue a link train command (cmd, arg)

class PL1_LINKTRAIN_CONFIG[source]

Bases: object

Added in version 2.5.

Per-port link training settings

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

class PL1_LINKTRAIN_STATUS[source]

Bases: object

Per-lane link training status

class GetDataAttr[source]

Bases: ResponseBodyStruct

failure

coded byte, failure type.

mode

coded byte, link training mode

status

coded byte, lane status.

get()[source]

Get link training status of a lane of a port.

Returns:

link training status of a lane of a port, including mode, lane status, and failure type.

Return type:

PP_LINKTRAINSTATUS.GetDataAttr

class PL1_LOG[source]

Bases: object

Added in version 2.0.

Warning

Still in beta mode. Subjected to changes

Return a log line of either AN or LT for the given Serdes. The log string line contains the latest 100 lines.

class GetDataAttr[source]

Bases: ResponseBodyStruct

log_string

ANLT log string

get()[source]

Return a log line of ANLT of all serdes on a port. (latest 100 lines)

Returns:

a log line from AN/LT for the given Serdes.

Return type:

PL1_LOG.GetDataAttr

class PL1_LT_PHYTXEQ_RANGE[source]

Bases: object

Added in version 2.9.

Configure the lower and the upper bound of transmit equalizer (native value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

class GetDataAttr[source]

Bases: ResponseBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.)

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

class SetDataAttr[source]

Bases: RequestBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.)

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

get()[source]

Get the lower and the upper bound of transmit equalizer (native value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

set(response, min, max)[source]

Set the lower and the upper bound of transmit equalizer (native value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

class PL1_LT_PHYTXEQ_RANGE_COEFF[source]

Bases: object

Added in version 2.9.

Configure the lower and the upper bound of transmit equalizer (IEEE coefficient value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

Whenever <response> == AUTO (the default), min and max will have their default values, which can be read with “get”. Any value that attempt to set the min and max when <response> == AUTO will be ignored by the chassis.

class GetDataAttr[source]

Bases: ResponseBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

class SetDataAttr[source]

Bases: RequestBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

get()[source]

Get the lower and the upper bound of transmit equalizer (IEEE coefficient value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

set(response, min, max)[source]

Set the lower and the upper bound of transmit equalizer (IEEE coefficient value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

class PL1_PCS_VARIANT[source]

Bases: object

Added in version 2.5.

PCS variant configuration.

class GetDataAttr[source]

Bases: ResponseBodyStruct

variant

PCS variant

class SetDataAttr[source]

Bases: RequestBodyStruct

variant

PCS variant

class PL1_PHYTXEQ[source]

Bases: object

Added in version 2.5.

Control and monitor the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage).

Note

PL1_PHYTXEQ, PL1_PHYTXEQ_LEVEL, and PL1_PHYTXEQ_COEFF facilitate the configuration and retrieval of TX tap values, each offering a unique perspective. Modifications made with any of these parameters will result in updates to the read results across all of them.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value.

post

integer, post tap value. Default = 0 (neutral)

pre

integer, pre tap value. Default = 0 (neutral)

pre2

integer, pre2 tap value. Default = 0 (neutral)

pre3

integer, pre3 tap value. Default = 0 (neutral)

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value.

post

integer, post tap value. Default = 0 (neutral)

pre

integer, pre tap value. Default = 0 (neutral)

pre2

integer, pre2 tap value. Default = 0 (neutral)

pre3

integer, pre3 tap value. Default = 0 (neutral)

class PL1_PHYTXEQ_COEFF[source]

Bases: object

Added in version 2.5.

Control and monitor the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage).

Note

PL1_PHYTXEQ, PL1_PHYTXEQ_LEVEL, and PL1_PHYTXEQ_COEFF facilitate the configuration and retrieval of TX tap values, each offering a unique perspective. Modifications made with any of these parameters will result in updates to the read results across all of them.

The following rules apply:

  • 0.5 approx. ≤ main ≤ 1

  • -0.4 approx ≤ post ≤ 0

  • -0.4 approx ≤ pre ≤ 0

  • 0 ≤ pre2 ≤ 0.25 approx.

  • -0.25 approx ≤ pre3 ≤ 0

  • The sum of the absolute value of each coefficients must be ≤ 1.

  • A sum of 1 corresponds to a TX output voltage swing of 1000 mVpp approximately.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value, positive, scaled by 1E3. Default = 1000

post

integer, post tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre

integer, pre tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre2

integer, pre2 tap value, positive, scaled by 1E3. Default = 0 (neutral)

pre3

integer, pre3 tap value, negative, scaled by 1E3. Default = 0 (neutral)

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value, positive, scaled by 1E3. Default = 1000

post

integer, post tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre

integer, pre tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre2

integer, pre2 tap value, positive, scaled by 1E3. Default = 0 (neutral)

pre3

integer, pre3 tap value, negative, scaled by 1E3. Default = 0 (neutral)

class PL1_PHYTXEQ_LEVEL[source]

Bases: object

Added in version 2.5.

Control and monitor the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage).

Note

PL1_PHYTXEQ, PL1_PHYTXEQ_LEVEL, and PL1_PHYTXEQ_COEFF facilitate the configuration and retrieval of TX tap values, each offering a unique perspective. Modifications made with any of these parameters will result in updates to the read results across all of them.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value in mV, ranges from 507 to 998.

post

integer, post tap value in dB/10, ranges from 0 to 187 Default = 0 (neutral)

pre

integer, pre tap value in dB/10, ranges from 0 to 187. Default = 0 (neutral)

pre2

integer, pre2 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

pre3

integer, pre3 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value in mV, ranges from 507 to 998.

post

integer, post tap value in dB/10, ranges from 0 to 187 Default = 0 (neutral)

pre

integer, pre tap value in dB/10, ranges from 0 to 187. Default = 0 (neutral)

pre2

integer, pre2 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

pre3

integer, pre3 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

class PL1_PRESET_CONFIG[source]

Bases: object

Added in version 2.9.

Configure the preset values (native values) of a serdes and the response to the received IC request.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value.

post

integer, post tap value. Default = 0 (neutral)

pre

integer, pre tap value. Default = 0 (neutral)

pre2

integer, pre2 tap value. Default = 0 (neutral)

pre3

integer, pre3 tap value. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value.

post

integer, post tap value. Default = 0 (neutral)

pre

integer, pre tap value. Default = 0 (neutral)

pre2

integer, pre2 tap value. Default = 0 (neutral)

pre3

integer, pre3 tap value. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

get()[source]

Get the preset values (native values) of a serdes and the response to the received IC request.

set(response, pre3, pre2, pre, main, post)[source]

Set the preset values (native values) of a serdes and the response to the received IC request.

class PL1_PRESET_CONFIG_COEFF[source]

Bases: object

Added in version 2.9.

Configure the preset values (IEEE coefficient values) of a serdes and the response to the received IC request.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value, positive, scaled by 1E3. Default = 1000

post

integer, post tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre

integer, pre tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre2

integer, pre2 tap value, positive, scaled by 1E3. Default = 0 (neutral)

pre3

integer, pre3 tap value, negative, scaled by 1E3. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value, positive, scaled by 1E3. Default = 1000

post

integer, post tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre

integer, pre tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre2

integer, pre2 tap value, positive, scaled by 1E3. Default = 0 (neutral)

pre3

integer, pre3 tap value, negative, scaled by 1E3. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

get()[source]

Get the preset values (IEEE coefficient values) of a serdes and the response to the received IC request.

set(response, pre3, pre2, pre, main, post)[source]

Set the preset values (IEEE coefficient values) of a serdes and the response to the received IC request.

class PL1_PRESET_CONFIG_LEVEL[source]

Bases: object

Added in version 2.9.

Configure the preset values (mV/dB values) of a serdes and the response to the received IC request.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value in mV, ranges from 507 to 998.

post

integer, post tap value in dB/10, ranges from 0 to 187 Default = 0 (neutral)

pre

integer, pre tap value in dB/10, ranges from 0 to 187. Default = 0 (neutral)

pre2

integer, pre2 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

pre3

integer, pre3 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value in mV, ranges from 507 to 998.

post

integer, post tap value in dB/10, ranges from 0 to 187 Default = 0 (neutral)

pre

integer, pre tap value in dB/10, ranges from 0 to 187. Default = 0 (neutral)

pre2

integer, pre2 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

pre3

integer, pre3 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

get()[source]

Get the preset values (mV/dB values) of a serdes and the response to the received IC request

set(response, pre3, pre2, pre, main, post)[source]

Set the preset values (mV/dB values) of a serdes and the response to the received IC request

class PL1_PRESET_RESET[source]

Bases: object

Added in version 2.9.

Reset the preset of the serdes to its default values.

class SetDataAttr[source]

Bases: RequestBodyStruct

set()[source]

Reset the preset of the serdes to its default values.