Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Individual board testing

Table of Contents
maxLevel3
exclude\b(?:Table of contents)\b|\*

Resistance measurements with cable attached

  • Cable was produced in-house, see
    Jira
    serverSLAC National Accelerator Laboratory
    serverId1b8dc293-975d-3f2d-b988-18fd9aec1546
    keyTIDIDECS-114
  • There are no serial number on the cables, so for now only using one and assigning it "Cable 01"
  • Measuring between banana connector on the cable and test points on the board

PhotoSENSOR HVHV GNDAGNDP24V0ADGNDP24V0D
Cable 01 - Board 38-C00-02

0.6R0.7R0.4R0.4R0.3R0.3R


Resistance measurements with analog and digital boards mated

Measuring on test points on the analog board.



SENSOR HVDGNDP24V0AP24V0D

Boards
38-C00-01
39-C00-01

AGND0.3R


Voltage measurements with analog and digital boards mated

  • FPGA is not programmed.
  • All power rails are not powered up yet on the digital board, see Issue #3.
  • All power rails on the analog board are disabled by default due to the pull-down resistor R21.


P24V0DP24V0A

Boards
38-C00-01
39-C00-01

Analog board23.96 V24.01 V
Digital board23.96 V24.01 V
Power supply current170 mA0.2 mA


Simplified virtual I/O gateware for the FPGA


SysMonVirtual IOPhoto

Only digital board

Digital and analog board

Digital, analog and carrier board


Only digital board

  • Before programming the FPGA
    • Current consumption: 327 mA at 24 V on P24V0D
    • Temperature: Stable at around 28C with fan blowing on the bottom of the board (not FPGA side)
  • After programming the FPGA
    • Current consumption: 336 mA at 24 V on P24V0D
    • Temperature: Stable at around 29C with fan blowing on the bottom of the board (not FPGA side)
  • Virtual IO
    • prsntAnalogL and prsntCarrierL both are high indicating no boards are plugged in
    • hwRev is correct: 0b0001
    • hardwareIo[7:4] works

Digital and analog board

  • After programming the FPGA
    • Current consumption: 338 mA at 24 V on P24V0D
    • Temperature stable at around 32C now due to analog board in the way of the airflow to the digital board
  • prsntAnalogL is now low indicating that the analog board is plugged on
  • Toggling pwrEnable HIGH should turn on all the power supplies on the analog board
    • This includes supplies on the P24V0A power rail also so this must be provided from the external supply
    • Toggling the pwrEnable HIGH
    • Current consumption:
      • 440 mA at 24 V on P24V0D
      • 47 mA at 24 V on P24V0A
    • Probing on analog board:
      • P5V0A FIRST = 4.978 V
      • P5V0D FIRST = 5.013 V
      • P1V8A FIRST = 1.816 V
      • P1V8D FIRST = 1.803 V
      • P1V8D = 0.494 V
      • P3V3D = 0 V
      • P3V3A = 0 V
      • P1V8A = 0 V
      • P2V5 AVDD = 0 V
      • P2V5A SINK = 0 V
      • P0V8 DC BIAS = 0 V
    • → Something is not working on the analog board and the power sequencing!
      • Issue identified, see Issue #1
      • Gave all three analog boards to the workshop on 2024-04-26 for rework
  • Reworked analog board received back on 2024-04-29
    • Testing 38-C00-01 and 39-C00-01
      • Current consumption after programming and enabling power to analog board:
        • 446 mA at 24 V on P24V0D
        • 192 mA at 24 V on P24V0A
      • Probing on analog board:
        • P5V0A FIRST = 5.003 V
        • P5V0D FIRST = 4.990 V
        • P1V8A FIRST = 1.807 V
        • P1V8D FIRST = 1.801 V
        • P1V8D = 1.808 V
        • P3V3D = 3.280 V
        • P3V3A = 3.294 V
        • P1V8A = 1.800 V
        • P2V5 AVDD = 2.517 V
        • P2V5A SINK = 2.529 V
        • P0V8 DC BIAS = 0.807 V
        • P1V3 A1VDD = 1.303 V
        • P1V3 A2VDD = 1.303 V
        • P1V3 A3VDD = 1.305 V
        • P1V3 A4VDD = 1.302 V
        • P0V6 A1SINK = 0.616 V
        • P0V6 A2SINK = 0.624 V
        • P0V6 A4SINK = 0.616 V
        • P0V6 A3SINK = 0.619 V
      • → All looks good!
      • Temperature stable at around 36C with fan blowing on the top of the analog board, not directly on the FPGA

