SERENITY HOME EMP Framework Guide Logo
FW 0.9.3 / SW 0.9.4
  • The basic idea
  • Walkthroughs for First Users
  • EMP firmware
    • Firmware: Build and simulation instructions
      • Prerequisites
        • Build tool
        • Vivado
      • Step 1: Setup your IPBB area
      • Step 2: Add the payload repository
      • Step 3: Build firmware or run simulation
    • Payload firmware: Interface
      • emp_payload entity
      • emp_project_decl package
      • tb_decl package
    • Backend links
      • CSP protocol in a nutshell
      • Payload port specification
      • Example use cases
        • TM6 link with back-to-back packets
        • TM18 link with gap between packets
  • EMP software
    • Installation
      • YUM repositories
      • Compiling from source
        • Part 1: Prerequisites
        • Part 2: EMP toolbox
    • Standard workflows
      • Testing payload firmware in a single FPGA
      • Configuring and monitoring link firmware
        • Loopback
        • Board-to-board tests
      • Bathtub and eye scans
        • Python dependencies
        • Links yaml file
        • Scanning the links
        • Standalone plotting
    • EMP butler: Reference guide
      • Top-level interface
    • Butler scripting interface
      • Example: Link loopback pattern test
    • Buffer data files
      • Format
      • Example
    • Testing the firmware and software
      • Environment
      • Running the test suite
  • Reference bitfiles
  • Release notes
    • Software
      • Version 0.9.4
      • Version 0.9.3
      • Version 0.9.2
      • Version 0.9.1
      • Version 0.9.0
      • Version 0.8.4
      • Version 0.8.3
      • Version 0.8.2
      • Version 0.8.1
      • Version 0.8.0
      • Version 0.7.6
      • Version 0.7.5
      • Version 0.7.4
      • Version 0.7.3
      • Version 0.7.2
      • Version 0.7.1
      • Version 0.7.0
      • Version 0.6.8
      • Version 0.6.7
      • Version 0.6.6
      • Version 0.6.5
      • Version 0.6.4
      • Version 0.6.3
      • Version 0.6.2
      • Version 0.6.1
      • Version 0.6.0
      • Version 0.5.4
      • Version 0.5.3
      • Version 0.5.2
      • Version 0.5.1
      • Version 0.5.0
      • Version 0.4.6
      • Version 0.4.5
      • Version 0.4.4
      • Version 0.4.3
      • Version 0.4.2
      • Version 0.4.1
      • Version 0.4.0
      • Version 0.3.7
      • Version 0.3.6
      • Version 0.3.5
      • Version 0.3.4
      • Version 0.3.3
      • Version 0.3.2
      • Version 0.3.1
      • Version 0.3.0
      • Version 0.2.8
      • Version 0.2.7
      • Version 0.2.6
      • Version 0.2.5
      • Version 0.2.4
      • Version 0.2.3
      • Version 0.2.2
      • Version 0.2.1
      • Version 0.2.0
      • Version 0.1.0
    • Firmware
      • Version 0.9.3
      • Version 0.9.2
      • Version 0.9.1
      • Version 0.9.0
        • Migration guide: 0.8.x to 0.9.0
      • Version 0.8.2
      • Version 0.8.1
      • Version 0.8.0
      • Version 0.7.5
      • Version 0.7.4
      • Version 0.7.3
      • Version 0.7.2
      • Version 0.7.1
      • Version 0.7.0
        • Migration guide: 0.6.x to 0.7.0
      • Version 0.7.0, alpha pre-release
      • Version 0.6.8
      • Version 0.6.7
      • Version 0.6.6
      • Version 0.6.5
      • Version 0.6.4
      • Version 0.6.3
      • Version 0.6.2
      • Version 0.6.1
      • Version 0.6.0
        • Migration guide: 0.5.x to 0.6.0
      • Version 0.5.8
      • Version 0.5.7
      • Version 0.5.6
      • Version 0.5.5
      • Version 0.5.4
      • Version 0.5.3
      • Version 0.5.2
      • Version 0.5.1
      • Version 0.5.0
      • Version 0.3.6
      • Version 0.3.5
      • Version 0.3.4
      • Version 0.3.3
      • Version 0.3.2
      • Version 0.3.1
      • Version 0.3.0
      • Version 0.2.5
      • Version 0.2.4
      • Version 0.2.3
      • Version 0.2.2
      • Version 0.2.1
      • Version 0.2.0
      • Version 0.1.2
      • Version 0.1.1
      • Version 0.1.0
