ngscopeclient 0.1-dev+51fbda87c
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members

Base class for bit error rate tester drivers. More...

#include <BERT.h>

Inheritance diagram for BERT:
Inheritance graph
[legend]
Collaboration diagram for BERT:
Collaboration graph
[legend]

Public Types

enum  Pattern {
  PATTERN_PRBS7 , PATTERN_PRBS9 , PATTERN_PRBS11 , PATTERN_PRBS15 ,
  PATTERN_PRBS23 , PATTERN_PRBS31 , PATTERN_CUSTOM , PATTERN_CLOCK_DIV2 ,
  PATTERN_CLOCK_DIV32 , PATTERN_AUTO
}
 Set of patterns we can generate or accept. More...
 
- Public Types inherited from Instrument
enum  InstrumentTypes {
  INST_OSCILLOSCOPE = 0x01 , INST_DMM = 0x02 , INST_PSU = 0x04 , INST_FUNCTION = 0x08 ,
  INST_RF_GEN = 0x10 , INST_LOAD = 0x20 , INST_BERT = 0x40 , INST_MISC = 0x80 ,
  INST_SWITCH_MATRIX = 0x100
}
 

Public Member Functions

virtual unsigned int GetInstrumentTypes () const override
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual Pattern GetTxPattern (size_t i)=0
 Gets the currently selected transmit pattern for a channel. More...
 
virtual void SetTxPattern (size_t i, Pattern pattern)=0
 Sets the transmit pattern for the selected channel. More...
 
virtual std::vector< PatternGetAvailableTxPatterns (size_t i)=0
 Gets the list of available transmit patterns for a channel. More...
 
virtual bool IsCustomPatternPerChannel ()=0
 Determines whether custom patterns are settable per channel, or shared by the whole device. More...
 
virtual size_t GetCustomPatternLength ()=0
 Returns the number of bits in a custom pattern (may change with line rate) More...
 
virtual void SetGlobalCustomPattern (uint64_t pattern)=0
 Sets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) More...
 
virtual uint64_t GetGlobalCustomPattern ()=0
 Gets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) More...
 
virtual bool GetTxInvert (size_t i)=0
 Gets the transmit invert flag for a channel. More...
 
virtual void SetTxInvert (size_t i, bool invert)=0
 Sets the transmit invert flag for a channel. More...
 
virtual std::vector< float > GetAvailableTxDriveStrengths (size_t i)=0
 Gets the list of available drive strengths (in volts) for a channel. More...
 
virtual float GetTxDriveStrength (size_t i)=0
 Get the drive strength for a channel. More...
 
virtual void SetTxDriveStrength (size_t i, float drive)=0
 Set the drive strength for a channel. More...
 
virtual void SetTxEnable (size_t i, bool enable)=0
 Sets the transmit enable flag for a channel. More...
 
virtual bool GetTxEnable (size_t i)=0
 Gets the transmit enable flag for a channel. More...
 
virtual float GetTxPreCursor (size_t i)=0
 Get the pre-cursor equalizer tap for a channel. More...
 
virtual void SetTxPreCursor (size_t i, float precursor)=0
 Set the pre-cursor equalizer tap for a channel. More...
 
virtual float GetTxPostCursor (size_t i)=0
 Get the post-cursor equalizer tap for a channel. More...
 
virtual void SetTxPostCursor (size_t i, float postcursor)=0
 Set the post-cursor equalizer tap for a channel. More...
 
virtual bool GetRxInvert (size_t i)=0
 Gets the transmit invert flag for a channel. More...
 
virtual void SetRxInvert (size_t i, bool invert)=0
 Sets the receive invert flag for a channel. More...
 
virtual bool GetRxCdrLockState (size_t i)=0
 Gets the RX CDR lock state (true=lock, false=unlock) More...
 
virtual bool HasRxCTLE ()=0
 Determines whether the input buffer has a continuous-time linear equalizer. More...
 
virtual std::vector< float > GetRxCTLEGainSteps ()=0
 Get the list of available RX CTLE gain values (in dB) More...
 
virtual size_t GetRxCTLEGainStep (size_t i)=0
 Gets the currently selected RX CTLE gain index. More...
 
