У мене є ланцюг JTAG, що з'єднує 4 спартанські 6 FPGA, які я програмую за допомогою ISE iMPACT. Програмне забезпечення може програмувати будь-яку сувору підмножину з 4 FPGA підряд успішно та в будь-якому порядку. Однак, коли я намагаюся запрограмувати всі чотири FPGA, штиф DONE останнього FPGA не надходить, і програмування не вдалося.
Що може бути причиною цієї дивної поведінки?
Примітки:
- Після програмування трьох FPGA, біт INIT_B регістра статусу для четвертої FPGA дорівнює 0, хоча штифт INIT_B високий. Перед програмуванням третьої FPGA цей біт був 1. Це говорить про те, що четверта FPGA заблокувалась.
- Під час програмування за допомогою SelectMap я можу програмувати всі чотири FPGA без проблем.
- Коли я програмую три FPGA за допомогою SelectMap, четвертий все ще не може бути запрограмований за допомогою JTAG.
- Кожен із чотирьох зроблених штифтів підтягується до резисторів від 3V3 до 4,7 К Ом, а потім з'єднується.
Що я спробував :
Відключення однієї з FPGA з ланцюга дозволяє ще три програмувати FPGA.
Заміна 4,7 К Ом підтягуючого резистора останнього ПЛІС на резистор 330 Ом не вирішує проблему.
"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."
Ви маєте на увазі "останнє в ланцюзі" або "останнє", яке потрібно налаштувати (спочатку в ланцюжку)? Не могли б ви надати схему?