Licence
EMP Framework Guide
  • Docs »
  • EMP software »
  • EMP butler: Reference guide »
  • MGT/link configuration and monitoring

MGT/link configuration and monitoring¶

The mgts subcommands are listed below. In each case, the list of channels is specified using the -c or --channels option, i.e:

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts SUBCOMMAND [-c CHANNEL_LIST] [OTHER OPTIONS]

configure tx

Resets and configures TX MGTs plus associated logic, then reads status registers and reports any erroneous values (unless the status check has been disabled)

  • The TX polarity can be inverted by adding the --invert flag. Note: This should only be done if the board traces or cables connect the positive TX pin of each channel to the negative RX pin, and vice versa.

  • The MGT can be configured to internally loop the transmitted data to the RX logic using the --loopback flag. Valid values are: nearPCS, nearPMA, farPCS, farPMA

  • The PRBS (pseudorandom binary sequence) pattern generator can be enabled using the --prbs flag. Valid values are: PRBS7, PRBS9, PRBS15, PRBS23, PRBS31

  • The status register check can be skipped by adding the --no-check flag (though skipping status checks is not recommended for standard workflows)

For example, to configure TX channels 0 to 3 and 8 to 11 inclusive (standard polarity, internal loopback disabled):

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts configure tx -c 0-3,8-11

Or, to configure the same channels with inverted polarity, and skip the status checks:

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts configure tx -c 0-3,8-11 --invert --no-check

configure rx

Resets and configures RX MGTs plus associated logic, then reads status registers and reports any erroneous values (unless the status check has been disabled)

  • The RX polarity can be inverted by adding the --invert flag. Note: This should only be done if the board traces or cables connect the positive TX pin of each channel to the negative RX pin, and vice versa.

  • By default, the MGTs will be configured in LPM mode. DFE mode can be used by adding the --enable-dfe flag.

  • The PRBS (pseudorandom binary sequence) pattern checker can be enabled using the --prbs flag. Valid values are: PRBS7, PRBS9, PRBS15, PRBS23, PRBS31

  • The eyescan circuitry can be disabled by adding the --disable-eyescan flag (this is not recommended for standard workflows)

  • The status register check can be skipped by adding the --no-check flag (though skipping status checks is not recommended for standard workflows)

For example, to configure TX channels 0 to 3 and 8 to 11 inclusive (standard polarity, LPM):

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts configure tx -c 0-3,8-11

Or, to configure the same channels in DFE mode:

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts configure tx -c 0-3,8-11 --enable-dfe

status

Reads the MGT status registers, and reports whether there are any erroneous values (printing the values in that case)

  • By default, both RX and TX status registers are checked. They can be restricted to one direction by adding rx or tx.

For example, to check the RX and TX status registers on channels 0 to 3 and 8 to 11 inclusive:

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts status -c 0-3,8-11

Or, to check only the status of the RX MGTs:

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts status rx -c 0-3,8-11

off

Powers off the MGTs and QPLLs

  • Although the command is specified at the --channels level (like all mgts subcommands), the power is controlled at the quad level. Powering off one channel will power off all channels in the same quad.

  • By default, both RX and TX MGTs and the QPLL for each quad are powered off.

  • If restricted to one direction by adding rx or tx, the QPLL will only be powered off if both RX and TX MGTs are off.

For example, to power off the RX and TX MGTs and the QPLLs for channels 0 to 3 and 8 to 11 inclusive:

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts off -c 0-3,8-11

Or, to power off only the RX MGTs (and the QPLLs if the TX MGTs are already off):

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts off rx -c 0-3,8-11

scan

Run bathtub or eye scans.

See the Bathtub and eye scans page for details of the scan subcommand.

measure-clocks

Measures frequencies of MGT reference clocks, as well as the RX and TX MGT data clocks

empbutler -c CONNECTIONS_FILE.xml do DEVICE_ID mgts measure-clocks -c CHANNEL_LIST

No additional options/flags, beyond the list of channels.

Note

If any given LHC-sync/-async ref clock that’s been declared to the framework isn’t used in a design (e.g. the LHC-sync ref clock for a set of regions where only BE MGT link firmware is instantiated), then the framework will not actually connect those pins to anything at all, and the frequency reported by the measure-clocks command will be 0.

Next Previous

© Copyright 2019, EMP Collaboration.