Production testing of Receiver Card


This description assumes that you are using the green crate, which is our dedicated production testing crate.

Test 1: Visual inspection

Must be finished before the card is tested in the green crate.
Check in the e-log book hat the appropriate entry is there.

Other preliminaries:

At this point, the 8 Receiver Mezzanine Cards should NOT be mounted on the RC. If they are mounted on an otherwise untested RC, DO NOT PROCEED and return the card to the mechanical team to take the Receiver Mezzanine Cards off again. The Receiver Mezzanine Cards should be mounted only for Test 9 - Serial Link test (Vitesse to ASIC)

Test 2 to Test 8

Require running scripts on the cmslab account and from the directory ~cmslab/RCTtest. The following decription assumes that you are testing with the green crate and that the SBS of the green crate is connected to daffodil.

So before testing can begin:
login as cmslab onto daffodil
> cd ~cmslab/RCTtest

Each script logs its screen output also in a file. Assuming you are running the scripts on daffodil, you can monitor the log in a separate window:
> tail -f /afs/hep.wisc.edu/cms/RCTlog/daffodil/RC_[date].log


Elog:

After you've ran a test, make a note into the E-log book. Open the elog in a separate window by typing
>cd ~cmslab/elog
>java RCTtest &
or
>run_elog

Scan the barcode of the EIC to be tested into the corresponding text field on the elog window. Select "RC"from the cards type button. Enter your name in the "who makes entry" field. Retrieve the already existing elog entries for the RC to be tested by clicking on the "Retrieve elog" button.

IMPORTANT: After you've scanned in a new barcode, always retrieve the log file first. Unfortunately, at the moment, the elog screen does not clear automatically when the barcode in the barcode field changes.

Check that for the RC you want to test  the elog already shows the  entry" "RC TEST 1 - Visual inspection: PASSED". If you don't find this entry, DO NOT PROCEED with this card. 

In order to record that a test was done, click on the "Sequence of tests" button, select the appropriate list item and click on the PASSED or FAILED button, as the case may be. This should result in an entry in the "Text to enter into log" screen. Assume that test 2 for example failed. Selecting the correct list item and clicking "FAILED" results in the standardized text "RC TEST 2 - VME access tests: FAILED" showing up in the "Text to enter into the log" screen. You can add comments after this. Please, under no circumstances change the standardized text itself because this would make it impossible to search the elog files for these standardized markers at a later time.

IMPORTANT: The text on the "Text to enter into log" screen is actually added to the log file of the card in question ONLY AFTER clicking on the "Enter" button. Upon clicking on that button, the text, preceeded by a time stamp and your name,  should appear in the "Log book" window and disappear from the "Text to enter into log" window. While the latter window is editable, the "Log book" window isn't. Whatever you have entered into the log book is supposed to stay there. If you find you want to modify or correct an entry, you have to do so by adding a new entry to the log book.




Test 2 - VME access test

Cards plugged into the crate: CCC and the RC to be tested.
The RC to be tested has to be located in RC slot 3, marked with a red permanent marker.
Switch crate power on.
> cd ~cmslab/RCTtest
> run_RC_test2

==>> This annotated version of the script output gives directions what to look for in the test.

==>> Note: Each RC has a VME register (8 bits) with a value that corresponds to the RC bar code.
The correspondance requires some math and is recorded as table in this excel file. Please check that the VME ID register value read back by the script (look for barcode in its output) is the correct one for the actual RC bar code. Example: RC with bar code 3101110095 -  VME ID register is A0.

==>> Report success or failure of the test in the elog, along with any comments or observations.

