topor_topor 0 23 февраля, 2012 Опубликовано 23 февраля, 2012 · Жалоба Можете ли вы объяснить механизм, природу этого явления - если автомат закодирован, к примеру, состояниями "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) А как можна плату в нормальное состояние вернуть? Никак, ресетом, поверофом.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alevnew 0 24 февраля, 2012 Опубликовано 24 февраля, 2012 · Жалоба И тогда в нём нужно обязательно предусмотреть выход из состояний наподобие "0000" или "1100". Ввести дополнительные операторы else if для этого например. Не знаю как ISE, а Квартус умеет сам изменять кодирование автоматов, и в том числе в небезопасную сторону. Нужно тогда найти и отключить опцию, разрешающую изменять кодирование автоматов. 3) А как можна плату в нормальное состояние вернуть? Никак, ресетом, поверофом.... В квартусе как раз для такой ситуации вроде можно выставить тип "Safe state mashine". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
topor_topor 0 24 февраля, 2012 Опубликовано 24 февраля, 2012 · Жалоба ... прошивка в FPGA через какое-то время (от 15 мин до нескольких часов) частично перестаёт выполнять свои функции, как бы "зависает". .... Я теряюсь в догадках - что тут может быть, куда копать и что смотреть ? К данному случаю не относиться но так, для общего розвития.... Как-то у меня попалась Altera Cyclon которая частично не работала после прошивки (но статично). Вылечилась небольшим изменением топологии (перероутом). Пришли к выводу - FPGA имела stack-at fault (залипание в 0\1) в какой-то ячейке.... Такое может быть, ведь не зря же ATPG придумывали.... А вот в ASIC попадались фолты и похуже - сопротивление цепи зависимо от напряжения и температуры. То работает чип, то не работает.... Такие вещи не так-то и легко поймать в производстве.... Надо знать как аккуратно тесты делать..... Допускаю, что подобные фолты могут и в FPGA попадаться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 24 февраля, 2012 Опубликовано 24 февраля, 2012 · Жалоба Насчёт Spartan-3: Первые партии микросхем позволяли изменять фазу выходного сигнала DCM при работе в режиме HIGH. ISE это тоже позволял. Через некоторое время ISE перестал такие разводить прошивки. Но старые прошивки работали. А ещё через некоторое время, старые прошивки на новых партиях уже перестали работать. Вывод - серия Spartan 3 со временем изменилась. Может у Вас тоже что-то аналогичное ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться