Что происходит, когда FPGA включен и оставлен ненастроенным?

10

Я пытаюсь получить общее представление о том, что произойдет, если вы оставите ПЛИС незапрограммированным на длительный период времени.

Предположим, у вас есть ПЛИС, и вы оставляете ее незапрограммированной в течение длительного периода времени (от нескольких минут до часов после включения), то есть без битового потока на нем, это плохо для устройства? Рекомендуется ли постоянно иметь битовый поток на включенной 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.

Дайте мне знать, что вы думаете.

ученый
источник
1
Вы подчеркиваете в своем вопросе и в своем редактировании «длительный период времени». Это действительно имеет значение, если это несколько секунд или несколько часов? Я не думаю, что это делает ..
м.Алин
Я вижу явление на плате FPGA, когда у меня появляется окно программирования на 20-30 секунд. Если я не запрограммирую в этом окне, я не могу запрограммировать успешно. Центральная тема моего вопроса - не продолжительность, а понимание этого явления.
гроб
Вы вообще можете подключиться к устройству? Или он просто терпит неудачу, когда вы пытаетесь программировать? Какую ошибку выдает программист?
embedded.kyle
1
Вы программируете FPGA через JTAG напрямую, или вы сначала загружаете микросхему Flash, а затем позволяете FPGA настраиваться через это?
ajs410
@fpga_boffin, не могли бы вы добавить эти детали в свой вопрос, пожалуйста?
Джон Л

Ответы:

7

Это интересный вопрос. Исходя из личного опыта, я оставил FPGA включенными в течение нескольких часов в незапрограммированном состоянии, выполняя проверки остальной части схемы, когда новая плата поступает из сборочного цеха. Я не заметил каких-либо вредных последствий от этого. Но я, честно говоря, никогда не думал об этом.

Я посмотрел вокруг, чтобы попытаться найти рекомендацию от производителя ПЛИС, но не смог ее найти. Единственное утверждение, которое я нашел в отношении этого состояния, взято из документа Lattice и касается дизайна самой FPGA, а не того, как его следует использовать:

Предварительно запрограммированное статическое энергопотребление устройства - это количество энергии, потребляемое FPGA до того, как запрограммировано устройство. Что касается энергопотребления покоящегося устройства, ПЛИС находится в непрограммированном состоянии, но питание включено. Важно, чтобы устройство не потребляло значительную мощность в течение этого времени, так как концептуально устройство FPGA может потреблять чрезмерную мощность и потенциально отключать источники питания, мешая плате успешно инициализировать себя и систему.
Поэтому поставщик ПЛИС должен тщательно проектировать транзисторы с низким статическим напряжением. 3 Проектирование для малой мощности. Энергетическая характеристика решетки и полупроводниковой белой бумаги, без ущерба для областей, где требуется более высокая производительность (например, входы / выходы и SERDES).

Xilinx также упоминает, что такое ток покоя, чтобы вы могли соответствующим образом спроектировать свой источник питания. Но не упоминает, что влияет на устройство, оставляя его в таком состоянии:

В статической или спокойной мощности преобладает ток утечки транзистора. Когда этот ток указан в технических характеристиках, он указан как ICCINTQ и является током, потребляемым через источник питания VCCINT, питающий ядро ​​FPGA.

Мне было бы очень интересно узнать, не получил ли кто-либо повреждение устройства, если оно оставлено в состоянии покоя. Но я думаю, что если источник питания правильно подключен к устройству, проблем не должно быть.

embedded.kyle
источник
6

Я ссылаюсь на таблицу данных 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.

ajs410
источник
В вашем ответе ничего не говорится о внутреннем состоянии ПЛИС до шага 5, о котором ОП хочет знать.
Stevenvh
Шаг 2. Очистите защелки конфигурации. Шаг 3, ожидание INIT_B. Я также обсуждаю, какое решение может принимать FPGA всякий раз, когда обнаруживает, что нет данных для загрузки конфигурации (значение INIT_B становится низким, что указывает на ошибку CRC).
ajs410
1
Мои извинения, таблица данных, на которую я ссылался, была примерно в 2005 году, и она была обновлена ​​в 2009 году. Однако, если бы вы действительно внимательно прочитали мой комментарий, вы бы смогли его найти. Глава 2, Функциональное описание, под заголовком Конфигурация. Ссылка была обновлена, чтобы указывать на последнюю таблицу данных, а также на новые номера страниц.
ajs410
0

Конфигурация по умолчанию разработана таким образом, чтобы быть максимально пассивной, чтобы сделать устройство универсальным для использования.

Для серии Altera Cyclone (с которой у меня больше всего опыта) это означает

  • контакты ввода / вывода слабо подтянуты к VCCIO (чтобы удерживать микросхемы с активными линиями включения с низким уровнем микросхем от шины),
  • выходной сигнал CONF_DONE находится на низком уровне (вы можете подключить его к выводу сброса других микросхем, чтобы сохранить их в состоянии сброса до загрузки конфигурации, а также восстановить их в известное состояние при перенастройке), и
  • входы часов не передаются в сети часов.

Другие типы FPGA должны быть аналогичным образом неактивными и обеспечивать неинвертированные и инвертированные выходы, указывающие состояние конфигурации для остальной платы.

Оставлять устройство в таком состоянии безвредно, так как ядро ​​достаточно изолировано от внешнего мира, и только подтягивания могут иметь небольшой ток через них.

Саймон Рихтер
источник