UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor mheld
Visitor
7,498 Views
Registered: ‎03-01-2011

Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

Good day,

 

I've been building up a board with a Spartan3AN/200 - FT256 package.  I have been wrestling with a problem of not being able to configure the device across 2 boards, which makes me think either a) I'm destroying the device in reflow or b) I did something wrong in the design.

 

What happens:  When I try to read the JTAG IDcode, I get 0x00042003.  (It should be X2618093)  I can read this (wrong) value back very reliably.  I thought at first that my JTAG cable/device was doing something wrong, however it immediately and correctly read the IDCode from a Coolrunner CPLD.  I have tried reading the IDCode with 2 methods:  Default IDCode (Go to DR-Scan and clock x32, as default JTAG instruction is IDCODE per xilinx appnotes), and scanning in the IDCODE instruction into the IR, then reading the data register.  The 42003 is read using the default method, and specifically entering the IDCode instruction yields all 0's.

 

The JTAG signals all twiddle cleanly on the scope, and it doesn't matter what speed I run the port at.  I've run as slow as 1Hz and up to ~1kHz with no difference.  I'm certain the JTAG lines are actually connected to the part as well.  The only thing I'm not certain are connected (no xray) are the 1.2V lines, but disabling the 1.2V regulator sure disables things quickly (and INIT_B stays active), so my best guess is that's correct.  (And rail ripple on both 1.2 and 3.3 is below reasonably detectible limits with my scope)

 