virtual void SetRxCTLEGainStep (size_t i, size_t step)=0
 Sets the RX CTLE gain index. More...
 
virtual Pattern GetRxPattern (size_t i)=0
 Gets the currently selected receive pattern for a channel. More...
 
virtual void SetRxPattern (size_t i, Pattern pattern)=0
 Sets the receive pattern for the selected channel. More...
 
virtual std::vector< PatternGetAvailableRxPatterns (size_t i)=0
 Gets the list of available receive patterns for a channel. More...
 
virtual int64_t GetExpectedBathtubCaptureTime (size_t i)
 Returns the expected time, in femtoseconds, to complete a bathtub scan with the current settings. More...
 
virtual int64_t GetExpectedEyeCaptureTime (size_t i)
 Returns the expected time, in femtoseconds, to complete an eye scan with the current settings. More...
 
virtual void MeasureHBathtub (size_t i)=0
 Acquires a bathtub curve. More...
 
virtual void MeasureEye (size_t i)=0
 Acquires an eye pattern. More...
 
virtual void SetBERIntegrationLength (int64_t uis)=0
 Set the integration period for BER measurements. More...
 
virtual int64_t GetBERIntegrationLength ()=0
 Get the integration period for BER measurements. More...
 
virtual void SetBERSamplingPoint (size_t i, int64_t dx, float dy)=0
 Set the sampling point for BER measurements. More...
 
virtual void GetBERSamplingPoint (size_t i, int64_t &dx, float &dy)=0
 Get the sampling point for BER measurements. More...
 
virtual bool IsHBathtubScanInProgress (size_t i)
 Returns true if a horizontal bathtub scan is in progress. More...
 
virtual bool IsEyeScanInProgress (size_t i)
 Returns true if an eye scan is in progress. More...
 
virtual float GetScanProgress (size_t i)
 Gets the estimated completion status (0-1) of the current scan. More...
 
virtual bool HasConfigurableScanDepth ()
 Determines whether this instrument has configurable integration depth for eye / bathtub scans. More...
 
virtual std::vector< int64_t > GetScanDepths (size_t i)
 Returns the list of integration depths for eye / bathtub scans. More...
 
virtual int64_t GetScanDepth (size_t i)
 Get the configured scan depth for a channel, in UIs per sample/pixel. More...
 
virtual void SetScanDepth (size_t i, int64_t depth)
 Set the configured scan depth for a channel. More...
 
virtual bool HasRefclkIn ()=0
 Returns true if this instrument has a reference clock input port. More...
 
virtual bool HasRefclkOut ()=0
 Returns true if this instrument has a reference clock output port. More...
 
virtual size_t GetRefclkOutMux ()=0
 Gets the currently selected reference clock output mux setting. More...
 
virtual void SetRefclkOutMux (size_t i)=0
 Sets the reference clock output mux. More...
 
virtual std::vector< std::string > GetRefclkOutMuxNames ()=0
 Gets the list of available reference clock mux settings. More...
 
virtual int64_t GetRefclkOutFrequency ()=0
 Gets the currently selected refclk out frequency, in Hz. More...
 
virtual int64_t GetRefclkInFrequency ()=0
 Gets the refclk in frequency, in Hz, required to generate the currently selected data rate. More...
 
virtual bool IsDataRatePerChannel ()=0
 Determines whether the TX/RX clock is a per-instrument or per-channel setting. More...
 
virtual int64_t GetDataRate (size_t i)=0
 Gets the currently selected line rate (in symbols/sec) More...
 
virtual void SetDataRate (size_t i, int64_t rate)=0
 Sets the data rate (in symbols/sec) More...
 
virtual std::vector< int64_t > GetAvailableDataRates ()=0
 Gets the list of available data rates, in symbols/sec. More...
 
virtual void SetUseExternalRefclk (bool external)=0
 Sets the reference clock source (internal or external) More...
 
virtual bool GetUseExternalRefclk ()=0
 Sets the reference clock source. More...
 
- Public Member Functions inherited from Instrument
virtual unsigned int GetInstrumentTypes () const =0
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual std::string GetName () const =0
 
virtual std::string GetVendor () const =0
 
virtual std::string GetSerial () const =0
 
