FPGARelated.com
Forums

3.3V configuration of Spartan-3?

Started by Evan Lavelle August 7, 2006
I've got a Spartan-3 which is configured (in master serial mode) from
an XCF04S, and which is also in a JTAG chain which looks like this:

connector -> Serial PROM/XCF04S -> XC3S1000 -> 3.3V device ->-
connector <---------------------------------------------------|

The problem is that bank 4 on the Spartan-3 must have a VCCIO of 3.3V,
and the dedicated JTAG and configuration pins on the Spartan-3 are
powered on VCCAUX, at 2.5V. The last device in the chain is also a
3.3V-only device.

I've read Kim Goldblatt's appnote on this (XAPP453), and the obvious
answer is to use a 3.3V JTAG/programming connector, and to set the I/O
voltage on the PROM to 3.3V. There are 4 inputs on the Spartan-3 which
are overdriven (PROG_B, TMS, TCK, TMI) so they need limiting resistors
on them.

The problem is, I don't really like this. There are 4 (or maybe just
3) input-protection diodes in the Spartan-3 which are almost
permanently on, at about 9.5mA each. The Spartan-3 data sheet says
that the inputs won't be damaged if the input voltage is kept below
about 3.1V, but the last thing I want is a 676-pin package with blown
inputs which can't be configured. Am I just being paranoid? The other
problem is that my VCCAUX regulator now has to potentially supply
~120mA instead of ~80mA.

So, my plan B is to run JTAG and configuration at 2.5V instead. This
means that VCCJ and VCCO on the XCFO4S are at 2.5V instead of 3.3V,
and:

1 - the DIN input on the Spartan-3 has reduced noise immunity (2.5V
input, 3.3V buffer), but this should be Ok

2 - the 4 JTAG inputs on the other 3.3V device in the chain also have
reduced noise immunity; again, should be Ok

3 - the TDO from the 3.3V device gets back to the programming
connector as 3.3V, instead of 2.5V. I can handle this with a 74AHC14
buffer (a spare from the JTAG drivers at the connector)

4 - INIT_B at the Spartan has an internal pullup to 3.3V, but the
XCF04S has a 2.5V INIT_B input. However, the XCF04S data sheet says
that the inputs are at least 3.6V-tolerant for VCCO at a nominal 2.5V.
So, I can just pull up INIT_B to 3.3V anyway.

At first sight, it seems to me that plan B is much better than plan A.
Any thoughts?

Thanks -

Evan
Evan Lavelle wrote:
> I've got a Spartan-3 which is configured (in master serial mode) from > an XCF04S, and which is also in a JTAG chain which looks like this: > > connector -> Serial PROM/XCF04S -> XC3S1000 -> 3.3V device ->- > connector <---------------------------------------------------| > > The problem is that bank 4 on the Spartan-3 must have a VCCIO of 3.3V, > and the dedicated JTAG and configuration pins on the Spartan-3 are > powered on VCCAUX, at 2.5V. The last device in the chain is also a > 3.3V-only device. > > I've read Kim Goldblatt's appnote on this (XAPP453), and the obvious > answer is to use a 3.3V JTAG/programming connector, and to set the I/O > voltage on the PROM to 3.3V. There are 4 inputs on the Spartan-3 which > are overdriven (PROG_B, TMS, TCK, TMI) so they need limiting resistors > on them. > > The problem is, I don't really like this. There are 4 (or maybe just > 3) input-protection diodes in the Spartan-3 which are almost > permanently on, at about 9.5mA each. The Spartan-3 data sheet says > that the inputs won't be damaged if the input voltage is kept below > about 3.1V, but the last thing I want is a 676-pin package with blown > inputs which can't be configured. Am I just being paranoid? The other > problem is that my VCCAUX regulator now has to potentially supply > ~120mA instead of ~80mA. > > So, my plan B is to run JTAG and configuration at 2.5V instead. This > means that VCCJ and VCCO on the XCFO4S are at 2.5V instead of 3.3V, > and: > > 1 - the DIN input on the Spartan-3 has reduced noise immunity (2.5V > input, 3.3V buffer), but this should be Ok > > 2 - the 4 JTAG inputs on the other 3.3V device in the chain also have > reduced noise immunity; again, should be Ok > > 3 - the TDO from the 3.3V device gets back to the programming > connector as 3.3V, instead of 2.5V. I can handle this with a 74AHC14 > buffer (a spare from the JTAG drivers at the connector) > > 4 - INIT_B at the Spartan has an internal pullup to 3.3V, but the > XCF04S has a 2.5V INIT_B input. However, the XCF04S data sheet says > that the inputs are at least 3.6V-tolerant for VCCO at a nominal 2.5V. > So, I can just pull up INIT_B to 3.3V anyway. > > At first sight, it seems to me that plan B is much better than plan A. > Any thoughts?
There are a lot of details there that will take some real work to understand. I just dealt with configuring a Spartan 3 and dealt with the whole thing by just using a separate JTAG port for the FPGA. I have spent some significant time looking into using JTAG for both development purposes and for boundary scan. The one thing I got from all corners is that you are much better off avoiding the various problems you may encounter (not just interface voltage issues) in a single scan chain by not connecting everything in one chain. Our in-house boundary scan expert does not like using the Xilinx parts because of various problems when doing the tests, even though they are not in the same scan chain. I have been told by nearly every chip vendor that they don't support chaining their product with other brands of chips if they support chaining at all! I think Xilinx software may actually be a bit better behaved when working with other chips in the scan chain, but I still would not recommend this depending on the other chips. TI says they support scan chains in their literature and was a major proponent a decade or so ago. But when I contacted support about using their DSP chip emulation software in a scan chain they recommended not to. It seems to be a common practice to disregard the chaining capabilities of JTAG unless you really have to save the board space. Instead give each chip a separate connector. During development this will let you use multiple tools at the same time and if you need boundary scan in manufacturing they make tools that will drive multiple chains.
Evan,

