I'm troubleshooting the first rev of my first Spartan 6 PCB design; this is sort of a learn-by-making-all-the-mistakes process, but I could sure use a hint or two here from the gurus.
Obviously there are a million things that can lead to a board not coming up, but my understanding is that very few things can lead to the situation where the JTAG interface won't even shift (i.e. TDO stuck at zero).
For example, the JTAG interface doesn't rely on any of the clock inputs, nor the I/O banks. Basically, if Vcore (1.2v) and Vccaux (3.3v) are supplied, and there are no shorts, then the JTAG ought to work, right? Even mis-configured mode pins (M0, M1) shouldn't affect this.
Designing a good power distribution network (bypass caps) is tricky, but even getting that wrong shouldn't matter for something running at the JTAG TCK rate (dozens of khz), right? FWIW, I tried the board without any of the bypass caps -- nothing soldered down but the two voltage regulators and the Spartan chip -- still no luck.
Current draw is around 11mA from the 6V supply, so I doubt there's a short. I think that sounds right for an unconfigured device with no pins toggling, right? I'm only powering one of the four I/O banks (same supply as Vccaux); the others are unconnected.
Thanks for any ideas or suggestions or ideas on what to try next (or pointers on which M to RTF)!
(PS: this board doesn't use any high speed I/Os or anything fancy like that.. in fact, unbelievably, the design clock input is the *only* user I/O pin! All communication with the device is via BSCAN_SPARTAN6. For that reason and others this is probably the simplest Spartan6 board ever designed, which is the only reason I attempted it!)