|
Может ли FPGA частично "зависнуть" ?, чудеса, да и только ... |
|
|
|
Feb 20 2012, 10:55
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Есть плата с FPGA Xilinx Spartan-3E-500, кристалл заполнен на 98%. Логика, зашитая в FPGA, управляется процессором ARM по параллельной ISA-подобной шине. "Прошивка" давно отлажена и обкатана на огромной серии плат и никаких проблем с ней никогда не было, всё работало без проблем. Но вот выпущен очередной релиз плат (другим производителем, но топология та же) , с которыми происходят странные вещи. На 80% плат прошивка в FPGA через какое-то время (от 15 мин до нескольких часов) частично перестаёт выполнять свои функции, как бы "зависает". Со стороны процессора всё выглядит ОК - регистры пишутся-читаются, команды отдаются, но ... логика FPGA не работает, причём только часть - другая (существенно большая часть) продолжает исправно молотить и выполнять, что требуется. Идентичный софт на идентичной плате другого производителя (с тем же блоком питания, если что ...) молотит без проблем сутками. Потребляемый ток всеми вариантами плат не отличается, перегревов нет, напряжения питаний в норме. Сигнал DONE наличествует как до, так и после сбоя. Я теряюсь в догадках - что тут может быть, куда копать и что смотреть ?
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
 |
Ответов
|
Feb 21 2012, 13:12
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(maksimp @ Feb 20 2012, 20:28)  Например, практикуется такое что каждое состояние кодируется "1" в своём бите. Для автомата с 4 состояниями тогда законными будут "0001", "0010", "0100", "1000". И тогда в нём нужно обязательно предусмотреть выход из состояний наподобие "0000" или "1100". Ввести дополнительные операторы else if для этого например. Не знаю как ISE, а Квартус умеет сам изменять кодирование автоматов, и в том числе в небезопасную сторону. Нужно тогда найти и отключить опцию, разрешающую изменять кодирование автоматов. Можете ли вы объяснить механизм, природу этого явления - если автомат закодирован, к примеру, состояниями "0001", "0010", "0100", "1000", и нигде в проекте ему не назначается другая константа, то КАК он может оказаться в состоянии "1100" ? Если это возможно - то так далеко можно зайти, а что, если при других операциях другим сигналам будут произвольно меняться биты ? Да и не из всех алгоритмов можно безболезненно выйти, если вдруг состояние автомата стало непредвиденным. Цитата(XVR @ Feb 21 2012, 13:11)  Еще можете попробовать пересинтезировать проект (исходники вроде у вас есть), задав ему реальные диапазоны напряжений питания FPGA и внешних температур. По умолчанию софт берет некие идеальные значения, которые могут не совпасть с вашими реальными. Интересно, от напряжения питания и температуры синтезатор что-то меняет в своём синтезе ? Не знал об этом.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Feb 23 2012, 15:20
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424