virtual std::string GetTransportConnectionString ()=0
 Gets the connection string for our transport. More...
 
virtual std::string GetTransportName ()=0
 Gets the name of our transport. More...
 
virtual uint32_t GetInstrumentTypesForChannel (size_t i) const =0
 Returns a bitfield describing the set of instrument types that a given channel supports. More...
 
size_t GetChannelCount () const
 Gets the number of channels (of any type) this instrument has.
 
InstrumentChannelGetChannel (size_t i) const
 Gets a given channel on the instrument. More...
 
virtual std::string GetChannelDisplayName (size_t i)
 Gets the hardware display name for a channel. This is an arbitrary user-selected string. More...
 
virtual void SetChannelDisplayName (size_t i, std::string name)
 Sets the hardware display name for a channel. This is an arbitrary user-selected string. More...
 
InstrumentChannelGetChannelByDisplayName (const std::string &name)
 Gets a channel given the display name.
 
InstrumentChannelGetChannelByHwName (const std::string &name)
 Gets a channel given the hardware name.
 
virtual bool AcquireData ()=0
 Pull data from the instrument. More...
 
virtual YAML::Node SerializeConfiguration (IDTable &table) const
 Serializes this instrument's configuration to a YAML node. More...
 
virtual void LoadConfiguration (int version, const YAML::Node &node, IDTable &idmap)
 Load instrument and channel configuration from a save file. More...
 
virtual void PreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &warnings)
 Parse a limited subset of instrument configuration but do not apply it. More...
 

Static Public Member Functions

static std::string GetPatternName (Pattern pat)
 Converts a Pattern enum into a strnig. More...
 
static Pattern GetPatternOfName (std::string name)
 Converts a string name into a Pattern enum. More...
 

Protected Member Functions

void DoSerializeConfiguration (YAML::Node &node, IDTable &table)
 Serializes this BERT's configuration to a YAML node. More...
 
void DoLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap)
 Load instrument and channel configuration from a save file. More...
 
void DoPreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list)
 Validate instrument and channel configuration from a save file. More...
 

Additional Inherited Members

- Public Attributes inherited from Instrument
std::string m_nickname
 Optional user-selected nickname of the instrument. More...
 
- Protected Attributes inherited from Instrument
std::list< sigc::slot< void(YAML::Node &, IDTable &)> > m_serializers
 List of methods which need to be called to serialize this node's configuration.
 
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &)> > m_loaders
 List of methods which need to be called to deserialize this node's configuration.
 
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &, ConfigWarningList &)> > m_preloaders
 List of methods which need to be called to pre-load this node's configuration.
 
std::vector< InstrumentChannel * > m_channels
 Set of all channels on this instrument.
 

Detailed Description

Base class for bit error rate tester drivers.

Member Enumeration Documentation

◆ Pattern

Set of patterns we can generate or accept.

Enumerator
PATTERN_PRBS7 

Standard PRBS-7 x^7 + x^6 + 1.

PATTERN_PRBS9 

Standard PRBS-9 x^9 + x^5 + 1.

PATTERN_PRBS11 

Standard PRBS-11 x^11 + x^9 + 1.

PATTERN_PRBS15 

Standard PRBS-15 x^15 + x^14 + 1.

PATTERN_PRBS23 

Standard PRBS-23 x^23 + x^18 + 1.

PATTERN_PRBS31 

Standard PRBS-31 x^31 + x^28 + 1.

PATTERN_CUSTOM 

Custom output pattern (not valid for input)

PATTERN_CLOCK_DIV2 

Clock at half the symbol rate (1-0-1-0 pattern)

PATTERN_CLOCK_DIV32 

Clock at 1/32 the symbol rate (16 0s followed by 16 1s)

PATTERN_AUTO 

Autodetect input pattern (not valid for output)

Member Function Documentation

◆ DoLoadConfiguration()

void BERT::DoLoadConfiguration ( int  version,
const YAML::Node &  node,
IDTable idmap 
)
protected

Load instrument and channel configuration from a save file.

Parameters
versionFile format version
nodeOutput node
tableTable of IDs

◆ DoPreLoadConfiguration()

void BERT::DoPreLoadConfiguration ( int  version,
const YAML::Node &  node,
IDTable idmap,
ConfigWarningList list 
)
protected

