J'ai une chaîne JTAG connectant 4 FPGA Spartan 6 que je programme en utilisant ISE iMPACT. Le logiciel peut programmer n'importe quel sous-ensemble strict des 4 FPGA d'affilée avec succès et dans n'importe quel ordre. Cependant, lorsque j'essaie de programmer les quatre FPGA, la broche DONE du dernier FPGA ne monte pas et la programmation échoue.
Qu'est-ce qui pourrait être à l'origine de ce comportement étrange?
Remarques:
- Après avoir programmé trois des FPGA, le bit INIT_B du registre d'état du quatrième FPGA est égal à 0, bien que la broche INIT_B soit élevée. Juste avant de programmer le troisième FPGA, ce bit était de 1. Cela suggère que le quatrième FPGA s'est verrouillé.
- Lors de la programmation avec SelectMap, je peux programmer les quatre FPGA sans aucun problème.
- Lorsque je programme trois des FPGA à l'aide de SelectMap, le quatrième ne peut toujours pas être programmé à l'aide de JTAG.
- Chacune des quatre broches terminées est tirée jusqu'à des résistances de 3V3 à 4,7K Ohm, puis attachées ensemble.
Ce que j'ai essayé :
La déconnexion de l'un des FPGA de la chaîne permet de programmer les 3 FPGA restants.
L'échange de la résistance de rappel de 4,7 K Ohms du dernier FPGA contre une résistance de 330 Ohms ne résout pas le problème.
"The first device in a serial daisy chain is the last to be configured."
Voulez-vous dire le dernier de la chaîne ou le dernier à configurer (le premier de la chaîne)? Pourriez-vous fournir un schéma?"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
broches sont attachées ensemble. Pour JTAG, la programmation de plusieurs appareils s'appelle Boundary-Scan Chain. DansChapter 3: Boundary-Scan and JTAG Configuration
, la seule mention de laDONE
broche est"If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
donc laDONE
broche basse est-elle le seul problème? Est-ce qu'il se programme correctement?Réponses:
La
DONE
broche n'est pas utilisée pendant la programmation JTAG et peut être attachée haut:Cependant, si la programmation série est utilisée, toutes les
DONE
broches doivent être liées ensemble etDriveDone
désactivées pour tous les appareils, sauf le premier:Si les deux doivent être utilisés, il existe deux options:
Dans votre cas, je pense que les connecter et les attacher tout en désactivant la
DONE
broche est la meilleure façon de procéder.Tous les numéros de page font référence au Guide de l' utilisateur
la source
INIT_B
haut et que leINIT_B
bit dans le registre d'état est 0, cela m'indiquerait une défaillance matérielle. À moins que vous ne puissiez programmer cette puce indépendamment, ce que je pense que vous avez dit que vous pouviez. LaDONE
broche passe en High-Z pendant la programmation, donc je ne sais pas ce que fait le registre d'état pendant ce point. Si le LSB du registre d'état FPGA précédent est 1, cela indique une erreur CRC dans cet appareil qui peut empêcher la programmation du suivant.Il s'est avéré que le coupable était l'
INIT_B
épingle. Bien que tirée haut, au fur et à mesure que les premiers FPGA étaient programmés, laINIT_B
broche a été progressivement tirée de plus en plus bas en raison d'un tirage interne.Après la programmation de trois FPGA, la
INIT_B
broche a été tirée suffisamment bas pour que le quatrième FPGA puisse être interprétéINIT_B
comme un niveau logique bas, empêchant ainsi le quatrième FGPA d'être programmé avec JTAG.la source
INIT_B
broche doit être relevée au lieu d'être abaissée après la programmation.