I have tried adding pull-up resistors to just about every dual-purpose pin, setting M0-2 to various modes (which shouldn't matter for JTAG, really), various pullup/pulldown/float for PUDC_B (HSWAP_EN for other chips), and I'm getting to wits end.   I've gone through just about every Xilinx appnote/whitepaper that might hold a hint as to what I'm doing wrong, but I haven't found anything yet.

 

The first board that was built up that also exhibited this same issue was X-rayed, so I assumed something got fried with the chip, but the second board, producing the same results, hasn't been xrayed. 

 

I'm at wits end, does anyone have any tips or things that I might check?  I'm running out of rope for this project.  I'm attaching a screenshot of a JTAG read.  The full size image (12mb) can be found at dione.net/crud/jtagdebug.png


Thanks,

 

Martin Held

Raindrop Professionals

jtagdebug_small.png
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
9,815 Views
Registered: ‎07-30-2007

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

The power supplies look fine, take a look at TCK and see if the CAP changed the behavior.  Since the failures are moving around it sounds like an SI issue.

 

You can try a split thevanin resistor termination on the TCK pin by the FPGA, or a series resistor to see if that helps.

17 Replies
Visitor dvarn001
Visitor
7,483 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

Hi Martin,

 

I'm having a similar problem, hopefully an answer will appear for one of us... see the CCLK issue recently posted.

 

Doug

0 Kudos
Xilinx Employee
Xilinx Employee
7,473 Views
Registered: ‎07-30-2007

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

That sounds odd and at this stage of the game there are only two things which are affecting the device.

 

1 - Power supplies, make sure that all the power supplies are ramping clean with monotonic ramp rates and also make sure there isn't a lot of noise on any of the supplies.  It always best just to quickly double check that the power rails seen by the device are looking clean and its best to scope right at the device.

 

2 - The edge transitions on TCK need to be clean as well.  Reflections on the clock line will be due to edge rates, so slowing down to very slow.  This can be seen my a closely zoomed on scope shot of the TCK rising and falling edges.

 

It is also good to see if the failure is moving around or if it is determenistic.  Run the tests multiple times and see if the results are static.  If the results are the same there is a logical error, and if the results change ever time there is an SI issue.

Visitor mheld
Visitor
7,469 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

I can't say I've checked the power supplies in too much detail, but I'll double check those.  There's no ripple, but I haven't checked monotonicity in the ramp, guess that's next.  As for CLK being clean, it should be.  I've zoomed in on the TCK line and found nothing odd.  Maybe I should add a cap across TCK just to be sure, give it a little load and clean up any reflections...

0 Kudos
Visitor mheld
Visitor
7,466 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution
The power supplies ramp cleanly. Putting a cap on TCK gives me odd results, however, and my IDCode readback is unreliable and different each time. Perhaps something is up with my jtag chain, not sure. Again, it worked fine for a XC9536XL, but I'm not done with this problem yet!
0 Kudos
Visitor mheld
Visitor
7,465 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

And just to show the PSU not being the issue... unless I'm screwing the pooch on ramp time (which I understand to not be the issue, but monotonicity instead)

psudebug.png
0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
9,816 Views
Registered: ‎07-30-2007

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

The power supplies look fine, take a look at TCK and see if the CAP changed the behavior.  Since the failures are moving around it sounds like an SI issue.

 

You can try a split thevanin resistor termination on the TCK pin by the FPGA, or a series resistor to see if that helps.

Visitor mheld
Visitor
7,420 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

I thought it might be SI at first as well, but the scope shows quite clean.  I'm trying another tact and have a programmer that will give me a total trace length of less than 1", and will report on what success, if any, I get out of that.

0 Kudos
Visitor mheld
Visitor
7,392 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

Well, I am quite annoyed that it was a SI issue.  The FPGA programmer worked fine for a CPLD, but didn't work for squat on the FPGA.  Now that I used a different (albeit similar) programmer with a short cable length (effectivly the length of 2 .1" headers, plus what little board length traces to get to opposite sides of the FPGA), I can read the IDCode properly.

 

Sigh.  Thank you all for your help.

0 Kudos
Teacher eteam00
Teacher
7,389 Views
Registered: ‎07-21-2009

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

Sigh.  Thank you all for your help.

I believe you owe Greg Meredith a beer!

 

You might want to go back to your original JTAG programmer, the one with which you were having the SI problem, and see what sort of 'scope techniques would show the problem which you now know to exist.  A digital 'scope can "lie" or mislead in many ways, if not used carefully enough.

 

Specifically, suggestions for probing such problems:

  • Position scope probe only at the TCK input (or load).  (if multiple devices on the JTAG chain, that's another discussion topic).
  • Single trace only (in many D scopes, multiple traces will result in aliasing artifacts which would shock you).
  • Set display mode to infinite persistence mode, and zoom the timebase to a single edge (rising or falling).
  • Repeat capture for both rising and falling edge of TCK.

Sometimes the electrical presence of the scope probe will cause the circuit behaviour to change, for either the better or the worse.  This is, in itself, a suggestion that SI is dicey.

 

- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
0 Kudos
Visitor mheld
Visitor
5,735 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution
Indeed. Greg, just let me know if/when in Central Oregon or Portland, plenty of good microbrews around here. :)
0 Kudos
Teacher eteam00
Teacher
5,733 Views
Registered: ‎07-21-2009

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

Indeed. Greg, just let me know if/when in Central Oregon or Portland, plenty of good microbrews around here.

Hey, I'm in the PDX area.  And yes, the local microbrews are very good indeed!  We can toast to Greg together!

 

In any case, please note some additions to my previous post...

 

- Bob

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
0 Kudos
Visitor mheld
Visitor
5,730 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution
I thought I had checked both ends, but I may not have. I will have to at some point, though now that I have basic JTAG debugging working, I'm behind schedule and itching to catch up :) It's a crummy scope (surplus, engineering tester and "only" 60Mhz bandwidth, with loads of common mode noise), but maybe I'll be able to pick something up.

I'm in Bend normally, but my parents live in Newberg, so there are occasional visits to the area every couple of months.
0 Kudos
Teacher eteam00
Teacher
5,728 Views
Registered: ‎07-21-2009

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

With a 60MHz scope, don't bother with the suggestions I made.  60MHz isn't adequate for SI checking of high-speed digital signals.

 

Do you have a budget for equipment purchases?  See what used 500MHz scopes are going for on eBay or craigslist (and don't forget the probes).  With the electronics industry (particularly in Oregon) being so depressed, there should be some good deals to be had from ex-Tektronix employees (I am ex-Tek, myself).

I'm in Bend normally, but my parents live in Newberg, so there are occasional visits to the area every couple of months.

I'm in a suburb of Gaston, 30 minutes from Newberg.  Local venues here and here.

 

- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
0 Kudos
Visitor mheld
Visitor
5,726 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

My budget is pretty much non-existant.  Got a lucky first-entry score, paid $10 for my scope at RAMS, the one thing I really miss about being an employee there. :)

0 Kudos
Teacher eteam00
Teacher
5,723 Views
Registered: ‎07-21-2009

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

My budget is pretty much non-existent.

So, is this a school project or are you an "entrepreneur"?

 

- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
0 Kudos
Visitor mheld
Visitor
5,720 Views
Registered: ‎03-01-2011

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution
Entrepreneur. Budget is mostly board manufacturing, components, rent, and food :P
0 Kudos
Teacher eteam00
Teacher
5,715 Views
Registered: ‎07-21-2009

Re: Spartan 3AN/200 JTAG Idcode debugging on a new board

Jump to solution

Sent you PM -- Bob

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
0 Kudos