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
3.3V configuration of Spartan-3?
Started by ●August 7, 2006
Reply by ●August 7, 20062006-08-07
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.
Reply by ●August 7, 20062006-08-07
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
Reply by ●August 8, 20062006-08-08
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