Yes, you are being paranoid.

Unlike others, our app notes have been tested, and reviewed by senior 
engineers...

Austin

Evan Lavelle wrote:

> I've got a Spartan-3 which is configured (in master serial mode) from > an XCF04S, and which is also in a JTAG chain which looks like this: > > connector -> Serial PROM/XCF04S -> XC3S1000 -> 3.3V device ->- > connector <---------------------------------------------------| > > The problem is that bank 4 on the Spartan-3 must have a VCCIO of 3.3V, > and the dedicated JTAG and configuration pins on the Spartan-3 are > powered on VCCAUX, at 2.5V. The last device in the chain is also a > 3.3V-only device. > > I've read Kim Goldblatt's appnote on this (XAPP453), and the obvious > answer is to use a 3.3V JTAG/programming connector, and to set the I/O > voltage on the PROM to 3.3V. There are 4 inputs on the Spartan-3 which > are overdriven (PROG_B, TMS, TCK, TMI) so they need limiting resistors > on them. > > The problem is, I don't really like this. There are 4 (or maybe just > 3) input-protection diodes in the Spartan-3 which are almost > permanently on, at about 9.5mA each. The Spartan-3 data sheet says > that the inputs won't be damaged if the input voltage is kept below > about 3.1V, but the last thing I want is a 676-pin package with blown > inputs which can't be configured. Am I just being paranoid? The other > problem is that my VCCAUX regulator now has to potentially supply > ~120mA instead of ~80mA. > > So, my plan B is to run JTAG and configuration at 2.5V instead. This > means that VCCJ and VCCO on the XCFO4S are at 2.5V instead of 3.3V, > and: > > 1 - the DIN input on the Spartan-3 has reduced noise immunity (2.5V > input, 3.3V buffer), but this should be Ok > > 2 - the 4 JTAG inputs on the other 3.3V device in the chain also have > reduced noise immunity; again, should be Ok > > 3 - the TDO from the 3.3V device gets back to the programming > connector as 3.3V, instead of 2.5V. I can handle this with a 74AHC14 > buffer (a spare from the JTAG drivers at the connector) > > 4 - INIT_B at the Spartan has an internal pullup to 3.3V, but the > XCF04S has a 2.5V INIT_B input. However, the XCF04S data sheet says > that the inputs are at least 3.6V-tolerant for VCCO at a nominal 2.5V. > So, I can just pull up INIT_B to 3.3V anyway. > > At first sight, it seems to me that plan B is much better than plan A. > Any thoughts? > > Thanks - > > Evan
On 7 Aug 2006 07:37:19 -0700, "rickman" <spamgoeshere4@yahoo.com>
wrote:

>It seems to be a common practice to disregard the chaining capabilities >of JTAG unless you really have to save the board space. Instead give >each chip a separate connector. During development this will let you >use multiple tools at the same time and if you need boundary scan in >manufacturing they make tools that will drive multiple chains.
Thanks Rick. We've actually got 3 chains on this board, covering 17 devices. The company doing the JTAG kit and software seem to be happy with the arrangement, but we'll have to wait and see how it turns out. A single 2.5V JTAG chain for the Spartan only solves half of this problem, though, since there are still 5 pins connected between the spartan and the PROM. It seems to me to make more sense to run Vcco on the PROM at 2.5V (rather than 3.3V, which is the official line from XAPP453), for the simple reason that the XCF04S is much more tolerant to high input voltages than the Spartan. I'll give it a go and see. Evan