/ - Board Testing Home - // - Overview - // - Tests Without the Test Board - // - Tests with the Test Board - // - Pre-Burn Assembly - // - New Tests After Burn-In - // - Final Assembly - /

Overview

Preface

A word about ESD (ElectroStatic Discharge): ESD kills. Boards. Much like cardiovascular disease in humans, it can kill slowly, over time, unnoticed until it's too late (if a component fails once it's in the test machine, there is a possibility every 6 months or so of replacing it; in other words, if some part of a board fails once it's in the machine, there is next to nothing that can be done to fix that.) Always handle the boards by their edges and don't touch any of the components until you've grounded yourself by touching some conductive ground on the board. This is actually easy, since there are many grounds: below each of the input connectors there is a large ground jumper, the soldered pads surrounding the mount holes on the board are grounded, and so are the coverings of the SCSI and LEMO connectors. More on those later.

When inserting or removing components (e.g., the clock or a mezzanine card) be sure that the power is off, otherwise these components can be damaged.

Board Functionality and Layout

The test procedure is essentially the same for all of the ALCT (Anode Local Charged Track) boards. The difference is what files are loaded into the EEPROMs (Electronically Erasable Programmable Read-Only Memory), the number of chips on the board, and thus the amount of work that has to be done in testing them.

The purpose and function of the boards is to gather data from the AFEBs (Anode Front-End Board) and CFEBs (Cathode Front End Board) in the form of raw signal hits, filter out the good stuff from the bad, and send it up the processing chain to the next board. The signals are taken up by the 40 pin black plastic array of connectors that occupy much of the board's real estate. Only 16 out of the 40 pins are used to carry data, and therefore the number of inputs on the boards are integral multiples of 16:

From the number of inputs comes the naming scheme of the boards and filenames. Notice that the connectors on the board are numbered starting from 1. This is important because the test program on the computer numbers the connectors from 0. So, computer connector number + 1 = board connector number.

The boards have to acquire data at 40MHz, so that is their clock speed. Data input to the boards is first run through a delay chip. The purpose of the delay chip is to set a HIGH signal (delayed by a preset amount) on its output pins if the signal input to it reaches a certain threshold. The threshold and delay time are both set by the Slow Control controller chip on the board (Xilinx Spartan XCS40XL FPGA), which sits below the input connector array on the underside of the board and is programmed by an EEPROM sitting directly on top of it. In turn, the slow control chip programs the delay chips through a serial bus that runs perpendicular to the signals from the inputs and outputs. Since each connector takes 16 inputs, so does the delay chip, and that is also the number of its outputs. These output signals are then run into a multiplexer which runs at 80MHz and collects data from two delay chips and relays it to the mezzanine card. If you look at the back of the board, you can see the delay chips next to the input connectors and a multiplexer for every two right above them.

This data is then fed into the mezzanine card sitting in the middle of the top half of the board. Contained on the card is a Xilinx Virtex FPGA (Field Programmable Gate Array) which is programmed by one or two EEPROMs also located on the mezz card:

Mezz Card Details for Different-Size Boards
Board Size:288384672
Virtex Chip Type:6006001000
No. of EEPROMs:112

It's the job of the Virtex chip to sort out the data and send the good stuff to the next higher-up processing board through the SCSI bus connectors.

Above the Virtex chip, along the edge of the board from left to right (if the board is oriented so that the Virtex chip is superior) are the SCSI, JTAG, LEMO and power connectors.

Below the left edge of the JTAG connector is the clock ON/OFF jumper and the blue clock socket. The pin closest to the JTAG connector (topmost pin) is pin 1, the next one down is 2, and the last one is 3. When 1-2 are shorted (a jumper -- little black plastic connector with gold sheet inside -- is placed over them) the clock is enabled. When 2-3 are shorted, nothing happens, and the clock does not run. During testing, a relatively expensive clock is used, so to protect and reuse it, it's inserted into a blue tray exactly like the one on the board, and this tray in turn is inserted into the board. It does not matter how the clock is oriented in its support tray, but the assembly must be inserted into the board so that the notch on the clock lines up with the little diagram printed on the board below the clock socket. The clock is made by EPSON and is slightly larger than a jumper.

Preparing a Fresh Board

Board Programming

To program the board, the clock must be shut off and a connection has to be established to it:

The board is programmed across the JTAG interface coming out of the computer's LPT (Line Printer Terminal, AKA parallel) port and going into the JTAG connector on the board. On the computer, the ALCT_Test (icon is a microchip) program is used to select what chip should be programmed.

Now is a good time to interject a note about ALCT_Test. Whenever you want the program to talk to the board, you have to open a connection to it by hitting "Open" in the "Setup" tab, then select the function you want to access:

And then hit "Set Chain" to carry-out your selection.

iMPACT is used to actually program the chips:

To check if the slow control is programmed (useful when you're testing a board you didn't start testing from scratch), go into ALCT_Test, "Slow Control" and hit "User ID Check". If it comes up as a bunch of 0s or Fs, then it hasn't been programmed.

Troubleshooting

And by "Troubleshooting", I mean "The board appears to have failed to program and here's what might've gone wrong."

Testing Procedure

Notes

Boards to be tested are usually sitting in a pile behind the plywood board racks. Each board has its own info sheet that is used to keep track of where it is in the test process. These sheets are all in a blue binder sitting on top of the plywood racks. When testing a board, the sheet is taken out of the binder and successfully completed tests are signed off with the tester's initials. When testing is finished, the sheet is returned to the binder. If a board doesn't have a sheet, start a new one for it. Blank sheets can be found in the back of the binder.

If a board fails a test, make a note of what happened and where in the test process the board failed in the error log. The error log is a stapled packet of sheets also sitting somewhere on the plywood rack that has columns for the board #, mezz #, error type, and repair status. Your job is to fill out the first three of those columns. If a board seems to fail a test, always ask someone more experienced to take a look at it first before filling out the error log. Sometimes the error is only minor, and you can ignore it and go on with the other tests (this is especially useful if you've already spent 15 minutes hooking up the board to something and there are other tests that need to be done in this state.) Otherwise, it may be possible to fix it on the spot. But most likely you've simply glossed over a necessary step in the test.

Before you begin the tests, get a blank info sheet and fill in the ALCT Board #, Mezz Board #, and Delay Type. The delay type is written on the delay chips on the underside of the board. Beware that the board may have mixed delay types so it's not enough to look at one chip.

There are two sets of tests: without the test board, and with it. These instructions are written with the assumption that the board's state changes only so much between tests as is specified herein. In other words, the instructions for a test may not necessarily ask for the clock to be enabled or the mezz card to have a certain firmware programmed on it if these things should already been in place if the instructions and tests were done in order.

/ - Board Testing Home - // - Overview - // - Tests Without the Test Board - // - Tests with the Test Board - // - Pre-Burn Assembly - // - New Tests After Burn-In - // - Final Assembly - /

Matt Matolcsi (madhat@ucla.edu); Last revision: 2003/07/16