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