...
- Assemble the test stand according to figures from the "B84 FELIX Test Setup" section:
- Plug MTP12_CH1_STX cable where X = 1, 2, 3 or 4 (labeled as "1", "2", "3" or "4") into the VLDB's RX. We at SLAC use X = 1.
- Plug mini-HDMI in G0-LinkX on VLDB, where X = 0, 2, 4 or 6. The X will further be used as "TX" parameter in YARR configs.
- Use J77 for mini-HDMI and J93 for mini-DP on the interface board (look into the board's schematics for the reason of the choice). In general, mini-HDMI and mini-DP ports standing against each other are coupled.
- Configure VLDB (this part to be updated).
- Update/install the most recent Felix firmware (assuming Vivado Lab is installed, and one has access to GUI):
Plug in a JTAG-USB cable in a correct port on the FLX-712 board.
SLAC FLX-712 Board
ANL FLX-712 Diagram
Xilinx Dongle:
No LED light: PC doesn't see the dongle. Check drivers.
Yellow LED: No target. Check JTAG connections.
Green LED: Good! Can Proceed.
- Get the .bit (directly upload v4.9).
- In Vivado Lab detect the target, use the .bit file to configure.
- Reboot the PC.
- Unplug the MTP12-CH1-TXA cable from the VLDB, make sure you observe red light coming from the wire, plug it back to the VLDB's RX. You can use TXA ch1 through ch4 cables.
- If there is no GUI and/or Vivado on the Felix server, one may use an external PC to configure the FLX-712 board: keep the board in the server, plug the Xilinx USB dongle into the external PC and run Vivado from there.
- Now you should see the RXDATA LED lighting with dim red color.
- Configure VLDB (GUI is needed for java):
- Supply 5V with 1A limit in current to VLDB. With 5V input voltage a VLDB may consume as low as 300mA. Once the VLDB and Felix configuration process is done, the board consumes about 450mA.
- Use the .jar programmer file and the txt config file.
- Run:
$ java -jar programmerv2.20180725.jar
Java GUI will appear. - Click "import i..." in the top left corner and select the txt config file.
- Click "Write GBTX". After the process is done, GUI should look like the attached screenshot
- Set up FELIX:
- Run (from /home/itpix/FELIX/felix-04-01-00-stand-alone/x86_64-centos7-gcc8-opt/bin/ in the particular SLAC server):
$ ./flx-init -c0
Run the init comment only one. If you run it twice or more, you need to reboot the computer.
$ ./flx-info -c0
May omit the info command, but it is useful to crocs-check that everything is ok. - Check polarity of the channels, and invert if needed:
$ ./flx-config -d0 list | grep POLARITY
$ ./flx-config -d1 list | grep POLARITY
If you observe something like "GBT-TXPOLARITY 0x000000000000", run:
$ ./flx-config -d1 set GBT-TXPOLARITY=0xffffffffffffffff
-d1 option selects the 1st FLX card. - If everything was done properly, the other two LEDs - TXRDY and RXRDY - should light up:
- Run (from /home/itpix/FELIX/felix-04-01-00-stand-alone/x86_64-centos7-gcc8-opt/bin/ in the particular SLAC server):
- Configure E-links in elinkconfig:
- elinckconfig tool is described in the Felix manual - Section 6.1.
- TL;DR:
- $ source "path_to_felix"/source.sh
- elinkconfig
elinkconfig GUI:
Initial state of the elinkconfig
Target state of the elinkconfig
- Click "FULLmode" in the top panel. The left panel will collapse into just one box named "Enable FULLMODE": check the small box, and the entire big box will turn orange.
- Check "TTC-to_Host (63b)" box in the top panel.
- Uncheck all the Epaths in the right panel: select "Egroup 0" on the bottom right, click "Disable" 0n the bottom right, click "Relp 2 All" on the bottom right; uncheck "EC (3f)" by hand.
- Click "2-bit" under the Egroup 0 and select "4-bit".
- Check Egroup0-EpathX according to your setup (G0-LinkX mini-HMDI ports on the VLDB).
Click "TH_FanOut..." on the top menu. New window will appear, click "None" and "OK". Repeat same for "FH_FanOut".
"ToHost FanOut" Initial state (same for "FromHost")
"ToHost FanOut" Target state (same for "FromHost")
- Click "Repl 2 All" on the top panel.
- Save the configuration: click "Generate/Update" on the top panels. new window will appear, click the top "Upload" button and "Close".
- Click "FLX-device" breakdown menu on the top panel, select 1 instead of 0. Repeat same procedure for the device 1. (NOTE: number of devices and their actual address depend on the number of FLX-712 cards used in a server. In case of one card use only 0 and 1.)
- Check some registers:
- ./flx-config -d0 list | grep GBT_GENERAL_CTRL
If returns other than 0x0000000000000004, run:
./flx-config -d d0 set grep GBT_GENERAL_CTRL=0x4 - ./flx-config -d0 list | grep GBT_ALIGNMENT_DONE
returns 0x0..1..0 when an RD53a SCC is connected (one 1 for each SCC). - /flx-config -d0 list | grep GBT_RXCDR_LOCK
returns 0x0..1..0 when an RD53a SCC is connected (one 1 for each SCC).
- ./flx-config -d0 list | grep GBT_GENERAL_CTRL