:MEASure:EYE:TDEQ

Meas. mode:
Eye
Package License:
L-RND
L-MFG
Waveform type:
PAM4
Flex Apps:
FlexDCA
FlexRT

Command Syntax

:MEASure:EYE:TDEQ

Query Syntax

:MEASure:EYE:TDEQ?

Description

Performs a TDECQ measurement (Transmitter and Dispersion Eye Closure for PAM4) in Eye/Mask mode. The TDECQ measurement:

  • Measures the quality of an optical transmitter with its optical link.
  • Describes the optical power penalty of the measured optical transmitter compared to an ideal transmitter. It measures the increase of optical power required for the measured optical transmitter to achieve the same eye opening of the ideal optical transmitter.
  • The lower the TDEC measurement, the higher the quality of the measured transmitter.
  • For compliant PAM4 TDECQ measurements, add FlexDCA's TDECQ equalizer waveform signal processing operator as described below.

TDECQ is often used as a replacement for a Transmission Dispersion Penalty measurement. This measurement can be used with FlexDCA's Rapid Eye feature. If pattern lock is selected, ensure that Acquire Entire Pattern is selected.

Since the measurement is made on an eye diagram, the pattern itself can be of any type or length, such as PRBS31. The query form of the command returns the measured TDECQ. If the measurement is already on, the measurement listing is moved to the top of the displayed results table.

Measurement Identification

Avoid subtle programming errors! To ensure that the correct measurement is installed or queried, always explicitly identify a measurement when installing a measurement or querying a measured value, status, or detail. To identify a measurement, specify the measurement's source waveform (:SOURce child command). With some measurements, you may also need to specify other identifying values. Generally, when selecting a measurement using FlexDCA's GUI, if a dialog appears prompting you to select values, you should explicitly specify these values when remotely identifying the measurement. More information.

For example, to return the status of the measurement, :MEASure:EYE:TDEQ:

flex.write(':MEASure:EYE:TDEQ:SOURce CHAN1A')
if flex.query(':MEASure:EYE:TDEQ:STATus?') == 'CORR';
    measurement = flex.query(':MEASure:EYE:TDEQ?')
else:
	details = flex.query(':MEASure:EYE:TDEQ:STATus:DETails?')
	reason = flex.query(':MEASure:EYE:TDEQ:STATus:REASon?')

Child commands for measurement identification:

  • :MEASure:EYE:TDEQ:SOURce

Because the TDECQ and TDEC measurements call for a different bandwidth than the traditional bandwidths used by NRZ receiver mask testing, select the channel bandwidth using the :CHANnel:FSELect:BANDwidth and :CHANnel:SIRC:FBANdwidth commands, rather than the corresponding :CHANnel:FSELect:RATe and :CHANnel:SIRC:FRATe commands. When using the TDEC and TDECQ filters, the value returned by the :CHANnel:FSELect:RATe? and :CHANnel:SIRC:FRATe? queries will not correspond to the symbol rate.

The response from the :STATus:DETails? and :STATus:REASon? child queries are unique for the TDECQ and Noise Margin measurements, because you can query additional measurement information if a measurement correctly completes. For other measurements, the :STATus? queries only return information for measurements with errors.

For example if :MEASure:EYE:TDEQ:STATus? returns CORR, the :STATus:DETails? child returns a comma delimited string with additional measurement information as shown in this example:

"Left sigma: 26.6 mV rms,Right sigma: 26.6 mV rms,Equalizer noise enhancement: 0.8776,Intrinsic channel noise: 2.0 mV rms"

and the :STATus:REASon? child returns the first field of the above string:

"Left sigma: 26.6 mV rms"

TDECQ equalizer

When making TDECQ measurements, add FlexDCA's TDECQ equalizer waveform signal processing operator (:FUNCtion:FOPerator TEQualizer) for compliant PAM4 TDECQ measurements in Eye Mode. The TDECQ standard calls for the insertion of the TDECQ equalizer into the signal path. Noise preservation is built into the TDECQ operator. The steps required to configure the TDECQ equalizer and to run the measurement are included later in this topic. The TDECQ equalizer's noise preservation compensates for the filter function's side effect of reducing a signals noise for adjacent measurement points. Preserving noise causes the operator to quantify the noise on each point on the operator's input waveform and restore this noise on the corresponding data point on the output waveform. Although there is a preserve noise command (:SPRocess:TEQualizer:PNOise), it is permanently turned on and you cannot turn it off.

When the TDECQ measurement is started, the measurement runs the equalizer's automatic taps command (:SPRocess:TEQualizer:TAPS:AUTo). This determines equalizer tap values which result in the most evenly distributed eyes (levels). These are the "starting point" tap values for the equalizer's iterative optimization routine (:SPRocess:TEQualizer:TAPS:IOPTimize). The measurement continues based on the measured symbol Error Ratio (SER):

  • If the SER value is smaller than the target SER value, Iterative Optimization is performed and the TDECQ measurement is made.
  • If the SER value is larger than the target SER value and Optimize Histogram Times (:MEASure:TDEQ:OHTime) is on, SER? is reported and Iterative Optimization is not performed.
  • If the SER value is larger than the target SER value and Optimize Histogram Times is off, Iterative Optimization is attempted and the TDECQ measurement is made, if possible.

This Eye mode measurement can be applied to PAM4 waveforms but not NRZ waveforms.

Requires pattern lock.

Requires FlexDCA revision A.05.60 and above.

Related Commands

Histogram Adjustments
Description Range Default Value Command
Histogram Width 0.01 to 0.10 UI 0.04 UI :MEASure:TDEQ:HWIDth
Left Histogram Position 0.25 to 0.50 UI 0.45 UI :MEASure:TDEQ:LHTime
Right Histogram Position 0.50 to 0.75 UI 0.55 UI :MEASure:TDEQ:RHTime
Histogram Spacing 0 to 0.25 UI 0.10 UI :MEASure:TDEQ:OHSeparation

Measurement Ready?

To confirm that the measurement is ready to read, you can query the measurement's status:

if ('CORR' in Flex.query(':MEASure:EYE:TDEQ:STATus?')):
	measurement = Flex.query(':MEASure:EYE:TDEQ?')

If averaging is turned on (:ACQuire:AVERaging), you can also confirm if the measurement result is ready by comparing the number of specified averages (:ACQuire:ECOunt?) versus the number of measurement sweeps that have occurred (:MEASure:EYE:TDEQ:COUNt?). The technique uses the :COUNt? common measurement query. For example,

if (Flex.query(':MEASure:EYE:TDEQ:COUNt?') >= Flex.query(':ACQuire:ECOUNt?')):
	measurement = Flex.query(':MEASure:EYE:TDEQ?')

You can also use an acquisition limit lest to test that a number of waveform samples, or pattern acquisitions have completed before returning a measurement. Refer to the :LTESt:ACQuire:CTYPe command.

Common Measurement Child Queries

This command supports the use of the following common measurement queries: :LOCation?, :COUNt?, :MAXimum?, :MINimum?, :MEAN?, and :SDEViation?.

Example Command Sequence

:FUNCtion2:FOPerator TEQualizer
:SPRocess2:TEQualizer:PRESets "IEEE 802.3bs Draft 3.2"
:FUNCtion2:OPERand1 CHAN1A
:FUNCtion2:DISPlay ON
*OPC?
:MEASure:EYE:TDEQ:SOURce1 FUNCtion1
:MEASure:EYE:TDEQ