Hello, all, I know this refers to graveyard parts, but we have reason to keep using them.
Anyway, I made a new batch of motherboards that use a 5 V Spartan as the slot select control logic. I have made over 20 of these before. i did a revision of the design, but this particular area had no schematic change, and I really didn't move any traces, either. I do have a case for bus reflections, as the bus is
16 inches long. The FPGA detects unoccupied card slots and jumps serial config strings across the empty positions, and also has some serial config registers on the FPGA. Well, this newest version worked erratically, and after a couple days working with it, I figured out reflections on the serial clock that goes to all board slots plus the FPGA were double-clocking the FPGA. I patched a series termination resistor on the output of the driver, and the board now works perfectly.So, what caused this change? I'm fairly sure the board layout is not to blame. The older boards were made with 2003 Spartan XCS20-3PQ208C chips, the newer ones were made with 2009 vintage chips, otherwise the same designation, and just purchased a few weeks ago from Avnet. Could a more recent fab run at Xilinx have been made with significantly different speeds in the I/O? Of course, this COULD just be a circuit that was so close to the edge that I've just been really lucky, but I did make 20+ of these with no sign of this problem before.
(This is a 6-layer board, always made at the same board house.)
Jon