J
Jon Elson
Guest
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
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