Digital, analog and carrier board

  • prsntCarrierL is now low indicating that the carrier board is plugged on


Mounted LEAP transceiver

OM2223-00027 LEAP transceiverBefore mountingAfter mountingAfter mounting closeup


Mounted fiber optical pigtail

Before mountingAfter mounting


Mounted boards to cooling block

  • Mounted digital board 38-C00-01 and analog board 39-C00-01 on 2024-05-1
  • Started with the analog board:
    • Cut two pieces of 1 mm thick thermal pad that covered most of the components
    • Added additional 1 mm thick thermal pad over the regulators on the left side of the board as shown below
    • Added some 3 mm thick thermal pad over the regulators on the right side of the board
  • Screwed the analog board into the cooling block
  • Then the digital board:
    • Cut one 1 mm thick thermal pad for the FPGA
    • Cut one 1 mm thick thermal pad for the big and tall regulator
    • Cut one 1 mm thick thermal pad covering all the other regulators on the left side of the board as shown below
    • Cut some 3 mm thick thermal pads and placed over clock components on the right side of the board
  • Carefully plugged in the digital board into the analog board through the connector
  • Tightened the screws on the digital board but not all the way since the distance is smaller between the two boards on the cooling block
    • Tightening more would probably cause a lot of stress on the connector which sets the height of 17.5 mm between the board
  • Powered everything up
  • LEAP transceiver gets too warm after only about 2 min of being on even with a fan blowing above
    • This needs to be connected to the cooling block somehow
    • Could also use the LEAP with a heatsink for use in the lab with a fan
  • The original cooling plate for the LEAP transceiver does not fit as is because it was based on the previous board design
    • Hacked it together by drilling and tapping a hole into the copper cooling block
    • Added a 3 mm thermal pad between the LEAP transceiver and the plate to fill out the gap
    • Seems to work OK, with the plate heating up slowly and the LEAP not feeling too hot
Analog board thermal padsAnalog board mountedDigital board thermal padsDigital board mountedCooling plate for the LEAP transceiver


First full system test

  • Testing started on 2024-05-02
  • Running the simple virtual I/O gateware first to see where the internal FPGA temperature stabilizes at
  • Power draw after enabling power to the analog board:
    • 609 mA at 24 V on P24V0D → 14.6 W
    • 193 mA at 24 V on P24V0A → 4.6 W
  • Temperature stable at around 34°C
  • Switching to real gateware: https://github.com/slaclab/epix-uhr-100kHz-dev
    • Temperature stable at around 36°C
    • 585 mA at 24 V on P24V0D → 14 W
    • 0 mA at 24 V on P24V0A → Power enable signal is low by default
    • There's no connection between the software and the hardware... that would have been too lucky!
    • Moving on to check PCIe card and fibers
System connected up

Internal FPGA temperature after about 20 min
Simple virtual I/O


