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
Reply by Austin Lesea●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 rickman●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 Evan Lavelle●August 7, 20062006-08-07
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