Validate instrument and channel configuration from a save file.

Parameters
versionFile format version
nodeOutput node
tableTable of IDs
listList of warnings generated by the pre-load process

◆ DoSerializeConfiguration()

void BERT::DoSerializeConfiguration ( YAML::Node &  node,
IDTable table 
)
protected

Serializes this BERT's configuration to a YAML node.

Parameters
nodeOutput node
tableTable of IDs

◆ GetAvailableDataRates()

virtual std::vector< int64_t > BERT::GetAvailableDataRates ( )
pure virtual

Gets the list of available data rates, in symbols/sec.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetAvailableRxPatterns()

virtual std::vector< Pattern > BERT::GetAvailableRxPatterns ( size_t  i)
pure virtual

Gets the list of available receive patterns for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetAvailableTxDriveStrengths()

virtual std::vector< float > BERT::GetAvailableTxDriveStrengths ( size_t  i)
pure virtual

Gets the list of available drive strengths (in volts) for a channel.

Drive strength is nominal p-p swing with full main cursor tap and pre/post cursors at zero.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetAvailableTxPatterns()

virtual std::vector< Pattern > BERT::GetAvailableTxPatterns ( size_t  i)
pure virtual

Gets the list of available transmit patterns for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetBERIntegrationLength()

virtual int64_t BERT::GetBERIntegrationLength ( )
pure virtual

Get the integration period for BER measurements.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetBERSamplingPoint()

virtual void BERT::GetBERSamplingPoint ( size_t  i,
int64_t &  dx,
float &  dy 
)
pure virtual

Get the sampling point for BER measurements.

Parameters
iChannel index
dxHorizontal offset of the sampling point from the center of the eye, in femtoseconds
dyVertical offset of the sampling point from the center of the eye, in volts

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetCustomPatternLength()

virtual size_t BERT::GetCustomPatternLength ( )
pure virtual

Returns the number of bits in a custom pattern (may change with line rate)

Returns
Length of the custom pattern

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetDataRate()

virtual int64_t BERT::GetDataRate ( size_t  i)
pure virtual

Gets the currently selected line rate (in symbols/sec)

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetExpectedBathtubCaptureTime()

int64_t BERT::GetExpectedBathtubCaptureTime ( size_t  i)
virtual

Returns the expected time, in femtoseconds, to complete a bathtub scan with the current settings.

The default implementation returns zero.

Parameters
iChannel index

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ GetExpectedEyeCaptureTime()

int64_t BERT::GetExpectedEyeCaptureTime ( size_t  i)
virtual

Returns the expected time, in femtoseconds, to complete an eye scan with the current settings.

The default implementation returns zero.

Parameters
iChannel index

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ GetGlobalCustomPattern()

virtual uint64_t BERT::GetGlobalCustomPattern ( )
pure virtual

Gets the global custom pattern (only valid if IsCustomPatternPerChannel returns false)

Returns
The bit sequence

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetInstrumentTypes()

unsigned int BERT::GetInstrumentTypes ( ) const
overridevirtual

Returns a bitfield describing the set of instrument types that this instrument supports.

Not all types may be available on a given channel.

Implements Instrument.

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ GetPatternName()

string BERT::GetPatternName ( Pattern  pat)
static

Converts a Pattern enum into a strnig.

Parameters
patThe desired pattern

◆ GetPatternOfName()

BERT::Pattern BERT::GetPatternOfName ( std::string  name)
static

Converts a string name into a Pattern enum.

Parameters
nameName of the pattern

◆ GetRefclkInFrequency()

virtual int64_t BERT::GetRefclkInFrequency ( )
pure virtual

Gets the refclk in frequency, in Hz, required to generate the currently selected data rate.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRefclkOutFrequency()

virtual int64_t BERT::GetRefclkOutFrequency ( )
pure virtual

Gets the currently selected refclk out frequency, in Hz.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRefclkOutMux()

virtual size_t BERT::GetRefclkOutMux ( )
pure virtual

Gets the currently selected reference clock output mux setting.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRefclkOutMuxNames()

virtual std::vector< std::string > BERT::GetRefclkOutMuxNames ( )
pure virtual

