मेरे पास एक JTAG श्रृंखला है जो 4 स्पार्टन 6 FPGAs को जोड़ती है जो कि मैं ISE iMPACT का उपयोग करता हूं। सॉफ्टवेयर किसी भी क्रम में, और किसी भी क्रम में 4 FPGAs के किसी भी सख्त सबसेट को प्रोग्राम कर सकता है। हालाँकि, जब मैं सभी चार FPGAs को प्रोग्राम करने का प्रयास करता हूं, तो अंतिम FPGA का डोन पिन उच्च नहीं होता है, और प्रोग्रामिंग विफल हो जाती है।
इस अजीब व्यवहार के कारण क्या हो सकता है?
टिप्पणियाँ:
- FPGAs के तीन प्रोग्रामिंग करने के बाद, चौथे FPGA के लिए INIT_B बिट स्टेटस रजिस्टर 0 है, हालांकि INIT_B पिन अधिक है। तीसरे FPGA की प्रोग्रामिंग करने से ठीक पहले, वह बिट 1 था। इससे पता चलता है कि चौथे FPGA ने ताला लगा दिया है।
- जब SelectMap के साथ प्रोग्रामिंग, मैं किसी भी समस्या के बिना सभी चार FPGAs कार्यक्रम कर सकते हैं।
- जब मैं SelectPG के उपयोग से FPGAs के तीन प्रोग्राम करता हूं, तो चौथे को अभी भी JTAG का उपयोग करके प्रोग्राम नहीं किया जा सकता है।
- चार किए गए पिंस में से प्रत्येक को 4.7K ओम प्रतिरोधों के माध्यम से 3V3 तक खींच लिया जाता है, और फिर एक साथ बांधा जाता है।
चीजें जो मैंने कोशिश की हैं :
श्रृंखला से FPGAs में से एक को डिस्कनेक्ट करने से शेष 3 FPGAs को अभी भी प्रोग्राम किया जा सकता है।
एक 330 ओम अवरोधक के लिए पिछले FPGA के 4.7K ओम पुल-अप प्रतिरोध को स्वैप करने से समस्या हल नहीं होती है।
"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
पिन एक साथ बंधे होते हैं। JTAG के लिए, कई डिवाइस प्रोग्रामिंग को बाउंड्री-स्कैन चेन कहा जाता है। में Chapter 3: Boundary-Scan and JTAG Configuration
, केवल का उल्लेख DONE
पिन है "If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
तो है DONE
पिन कम ही समस्या? क्या यह सही ढंग से कार्यक्रम करता है?
"The first device in a serial daisy chain is the last to be configured."
क्या आप का मतलब श्रृंखला में अंतिम है या अंतिम रूप से कॉन्फ़िगर किया जाना है (श्रृंखला में पहली)? क्या आप एक योजनाबद्ध प्रदान कर सकते हैं?