P
Philip Pemberton
Guest
Here's a good mind bender for the gurus...
I have a device with an FPGA and a PIC microcontroller (among other
things). The two communicate over a 12-line link:
8 multiplexed data/address lines -- can be In or Out
2 Address Load lines -- low and high. Inputs to the FPGA.
Read and Write -- inputs to the FPGA
I can make these outputs or inputs on the PIC, and can do the same on the
FPGA. The I/O state above is simply how they're configured in the
"working" hardware.
Problem is, the boards I'm getting back from manufacturing have really
shoddy yields. 70% failure rate. I'm getting bridges and opens, nearly
always on the PIC-to-FPGA lines. Anyway, enough of that. Suffice it to
say, I have a stack of almost-working boards with various issues. Visual
inspection is not finding them, and shotgun-resoldering the PIC and FPGA
tends to cause more problems.
Basically: I need to find the shorts and opens, and fix them, without
affecting the rest of the pins (which I assume to work). In order to do
this, I need to know where those shorts and opens are.
Problems:
1) I don't know which pins work. I can't even guarantee that any of
them work.
2) The only real output the FPGA has is an LED
3) I'd like to find as many shorted pins as possible in each test pass.
If I can find and eliminate them all, so much the better.
So far the best idea I've come up with (actually a friend came up with
it) is to load a bitstream which reads the state of the other 10 lines.
The FPGA clocks out 20 '0' bits, a '1', then the state of the 10 pins.
This allows the PIC/PC combination to automatically test the whole set of
remaining combinations.
Can anyone think of an easier way to do this?
Thanks,
--
Phil.
usenet10@philpem.me.uk
http://www.philpem.me.uk/
If mail bounces, replace "10" with the last two digits of the current year
I have a device with an FPGA and a PIC microcontroller (among other
things). The two communicate over a 12-line link:
8 multiplexed data/address lines -- can be In or Out
2 Address Load lines -- low and high. Inputs to the FPGA.
Read and Write -- inputs to the FPGA
I can make these outputs or inputs on the PIC, and can do the same on the
FPGA. The I/O state above is simply how they're configured in the
"working" hardware.
Problem is, the boards I'm getting back from manufacturing have really
shoddy yields. 70% failure rate. I'm getting bridges and opens, nearly
always on the PIC-to-FPGA lines. Anyway, enough of that. Suffice it to
say, I have a stack of almost-working boards with various issues. Visual
inspection is not finding them, and shotgun-resoldering the PIC and FPGA
tends to cause more problems.
Basically: I need to find the shorts and opens, and fix them, without
affecting the rest of the pins (which I assume to work). In order to do
this, I need to know where those shorts and opens are.
Problems:
1) I don't know which pins work. I can't even guarantee that any of
them work.
2) The only real output the FPGA has is an LED
3) I'd like to find as many shorted pins as possible in each test pass.
If I can find and eliminate them all, so much the better.
So far the best idea I've come up with (actually a friend came up with
it) is to load a bitstream which reads the state of the other 10 lines.
The FPGA clocks out 20 '0' bits, a '1', then the state of the 10 pins.
This allows the PIC/PC combination to automatically test the whole set of
remaining combinations.
Can anyone think of an easier way to do this?
Thanks,
--
Phil.
usenet10@philpem.me.uk
http://www.philpem.me.uk/
If mail bounces, replace "10" with the last two digits of the current year