Що відбувається, коли FPGA увімкнена і не налаштована?


10

Я намагаюся отримати загальне розуміння того, що станеться, якщо залишити FPGA непрограмованим протягом тривалого часу.

Припустимо, у вас є FPGA, і ви залишаєте її непрограмованою протягом тривалого періоду часу (від декількох хвилин до години після включення), тобто немає бітового потоку на ньому, це погано для пристрою? Чи рекомендується постійно мати якийсь бітовий потік на включеній FPGA? Яка загальна думка щодо цього?

Чи відрізняються результати на різних пристроях чи виробниках (Xilinx vs. Altera vs. інші)?


Додаткова інформація:

У мене є власна плата SoC, яка використовує Xilinx Virtex-6 FPGA. У мене також є Xilinx ML605, який я використовую для довідкових цілей.

Спеціальна дошка: я включаю плату. Я помічаю, що я отримую невелику тривалість часу, щоб запрограмувати його за допомогою XMD (мікропроцесорний налагоджувач Xilinx). Якщо я втрачу вікно 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, чи можете ви додати ці деталі до свого запитання?
Джон L

Відповіді:


7

Це цікаве питання. З особистого досвіду я залишаю FPGA, що живиться годинами в непрограмованому стані, виконуючи перевірки решти схеми, коли з монтажної палати надходить нова плата. Я не помітив жодних згубних наслідків від цього. Але я, чесно кажучи, ніколи про це не думав.

Я оглянувся, щоб спробувати знайти рекомендацію від виробника FPGA, але не зміг знайти його. Єдине твердження, яке я знайшов щодо цього стану, - це решітка з решітки і стосується конструкції самої ПЗР, а не того, як її слід використовувати:

Попередньо запрограмований статичний спокійний пристрій споживання енергії - це кількість енергії, спожитої FPGA до програмування пристрою. Для спокійного споживання електроенергії пристрою FPGA знаходиться в непрограмованому стані, але його не працює. Важливо, щоб пристрій не споживав значної енергії протягом цього часу, оскільки концептуально пристрій FPGA міг би затягувати надмірну потужність та потенційно вимикати джерела живлення, не дозволяючи платі успішно ініціалізувати себе та систему.
Тому постачальник FPGA повинен ретельно спроектувати транзистори з низьким статичним впливом на потужність ґратчастої напівпровідникової білої книги, без шкоди для областей, де потрібні більш високі показники (наприклад, введення / виведення та SERDES).

Xilinx також згадує, що таке струм спокою, щоб ви могли відповідно розробити джерело живлення. Але не згадується, який вплив на пристрій залишає він у такому стані:

Статичну або спокійну потужність переважно переважає струм витоку транзистора. Коли цей струм перерахований у таблицях даних, він перераховується як ICCINTQ і є струмом, поданим через джерело VCCINT, що живить ядро ​​FPGA.

Мені було б дуже цікаво почути, якщо хтось зазнав пошкодження пристрою, коли він залишив його в спокійному стані. Але я думаю, що поки джерело живлення належним чином підійде до пристрою, проблем не повинно бути.


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 низькою, поки не буде готова подавати дані в FPGA. Якщо ви використовуєте JTAG, то я не впевнений, чи буде ваш програміст JTAG утримувати INIT_B низьким, але коли він перейшов на програму FPGA, він майже напевно стверджує PROG_B (занижуючи його), що призводить до того, що FPGA повернеться назад до кроку 2.

Якби я був ти, я би застосував сигнал INIT_B під час включення, щоб побачити, що відбувається. Якщо вона починається низько, виходить високо, а потім знову знижується, FPGA перервала послідовність запуску, і вам, ймовірно, потрібно буде стверджувати PROG_B, щоб скинути FPGA.


Ваша відповідь нічого не говорить про внутрішній стан FPGA перед кроком 5, про що хоче знати ОП.
stevenvh

Крок 2. Очистіть засувки конфігурації. Крок 3, чекаючи INIT_B. Я також обговорюю, яке рішення FPGA може приймати, коли виявить, що немає даних про конфігурацію для завантаження (INIT_B знижується, щоб вказати на помилку CRC).
ajs410

1
Мої вибачення, таблиця даних, на яку я посилався, була приблизно в 2005 році, і вона була оновлена ​​в 2009 році. Однак, якби ви насправді прочитали детально мій коментар, ви б змогли його знайти. Розділ 2, Опис функцій, під заголовком Конфігурація. Посилання було оновлено, щоб вказувати на останню таблицю даних, а також номери нових сторінок.
ajs410

0

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

Для циклу Altera Cyclone (з яким я маю найбільший досвід) це означає

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

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

Залишати пристрій у такому стані нешкідливо, оскільки серцевина досить ізольована від зовнішнього світу, і лише підтягувачі можуть мати невеликий струм поперек них.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.