FPGARelated.com
Forums

Weird JTAG lockup issue, where is the BUG?

Started by Antti July 9, 2006
David R Brooks schrieb:

> Austin Lesea wrote: > > Anti, > > > > All devices after Virtex E (Sparta 2E) have no extra current required > > over that which is specified in the data sheet for minimum power on > > current. > > > > Is it possible that the configuration you are loading requires more > > power than you have available? > > > > I have seen DONE go high, only for the power supply to crash, fold back, > > and the part starts to reconfigure again. > > > > As for the JTAG state machine, it is definitely possible for it to enter > > a "bad" state from which it may never recover. It is only with Virtex > > 4, and now Virtex 5, that we have worked carefully on the state machines > > to harden them from soft errors, which might place them in an > > unrecoverable state. Irradiation with neutrons can quickly find those > > hidden bad states! > > > I am surprised there: I thought the JTAG standard had defined that state > machine so that a limited number (5, by memory) of clocks with TMS=1 > would force it out of anything.
Hi David, yes you are correct - 5 times TCK when TMS=1 *MUST* transit to TLR state. but the issue was max TCK frequency that another JTAG device in the chain was able to handle. It happened to be 100KHz what should have make all JTAG comms to fail, but unfortunatly did not. Eg the 'BAD JTAG' device operated "good enough" in order not to disturb other devices unless some sequence that was dependant on the bitstream loaded to FPGA made it really upset. As I did not see any problems with several design I wrongly assumed the 'slow max TCK' device was working properly at TCK=200KHz (Impact Cable III) when the only command sent to it was BYPASS. This wasnt the case. A bitter experience - did cost me several hours wasted with uneneccary troubleshooting. So beware - if the JTAG chain includes devices with ARM core, then make sure the ARM clock is running at desired frequency in order for the JTAG to work properly. I think some newer ARM cores have that bug fixed, but there are several ARM licensors still using the Buggy ARM IP. Antti