==>> Check that the test screen output made it into the screen output log file:
> more /afs/hep.wisc.edu/cms/RCTlog/daffodil/RC_[today's date].log


Test 3 - Write/read data to/from LUTs

Cards plugged into the crate: CCC and the RC to be tested.
The RC to be tested has to be located in RC slot 3, marked with a red permanent marker.
>run_RC_test3

==>> Look for the script reporting that all tests were successful.
This annotated version of the script output gives directions what to look for in detail.

Running the script takes about 2 minutes. The red LED at the front of the RC stays one while the test is running.

==>> Report success or failure of the test in the elog, along with any comments or observations.


Test 4 - JTAG all ASICS

Cards plugged into the crate: CCC and the RC to be tested.
The RC to be tested has to be located in RC slot 3, marked with a red permanent marker.
>run_RC_test4

==>> Look for the script reporting that all tests were successful.
This annotated version of the script output gives directions what to look for in detail.

==>> Report success or failure of the test in the elog, along with any comments or observations.
In the case of failure, write into the elog where the program failed, for example " Checking Phase 1 and 3 to Adder 0, Route OP 2 pin 7", if that were the program's last words on the screen before failing.


Test 5 - Backplane data paths

Power down the crate and plug in one EIC in slot 2 and 6 RCs, so that:
Cards plugged into the crate: CCC, 1 EIC, 6 RCs,  and the RC to be tested.
In the course of the test, the RC to be tested will change its RC slot such that in the end it has been plugged into 6 of the 7 possible RC slot (RC slots 0 to 5) at some point during  testing. RC slot 0 is on the right-most slot, RC slot 6 is the left-most one.

To start, put the RC to be tested into RC slot 2 and power up the crate.
>run_RC_test5a
Here is an annotated version of the script output.

Power down the crate, swap the RC to be tested to RC slot 3, power up again.
>run_RC_test5b
Here is an annotated version of the script output.

Power down the crate, swap the RC to be tested to RC slot 0, power up again.
>run_RC_test5c
Here is an annotated version of the script output.

Power down the crate, swap the RC to be tested to RC slot 4, power up again.
>run_RC_test5d
Here is an annotated version of the script output.

Power down the crate, swap the RC to be tested to RC slot 5, power up again.
>run_RC_test5e
Here is an annotated version of the script output.

Power down the crate, swap the RC to be tested to RC slot 1, power up again.
>run_RC_test5f
Here is an annotated version of the script output.


==>> Follow the directions the scripts print out.

==>> The scripts each take about 4.5 minutes to run.
Before the test patterns are written to the memories (LUTs), the content of each memory addresses is set to zero first. This takes about 0.5 minutes per RC. The red LED on the front of an RC is on while writing to its memories takes place.

==>> Some of the scripts require the use of a 68-pin cable to connect RCs. Follow the directions the script prints to the screen.
Attention: Do connect with a cable ONLY those two cards the script in question specifies. Take all other cables off, they can interfer with the test results in unexpected and undesirable ways.

==>> Check the relevant pins  of U125, U126, U66, U128 on the EIC for the expected values. The relevant pins are defined on the annotated version of the scripts output and on the backplane paths checklist.

These chips are located on the top side of the EIC board, the red squares here give you a hint where. The chips are PLCC, with 28 pins. Pin 1 is marked by a little dot over it on the chip plastic case, and the pin numbers increase counter-clock-wise, i.e. the pins at the corners are: Pins 4 & 5, 11 & 12, 18 & 19, 25 & 26.

On the scope, trigger threshold should be about -1.3 V, trigger on the rising edge, use "auto" trigger mode, time axis scale 10 ns, y axis scale 500 mV. The signals are 160 MHz ECL signals, i.e. one bit is 6.25 ns long. Connect the scope probe ground to any of the metal ground pins on the RC.

==>> Report the results, with card bar code and date, in a copy of this backplane paths checklist
This checklist and the annotated version of the output of the scripts give directions which pins to check and which values to expect.
The instructions on the checklist concerning running specific vmedia scripts are carried out automatically by the tun_RC_test5n scripts. You do not have to carry them out yourself.

==>> Report success or failure of the test in the elog, along with any comments or observations.

==>> File the completed checklist in the appropriate folder.


Test 6 -Data sharing via cables

Power down the crate.
Swap the EIC from slot 2 to slot 1.
Cards plugged into the crate: CCC, 1 EIC in slot 1, 6 RCs,  and the RC to be tested.
In the course of the test, the RC to be tested will change its RC slot from slot 5 to slot 0 to slot 1.

To start, put the  RC to be tested in slot 5, power up the crate.
Connect the J5 (50 pin) connector on RC in slot 1 and RC in slot 5 with the appropriate cable.
>run_RC_test6a
Here is an annotated version of the script output.

Power down the crate, swap the RCs in slot 5 and slot 1 with each other. The RC to be tested is now in RC slot 1.
Reconnect the J5 (50 pin) connector on RC in slot 1 and RC in slot 5.
Rerun the test script.
>run_RC_test6b
Here is an annotated version of the script output.

Disconnect the cable from the J5 connectors. The RC to be tested is still in slot 1.
Connect the J3 (50 pin) connector on RC in slot 1 and RC in slot 0 with the cable.
>run_RC_test6c
Here is an annotated version of the script output.

Power down the crate, swap the RCs in slot 1 and slot 0 with each other. The RC to be tested is now in RC slot 0.
Reconnect the J3 (50 pin) connector on RC in slot 1 and RC in slot 0.
Rerun the test script.
>run_RC_test6d

Here is an annotated version of the script output.


==>> Follow the directions the scripts print out.

==>> The scripts each take about 4.5 minutes to run.
Before the test patterns are written to the memories (LUTs), the content of each memory addresses is set to zero first. This takes about 0.5 minutes per RC. The red LED on the front of an RC is on while writing to its memories takes place.

==>> Some of the scripts require the use of a 50-pin cable to connect RCs. Follow the directions the script prints to the screen.

==>> Check the relevant pins on the EIC on U125, U126 and on U66 for the expected values.

These chips are located on the top side of the EIC board, the red squares here give you a hint where. The chips are PLCC, with 28 pins. Pin 1 is marked by a little dot over it on the chip plastic case, and the pin numbers increase counter-clock-wise, i.e. the pins at the corners are: Pins 4 & 5, 11 & 12, 18 & 19, 25 & 26.

On the scope, trigger threshold should be about -1.3 V, trigger on the rising edge, use "auto" trigger mode, time axis scale 10 ns, y axis scale 500 mV. The signals are 160 MHz ECL signals, i.e. one bit is 6.25 ns long. Connect the scope probe ground to any of the metal ground pins on the RC.

==>> Report the results, together with card bar code and date, in a copy of this cable paths checklist
This checklist and the annotated version of the output of the scripts give directions which pins to check and which values to expect.
The instructions on the checklist concerning running specific vmedia scripts are carried out automatically by the tun_RC_test6n scripts. You do not have to carry them out yourself.

==>> Report success or failure of the test in the elog, along with any comments or observations.

==>> File the completed checklist in the appropriate folder.

Test 7 - Pattern test (energy sums)

Powed down the crate to load it fully.
Cards plugged into the crate: CCC, JSC, 7 EICs,  6 RCs and the RC to be tested in slot 3.
The JSC has to be located in the slot marked with a green permanent marker.
Power up the crate.
>run_RC_test7


==>> After this script has run, these bit patterns should be visible on the JSC output connectors J4, J5 and J6.

Attention: You have to probe on the JSC connectors J4, J5, J6, NOT on the corresponding connectors on the JSC Mezzanine card.
The pin numbering of J4, J5, J6 is here. Attention: Pin 34 on J4, J5, J6 on the JSC is in the LOWER LEFT CORNER.

Attention: When the RC to be tested is in slot 3, as it should, you have to check only  those pins on the JSC output connectors that correspond to  RC slot3, i.e. J6 pins 13 - 29 and pins 59 - 63.

On the scope, thrigger threshold should be about -1.3 V, trigger on the rising edge, time axis scale 50 ns, y axis scale 500 mV. The signals are 80 MHz ECL signals, i.e. one bit is 12.5 ns long.

Use pin 35 on J6 as trigger source. The bit pattern on this pin is 0001 (hex) = 00000000000001, i.e. only a single bit should be set to "1". It is pratical to use a thin wire to connect the scope probe to the trigger pin. For this, use the scope probe with one of the cylindrical hoods with a hook at their tip. Use the connector metal shell as the scope probe ground.

Look at the other pins with the second scope probe. The table below lists what you should see on the scope. The bottom signal on the scope shots is always one of the trigger bits.
Note: The direction of the time axis on the scope is from left to right and the LSB comes first in time, i.e. the LSB is in the leftmost position. When writing/reading a binary number on paper, the direction is also from left to right, but with the LSB on the rightmost position.


Hex
Binary
Scope shot
0303
0000 0101 0000 0101
0303
0F0F
0000 1010 0000 1010
0F0F
3333
0000 1111 0000 1111
3333
3C3C
0101 0000 0101 0000
3C3C
3F3F
0101 0101 0101 0101
3F3F
C3C3
0101 1111 0101 1111
C3C3
CFCF
1111 0101 1111 0101
CFCF

This annotated version of the script output give some more directions.
Before the test patterns are written to the memories (LUTs), the content of each memory addresses is set to zero first. For the RCs, this takes a while. The red LED on the front of the cards are on while writing to the memories takes place.

==>> Report success or failure of the test in the elog, along with any comments or observations.


Test 8 - Pattern test (electrons)

Cards plugged into the crate: CCC, JSC, 7 RCs,  6 RCs and the RC to be tested in RC slot 3.
The JSC has to be located in the slot marked with a green permanent marker.
>run_RC_test8

==>> After this script has run, these bit patterns should be visible on the JSC Mezzanine card output connectors J5 and J6.

Attention: You have to rpobe on the JSC Mezzanine card connectors J5, J6, NOT the J5, J6 connectors directly on the JSC.
The pin numbering of J5 and J6 is here. Attention: Pin 34 on J5, J6 on the JSC Mezzanine card is in the UPPER RIGHT CORNER.

On the scope, thrigger threshold should be about -1.3 V, trigger on the rising edge, time axis scale 50 ns, y axis scale 500 mV. The signals are 80 MHz ECL signals, i.e. one bit is 12.5 ns long.

Use either pin 27 or pin 29 as trigger source. The bit pattern on these pins is 0002 (hex) = 00000000000010, i.e. only a single bit should be set to "1". It is pratical to use a thin wire to connect the scope probe to the trigger pin. For this, use the scope probe with one of the cylindrical hoods with a hook at their tip. Use the connector metal shell as the scope probe ground.

Look at the other pins with the second scope probe. The table below lists what you should see on the scope. The bottom signal on the scope shots is always one of the trigger bits.
Note: The direction of the time axis on the scope is from left to right and the LSB comes first in time, i.e. the LSB is in the leftmost position. When writing/reading a binary number on paper, the direction is also from left to right, but with the LSB on the rightmost position.

Hex
Binary
Scope shot
0002
0000 0000 0000 0010

0000
0000 0000 0000 0000
0000
0505
0000 0101 0000 0101
0505
0A0A
0000 1010 0000 1010
0A0A
0F0F
0000 1111 0000 1111
0F0F
5050
0101 0000 0101 0000
5050
5555
0101 0101 0101 0101
5555
5F5F
0101 1111 0101 1111
5F5F
F5F5
1111 0101 1111 0101
F5F5
FFFF
1111 1111 1111 1111
FFFF

This annotated version of the script output give some more directions.
Before the test patterns are written to the memories (LUTs), the content of each memory addresses is set to zero first. For the RCs, this takes a while. The red LED on the front of the cards are on while writing to the memories takes place.

==>> Report success or failure of the test in the elog, along with any comments or observations.




Before test 9 can be performed, the 8 Receiver Mezzanine Cards have to be mounted first. Return the card to the mechanical team.

Test 9 - Serial link test (Vitesse to phase ASIC)

RC components layout top

POINT OUT BELOW MENTIONED CHIPS/RESISTORS ON LAYOUTS

RC component layout bottom

Example: RC schematics D0717, RECV_EMC_0-1 and D0734, RECV_HAD_0-1
Note: "ZRO", "ONE" refer to two neighboring bins in eta, called Data_ZRO and Data_ONE at the output of the phase ASIC.


EM - Scope view
EM - Where to probe
Had - Scope view
Had - Where to probe
Data0
Bit 0
D0717: U333, pin 1
see EM
D0734: U375, pin 1
Data1
Bit 1
D0717: U333, pin 4
see EM
D0734: U375, pin 4
Data2
Bit 2
D0717: U357, pin 1
see EM
D0734: U401, pin 1
Data3
Bit 3
D0717: U357, pin 4
see EM
D0734: U401, pin 4
Data4
Bit 4
D0717: U400, pin 1
see EM
D0734: U358, pin 1
Data5
Bit 5
D0717: U400, pin 4
see EM
D0734: U358, pin 4
Data6
Bit 6
D0717: U374, pin 1
see EM
D0734: U334, pin 1
Data7
Bit 7
D0717: U374, pin 4
see EM
D0734: U334, pin 4
Data8 - Data15
see Bit 0 - Bit 7
D0717: U335, U359, U403, U377

D0734: U378, U404, U360, U336
Quality bit 1
FG0
D0717: U373, pin 4
QB_AB
D0716: R167
Quality bit 2
see FG0
D0717: U376, pin 4
see QB_AB
D0716: R168
Bunch crossing 0 BX0
D0738: U453, pin 4
see EM
D0738: U453, pin 7
Error detection code (EDC)

D0738: R110, pins 1, 3
D0738: R111, pins 1, 3

D0738: R110, pins 2, 4
D0738: R111, pins 2, 4


==>> Read Pam's "STC to RC link test" checklist for more explanations.

==>> The pattern send by the vmedia  scripts "inc_long_error_cn.txt" is incrementing. The very first cycle has an error in its Hamming code.
With SW 16.1 on, this results in the data on the first clock cycle being zeroed as result of the non-zero EDC (error detection code).
This is visible in the Data0 - Data15 patterns. To see them on the scope, thrigger threshold should be about -1.3 V, time axis scale 100 ns, y axis scale 500 mV. The signals are 80 MHz ECL signals, i.e. one bit is 12.5 ns long.  Trigger on the EDC of the phase ASIC in question. The data bits should be zero on the clock cycle that coincides with the EDC being "1".

==>> The test assumes that 4 STC-T cards with these base address settings (ADD THEM HERE) are used on 4 links of the RC.

==>> Fill in Pam's "STC to RC link test" checklist after each test.

==>> Report success or failure of the test in the elog, along with any comments or observations.

==>> File the completed checklist in the appropriate folder.





Questions or comments to: Pam Klabbers (pamc@hep.wisc.edu) or Monika Grothe (grothe@hep.wisc.edu)