Gets the list of available reference clock mux settings.

Mux selector names are free-form text whose meaning is defined by the instrument.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRxCdrLockState()

virtual bool BERT::GetRxCdrLockState ( size_t  i)
pure virtual

Gets the RX CDR lock state (true=lock, false=unlock)

NOTE: For some instruments this is just CDR lock, for others it indicates both CDR and pattern checker lock

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRxCTLEGainStep()

virtual size_t BERT::GetRxCTLEGainStep ( size_t  i)
pure virtual

Gets the currently selected RX CTLE gain index.

To get the actual gain in dB, use this value as the index into the table returned by GetRxCTLEGainSteps()

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRxCTLEGainSteps()

virtual std::vector< float > BERT::GetRxCTLEGainSteps ( )
pure virtual

Get the list of available RX CTLE gain values (in dB)

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRxInvert()

virtual bool BERT::GetRxInvert ( size_t  i)
pure virtual

Gets the transmit invert flag for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetRxPattern()

virtual Pattern BERT::GetRxPattern ( size_t  i)
pure virtual

Gets the currently selected receive pattern for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetScanDepth()

int64_t BERT::GetScanDepth ( size_t  i)
virtual

Get the configured scan depth for a channel, in UIs per sample/pixel.

Parameters
iChannel index

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ GetScanDepths()

vector< int64_t > BERT::GetScanDepths ( size_t  i)
virtual

Returns the list of integration depths for eye / bathtub scans.

Higher depths will give better resolution at low BER values, but increase scan time.

Parameters
iChannel index

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ GetScanProgress()

float BERT::GetScanProgress ( size_t  i)
virtual

Gets the estimated completion status (0-1) of the current scan.

Parameters
iChannel index

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ GetTxDriveStrength()

virtual float BERT::GetTxDriveStrength ( size_t  i)
pure virtual

Get the drive strength for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetTxEnable()

virtual bool BERT::GetTxEnable ( size_t  i)
pure virtual

Gets the transmit enable flag for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetTxInvert()

virtual bool BERT::GetTxInvert ( size_t  i)
pure virtual

Gets the transmit invert flag for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetTxPattern()

virtual Pattern BERT::GetTxPattern ( size_t  i)
pure virtual

Gets the currently selected transmit pattern for a channel.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetTxPostCursor()

virtual float BERT::GetTxPostCursor ( size_t  i)
pure virtual

Get the post-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetTxPreCursor()

virtual float BERT::GetTxPreCursor ( size_t  i)
pure virtual

Get the pre-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ GetUseExternalRefclk()

virtual bool BERT::GetUseExternalRefclk ( )
pure virtual

Sets the reference clock source.

Returns
True if external clock is in use, false if internal

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ HasConfigurableScanDepth()

bool BERT::HasConfigurableScanDepth ( )
virtual

Determines whether this instrument has configurable integration depth for eye / bathtub scans.

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ HasRefclkIn()

virtual bool BERT::HasRefclkIn ( )
pure virtual

Returns true if this instrument has a reference clock input port.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ HasRefclkOut()

virtual bool BERT::HasRefclkOut ( )
pure virtual

Returns true if this instrument has a reference clock output port.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ HasRxCTLE()

virtual bool BERT::HasRxCTLE ( )
pure virtual

Determines whether the input buffer has a continuous-time linear equalizer.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ IsCustomPatternPerChannel()

virtual bool BERT::IsCustomPatternPerChannel ( )
pure virtual

Determines whether custom patterns are settable per channel, or shared by the whole device.

Returns
True = per channel, false = global

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ IsDataRatePerChannel()

virtual bool BERT::IsDataRatePerChannel ( )
pure virtual

Determines whether the TX/RX clock is a per-instrument or per-channel setting.

Returns
True if clock is a per-channel setting, false if global

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ IsEyeScanInProgress()

bool BERT::IsEyeScanInProgress ( size_t  i)
virtual

Returns true if an eye scan is in progress.

Parameters
iChannel index

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ IsHBathtubScanInProgress()

bool BERT::IsHBathtubScanInProgress ( size_t  i)
virtual

Returns true if a horizontal bathtub scan is in progress.

Parameters
iChannel index

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ MeasureEye()