Test of PCIe card and fibers

  • Using a KCU105 and the example PGP project: https://github.com/slaclab/Simple-PGPv4-KCU105-Example
    • Connected up to the first fiber in the breakout
    • Working!
  • Moving the KCU105 fiber pair to another pair on the PCIe does not work.
    • It seems that for this example, the first fiber lane of the PCIe card must be connected to the KCU105
    • Can't find any information on how the PCIe card manages multiple fiber lanes and how this is configured...
    • Ideally it would be useful to test all 8 possible fiber lanes on the PCIe card to make sure the fiber connections are correct
    • → Errata: this can be changed with the "--lane" argument to the devGui.py software, see https://github.com/slaclab/Simple-PGPv4-KCU105-Example/blob/v2.7.0/software/scripts/devGui.py#L42
  • Warning message when running PgpMonitor.py 
    • WARNING: pciServer.AxiPcieCore.numDmaLanes = 4 != pciServer.AxiPcieCore.AxiVersion.DMA_SIZE_G = 8
    • The app also only displays 4 lanes, while we should have 8 because of the two QSFP and 8 fiber pairs
    • There is a parameter that defaults to 4, change this when running the PgpMonitor:
      • python PgpMonitor.py --numLane 8
  • Looking at the different lanes in the PGP monitor showed that none of them were showing a good link
  • With the help from Dawood, it was shown that the MTP adapter that was used is not the correct one
  • Values of some registers:
    • LeapXcvr:
      • Root.Core.LeapXcvr.TxLower.TxTemp = 52.3
      • Root.Core.LeapXcvr.TxLower.TxVcc3p3 = 3.2968
      • Root.Core.LeapXcvr.RxUpperPage01.InputOpticalPowerMonitor[0] = -16.0
      • Root.Core.LeapXcvr.RxLower.RxVcc3p3 = 3.306
    • SysMon
      • Root.Core.AxiSysMonUltraScale.Temperature = 35.397
      • Root.Core.AxiSysMonUltraScale.VccInt = 0.848
      • Root.Core.AxiSysMonUltraScale.VccAux = 1.798
  • Enabling the GtReadoutBoardCtrl module
    • No carrier board is installed
    • All values look good
    • pwrEnableAnalogBoard works
      • 702 mA at 24 V on P24V0D → 16.85 W
      • 193 mA at 24 V on P24V0A → 4.6 W
    • Reading out the board serial IDs is working as well
PGP example project workingPGP lane 5 status in monitor
Connected in firmware to SRP
PGP lane 4 status in monitor
Not connected in firmware
PGP working on GT Readout!GT Readout Board Control module
Must be enabled first
Board serial IDs


GTY transceiver tests with fiber loopback on single channel

The aim of this test is to verify the data rate that can be achieved with the FPGA GTY transceivers that are connected to the Leap transceiver. An external fiber connection is used to loop back the transmitted data back into the received data of the same channel. A simplified gateware is used for the FPGA that contains the IBERT for UltraScale/UltraScale+ GTY Transceivers and interacts with the Vivado Serial I/O Analyzer. A similar setup was used during the testing of the SparkPix-IO ASIC. The 156.25 MHz clock connected to MGTREFCLK1 on bank 133 is used as the reference clock for the GTs and the IBERT.

Using digital board 38-C00-01. Only channel 0 (GT_RX_0 / GT_TX_0) is tested for now because of lack of fiber loopbacks. The loopback is done after the 24-MTP to 12-LC-duplex using a LC-simplex fiber. The temperature is the Internal FPGA temperature read from the system monitor. A 31-bit PRBS is used and the eye is scanned with the highest possibly resolution after the temperature has stabilized inside the FPGA. A full test should have all 12 GTY channels running over a long time period.


5 Gbit/s10 Gbit/s15 Gbit/s20 Gbit/s25 Gbit/s25.625 Gbit/s25.9375 Gbit/s26.25 Gbit/s27.5 Gbit/s28.125 Gbit/s

Eye diagram

Without TX pre/post-cursor

Eye diagram

With TX pre/post-cursor

-

--

-

pre=0.81 dB, post=0.82 dB

pre=1.3 dB, post=1.32 dB

pre=1.3 dB, post=1.32 dB

pre=1.87 dB, post=1.91 dB

pre=2.28 dB, post=2.28 dB

