ISE iMPACT kullanarak programladığım 4 Spartan 6 FPGAs bağlayan bir JTAG zinciri var. Yazılım, başarılı bir şekilde ve herhangi bir sırayla 4 FPGA herhangi bir katı alt kümesini programlayabilirsiniz. Ancak, dört FPGA'nın tümünü programlamaya çalıştığımda , son FPGA'nın DONE pini yüksek olmaz ve programlama başarısız olur.
Bu garip davranışa ne sebep olabilir?
Notlar:
- FPGA'ların üçünü programladıktan sonra, INIT_B pin değeri yüksek olmasına rağmen, dördüncü FPGA için durum kaydının INIT_B biti 0 olur. Üçüncü FPGA'yı programlamadan hemen önce, bu bit 1 idi. Bu, dördüncü FPGA'nın kilitlendiğini gösterir.
- SelectMap ile programlama yaparken, dört FPGA'nın tümünü sorunsuz bir şekilde programlayabilirim.
- FPGA'ların üçünü SelectMap kullanarak programladığımda, dördüncüsü hala JTAG kullanılarak programlanamıyor.
- Yapılan dört pimin her biri, 4.7K Ohm dirençlerden 3V3'e kadar çekilir ve daha sonra birbirine bağlanır.
Denediğim şeyler :
FPGA'lardan birinin zincirden ayrılması, kalan 3 FPGA'nın hala programlanmasına izin verir.
Son FPGA'nın 4.7K Ohm pull-up direncinin 330 Ohm direnç ile değiştirilmesi sorunu çözmez.
"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
pimler birbirine bağlanır. JTAG için, çoklu cihaz programlamaya Sınır Tarama Zinciri denir. Gelen Chapter 3: Boundary-Scan and JTAG Configuration
yalnızca söz, DONE
pim olan "If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
So olan DONE
pim düşük tek sorun? Doğru programlanıyor mu?
"The first device in a serial daisy chain is the last to be configured."
zincirde son mu yoksa yapılandırılacak sonda mı (zincirde ilk olarak) mı demek istersiniz? Bir şema sağlayabilir misiniz?