|
Цитата(Demeny @ Feb 21 2012, 17:12)  Можете ли вы объяснить механизм, природу этого явления - если автомат закодирован, к примеру, состояниями "0001", "0010", "0100", "1000", и нигде в проекте ему не назначается другая константа, то КАК он может оказаться в состоянии "1100" ? Если это возможно - то так далеко можно зайти, а что, если при других операциях другим сигналам будут произвольно меняться биты ? Да и не из всех алгоритмов можно безболезненно выйти, если вдруг состояние автомата стало непредвиденным.
Интересно, от напряжения питания и температуры синтезатор что-то меняет в своём синтезе ? Не знал об этом. 1) автомат сработает неправильно если: - какие-либо сигналы на его входах асинхронны клоку (напр. внешний ресет....) - set-up\hold тайминги не выполнились (например изза нештатного PVT (Process Voltage Temperature), т.е. не того что задан при SP&R ) - джитер\скважность клока не такие как при SP&R. - шум по питанию. - FPGA тоже бывают битые (имеют stack-at fault) (хотя при 80-% плат тот-же отказ, врядли) 2) Синтезатор делает синтез с учётом PVT corner. STA кстати то-же. И напр. новая FPGA хоть и того-же типа может иметь слегка другую временную зависимость от PVT на 3-м году выпуска.... Это должно учитываться в новой версии FPGA CAD.... 3) А как можна плату в нормальное состояние вернуть? Никак, ресетом, поверофом....
|
|
|
|
Сообщений в этой теме
Demeny Может ли FPGA частично "зависнуть" ? Feb 20 2012, 10:55 des00 глючащий модуль порты на выводы плиса имеет ? Feb 20 2012, 10:59 Demeny Цитата(des00 @ Feb 20 2012, 14:59) глючащ... Feb 20 2012, 11:14  des00 Цитата(Demeny @ Feb 20 2012, 06:14) Да, и... Feb 20 2012, 12:04 litv в Chipscope то что видно? Feb 20 2012, 11:54 MrYuran Цитата(Demeny @ Feb 20 2012, 14:55) Я тер... Feb 20 2012, 12:02 iosifk Цитата(Demeny @ Feb 20 2012, 14:55) Но во... Feb 20 2012, 12:03 maksimp Цитата(iosifk @ Feb 20 2012, 16:03) И это... Feb 20 2012, 16:28 Demeny Цитата(litv @ Feb 20 2012, 15:54) в Chips... Feb 20 2012, 12:57 des00 Цитата(Demeny @ Feb 20 2012, 06:57) Но по... Feb 20 2012, 13:06  disel Цитата(des00 @ Feb 20 2012, 16:06) иначе ... Feb 20 2012, 13:10   des00 Цитата(disel @ Feb 20 2012, 07:10) Это ес... Feb 20 2012, 13:12    disel Цитата(des00 @ Feb 20 2012, 16:12) хмм, е... Feb 20 2012, 13:22  Demeny Цитата(des00 @ Feb 20 2012, 17:06) вы же ... Feb 20 2012, 13:59   vadimp61 Цитата(Demeny @ Feb 20 2012, 17:59) Когда... Feb 20 2012, 14:05 Builder Цитата(Demeny @ Feb 20 2012, 15:57) Да, э... Feb 21 2012, 06:24 disel А спидгрейт у плис такой же как и всех других плат... Feb 20 2012, 13:05 Shivers Я бы взял старую плату и перепаял с нее ПЛИС на но... Feb 20 2012, 14:05 ViKo Имел место случай, когда плата промывалась хрен зн... Feb 20 2012, 16:36 IEC Недавно выпаивал CPLD Alteta. Шилась, все работал... Feb 21 2012, 07:13 Shivers Цитата(IEC @ Feb 21 2012, 10:13) Недавно ... Feb 21 2012, 08:57 XVR Еще можете попробовать пересинтезировать проект (и... Feb 21 2012, 09:11 des00 Цитата(Demeny @ Feb 21 2012, 08:12) Может... Feb 21 2012, 13:18  Demeny Цитата(des00 @ Feb 21 2012, 17:18) перехо... Feb 21 2012, 13:22   des00 Цитата(Demeny @ Feb 21 2012, 08:22) То, ч... Feb 21 2012, 13:26   VladimirB Цитата(Demeny @ Feb 21 2012, 16:22) То, ч... Feb 21 2012, 13:55 Джеймс Цитата(Demeny @ Feb 21 2012, 16:12) Может... Feb 21 2012, 13:34 XVR Цитата(Demeny @ Feb 21 2012, 17:12) Интер... Feb 21 2012, 15:53 VslavX У меня на Циклоне 2 был случай - слетала PLL (выхо... Feb 21 2012, 15:20 alevnew Цитата(maksimp @ Feb 20 2012, 22:28) И то... Feb 24 2012, 05:59 Torpeda Цитата(Demeny @ Feb 20 2012, 13:55) ... п... Feb 24 2012, 13:27 dsmv Насчёт Spartan-3:
Первые партии микросхем позволя... Feb 24 2012, 13:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|