virtual void BERT::MeasureEye ( size_t  i)
pure virtual

Acquires an eye pattern.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ MeasureHBathtub()

virtual void BERT::MeasureHBathtub ( size_t  i)
pure virtual

Acquires a bathtub curve.

Parameters
iChannel index

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetBERIntegrationLength()

virtual void BERT::SetBERIntegrationLength ( int64_t  uis)
pure virtual

Set the integration period for BER measurements.

Longer values give better resolution for low BERs but update more slowly

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetBERSamplingPoint()

virtual void BERT::SetBERSamplingPoint ( size_t  i,
int64_t  dx,
float  dy 
)
pure virtual

Set the sampling point for BER measurements.

Parameters
iChannel index
dxHorizontal offset of the sampling point from the center of the eye, in femtoseconds
dyVertical offset of the sampling point from the center of the eye, in volts

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetDataRate()

virtual void BERT::SetDataRate ( size_t  i,
int64_t  rate 
)
pure virtual

Sets the data rate (in symbols/sec)

Parameters
iChannel index
rateBaud rate of the channel

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetGlobalCustomPattern()

virtual void BERT::SetGlobalCustomPattern ( uint64_t  pattern)
pure virtual

Sets the global custom pattern (only valid if IsCustomPatternPerChannel returns false)

Parameters
patternThe bit sequence (up to 64 bits in length)

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetRefclkOutMux()

virtual void BERT::SetRefclkOutMux ( size_t  i)
pure virtual

Sets the reference clock output mux.

Parameters
iIndex of the mux within the table returned by GetRefclkOutMuxNames()

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetRxCTLEGainStep()

virtual void BERT::SetRxCTLEGainStep ( size_t  i,
size_t  step 
)
pure virtual

Sets the RX CTLE gain index.

Parameters
iChannel index
stepIndex of the gain value within the GetRxCTLEGainSteps() table to use

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetRxInvert()

virtual void BERT::SetRxInvert ( size_t  i,
bool  invert 
)
pure virtual

Sets the receive invert flag for a channel.

Parameters
iChannel index
invertTrue = inverted, false = inverted

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetRxPattern()

virtual void BERT::SetRxPattern ( size_t  i,
Pattern  pattern 
)
pure virtual

Sets the receive pattern for the selected channel.

Parameters
iChannel index
patternDesired input pattern

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetScanDepth()

void BERT::SetScanDepth ( size_t  i,
int64_t  depth 
)
virtual

Set the configured scan depth for a channel.

Parameters
iChannel index
depthIntegration depth, in UIs

Reimplemented in AntikernelLabsTriggerCrossbar.

◆ SetTxDriveStrength()

virtual void BERT::SetTxDriveStrength ( size_t  i,
float  drive 
)
pure virtual

Set the drive strength for a channel.

Parameters
iChannel index
driveNominal p-p swing

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetTxEnable()

virtual void BERT::SetTxEnable ( size_t  i,
bool  enable 
)
pure virtual

Sets the transmit enable flag for a channel.

Parameters
iChannel index
enableTrue = enabled, false = disabled

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetTxInvert()

virtual void BERT::SetTxInvert ( size_t  i,
bool  invert 
)
pure virtual

Sets the transmit invert flag for a channel.

Parameters
iChannel index
invertTrue = inverted, false = normal

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetTxPattern()

virtual void BERT::SetTxPattern ( size_t  i,
Pattern  pattern 
)
pure virtual

Sets the transmit pattern for the selected channel.

Parameters
iChannel index
patternThe selected pattern

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetTxPostCursor()

virtual void BERT::SetTxPostCursor ( size_t  i,
float  postcursor 
)
pure virtual

Set the post-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index
postcursorPost-cursor tap

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetTxPreCursor()

virtual void BERT::SetTxPreCursor ( size_t  i,
float  precursor 
)
pure virtual

Set the pre-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index
precursorPre-cursor tap

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.

◆ SetUseExternalRefclk()

virtual void BERT::SetUseExternalRefclk ( bool  external)
pure virtual

Sets the reference clock source (internal or external)

Parameters
externalTrue to select external clock, false to select internal

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.


The documentation for this class was generated from the following files: