Я пытаюсь получить общее представление о том, что произойдет, если вы оставите ПЛИС незапрограммированным на длительный период времени.
Предположим, у вас есть ПЛИС, и вы оставляете ее незапрограммированной в течение длительного периода времени (от нескольких минут до часов после включения), то есть без битового потока на нем, это плохо для устройства? Рекомендуется ли постоянно иметь битовый поток на включенной FPGA? Каково общее мнение по этому поводу?
Отличаются ли результаты на разных устройствах или производителях (Xilinx против Altera против других)?
Дополнительная информация:
У меня есть специальная плата SoC, в которой используется FPGA Xilinx Virtex-6. У меня также есть Xilinx ML605, который я использую для справочных целей.
Настраиваемая плата: я включаю питание платы. Я замечаю, что у меня мало времени на программирование с использованием XMD (Xilinx Microprocessor Debugger). Если я потеряю 20-30 секундное окно, мне придется выключить и включить плату, прежде чем пытаться снова. Этого не происходит с ML605.
Когда я пытаюсь запрограммировать пользовательскую плату поверх XMD, я получаю что-то вроде:
Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.
Дайте мне знать, что вы думаете.
источник
Ответы:
Это интересный вопрос. Исходя из личного опыта, я оставил FPGA включенными в течение нескольких часов в незапрограммированном состоянии, выполняя проверки остальной части схемы, когда новая плата поступает из сборочного цеха. Я не заметил каких-либо вредных последствий от этого. Но я, честно говоря, никогда не думал об этом.
Я посмотрел вокруг, чтобы попытаться найти рекомендацию от производителя ПЛИС, но не смог ее найти. Единственное утверждение, которое я нашел в отношении этого состояния, взято из документа Lattice и касается дизайна самой FPGA, а не того, как его следует использовать:
Xilinx также упоминает, что такое ток покоя, чтобы вы могли соответствующим образом спроектировать свой источник питания. Но не упоминает, что влияет на устройство, оставляя его в таком состоянии:
Мне было бы очень интересно узнать, не получил ли кто-либо повреждение устройства, если оно оставлено в состоянии покоя. Но я думаю, что если источник питания правильно подключен к устройству, проблем не должно быть.
источник
Я ссылаюсь на таблицу данных Spartan 3 , так как это FPGA, с которой я больше всего знаком.
Если вы посмотрите на главу 2 (Функциональное описание), в разделе «Конфигурация» есть пара блок-схем. На рисунке 27 (стр. 50) показана блок-схема загрузки из Flash. На рисунке 28 показана блок-схема JTAG.
Вот краткое резюме.
1) Подождите, пока Vccint, Vccaux и Vcco достигнут требуемых уровней.
2) Очистить конфигурацию защелок
3) Подождите, пока INIT_B поднимется высоко. INIT_B - это выход с открытым стоком, который внешний мастер может удерживать на низком уровне, чтобы задержать настройку.
4) Пины в режиме образца. Это определяет, собираетесь ли вы загружаться через JTAG или Flash, и является ли Flash ведущей FPGA или Flash.
5) Загрузить фреймы данных конфигурации.
6) Убедитесь, что CRC для фреймов данных является правильным. Если это НЕ правильно, FPGA будет приводить к низкому значению INIT_B для индикации ошибки CRC и прерывать запуск.
Шаг 5, вероятно, где ваш реальный вопрос - что произойдет, если не из чего загружать? Ну, вам не следует переходить к шагу 5, если вы все делаете правильно. Микросхема Flash будет удерживать INIT_B на низком уровне, пока не будет готова для передачи данных на ПЛИС. Если вы используете JTAG, то я не уверен, будет ли ваш программист JTAG удерживать INIT_B на низком уровне, но когда он перейдет к программированию FPGA, он почти наверняка будет утверждать PROG_B (понижая его), что заставит FPGA вернуться назад. к шагу 2.
На вашем месте я бы включил сигнал INIT_B при включении, чтобы увидеть, что происходит. Если он начинается с низкого уровня, становится высоким, а затем снова становится низким, FPGA прервала последовательность запуска, и вам, вероятно, потребуется утвердить PROG_B для сброса FPGA.
источник
Конфигурация по умолчанию разработана таким образом, чтобы быть максимально пассивной, чтобы сделать устройство универсальным для использования.
Для серии Altera Cyclone (с которой у меня больше всего опыта) это означает
Другие типы FPGA должны быть аналогичным образом неактивными и обеспечивать неинвертированные и инвертированные выходы, указывающие состояние конфигурации для остальной платы.
Оставлять устройство в таком состоянии безвредно, так как ядро достаточно изолировано от внешнего мира, и только подтягивания могут иметь небольшой ток через них.
источник