pre=3.08 dB, post=3.14 dB

Temperature

39°C

40°C42°C44°C49°C49°C49°C48°C48°C49°C
P24V0D power

15.9 W

16.6 W18.3 W19.3 W21.6 W21.7 W21.8 W21.3 W21.4 W21.5 W
Bitfile
Debug file

Note: The IBERT module only works up until 28.2 Gbit/s.

GTY transceiver tests with fiber loopback on all channels

A MTP-24 loopback cable is attached directly on the Leap fiber pigtail.


10 Gbit/s15 Gbit/s20 Gbit/s25 Gbit/s

Links

Scan

Note

For the 25 Gbit/s most of the links worked after minor adjustments to the settings but some links still had errors. The parameters can be swept using the Serial I/O Scan to find the best combination that gives the lowest error rate. A quick sweep was done, but a more thorough one should be done for a final application where 25 Gbit/s will be used. PGPv4 is limited to 15 Gbit/s and we therefore do not spend any more time trying to optimize for any higher data rate at the moment. It's recommended to limit a sweep to around 100 scans to avoid Vivado locking up due to all the plots being created.


Remote control of Rohde & Schwarz HMP4030 power supply

Set valuesMeasured values


Connection to chiller

A ThermoTek T257P chiller is connected up to the cooling block. The temperature is set to 21.5°C and the chiller was topped up with distilled water. After turning on the chiller the temperature inside the FPGA dropped and is kept at a stable 23°C with the epix-uhr-100kHz-dev firmware running on it. Current consumption for P24V0D is at 0.578 A (= 13.87 W).

T257P chiller with distilled waterCooling block with chiller connectionCurrent consumption with chillerTemperature drop after turning on the chiller

Testing with 25 Gbit/s fiber loopback

Using the 25gbps firmware from the earlier test above (see GTY transceiver tests with fiber loopback on all channels) to push more heat out of the FPGA and see how the cooling behaves. Previous test showed a stable temperature around 49°C with a 21.6 W power draw from P24V0D. Temperature now with the chiller is stable at around 29°C, a significant drop!

FPGA temperaturePower


ASIC carrier with ASICs wire-bonded

Two carrier boards (41-C00-02 and 41-C00-03) were delivered from the wire bonding with four ePixUHR100kHz ASICs mounted on each board. NOTE: The ASIC itself seems to be bigger than expected since it is surrounded by test structures from the fabrication. This caused the wire bonds on the first row to have a very tight bend between the ASIC and the PCB.

The 41-C00-03 carrier board was mated with the digital board 38-C00-01 and analog board 39-C00-01 with the water cooling block in the lab, see photos below.

Carrier board
41-C00-03



All three boards mated

Carrier: 41-C00-03
Analog: 39-C00-01
Digital: 38-C00-01

Resistance measurement

Measuring across the capacitors along the edges of the carrier board 41-C00-03.

Voltage railP1V3_DVDDP1V3_A1VDDP1V3_A2VDDP1V3_A3VDDP1V3_A4VDDP2V5_AVDDP0V8_DC_BIAS
Resistance120R33R30R33R32R4.65kHigh

Testing with firmware

  • ID number of carrier?
  • Power consumption before ASIC power enable
    • 582 mA at 24 V on P24V0D (13.968 W)
    • 0 mA at 24 V on P24V0A (0 W)
  • Power consumption after ASIC power enable?
    • XXX mA at 24 V on P24V0D (0 W)
    • XXX mA at 24 V on P24V0A (0 W)
  • Power consumption after ASIC global reset
    • 753 mA at 24 V on P24V0D (18.072 W)
    • 542 mA at 24 V on P24V0A (13.008 W)
  • → Four ASICs consume:
    • ~4.1 W of digital power
    • ~13 W of analog power
    • Not taking into account losses in LDOs and DC/DC
    • Can measure more accurately once the ADCs are up and running on the board


Photos of the carrier on the readout in the lab

Image AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added