Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan3 external reset or watchdog?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Delsian
Раньше принимал на веру необходимость наличия кнопки Reset на одной из ног. Ну или какой-то внешний сброс. А теперь в процессе проектирования устройства, которое должно быть необслуживаемым, возникла такая мысль - а есть ли какие-то красивые приемы реализации вачдога и начального ресета? Допустим, бросок по питанию, FSM улетает в какое-то состояние, из которого потом не может выйти (а для "one-hot" вполне реальная ситуация, сам наступал на такие грабли) - в каждом FSMe ставить по сбрасываемому периодически счетчику, который по переполнению выставляет reset <= '1'; или есть какая-то более красивая идеология? И есть ли гарантия, что компилятор не соптимизирует это дело и не сделает в итоге constant reset:='0' ?

Вобщем, готов выслушать, как выглядит классическое решение.
irum4
А не проще ли поставить внешний супервизор. Бросок по питанию и идет полная перегрузка конфигурации.
Delsian
Это как в старом анекдоте: "Вам шашечки или ехать?" - так вот мне интересно, как выглядят шашечки wink.gif
DmitryR
Надо поставить сбрасываемый счетчик и его выход завести на примитив STARTUP_SPARTAN3, соответственно при зависании счетчик досчитает и микросхема получит POR. Для задания начального состояния в FPGA надо использовать детерминированность начального состояния триггеров, ресет - просто излишество, в больших проектах довольно дорогое (жрет трассы), см. например http://www.xilinx.com/xlnx/xweb/xil_tx_dis...=kc_smart_reset

Однако супервизор питания ставить все равно надо, так как при скачке питания собъется конфигурация и счетчик считать перестанет.
Delsian
Отличная статья, то, что надо! А язык! Я рыдал, читая smile.gif))
Спасибо!
Wilde
В XILINX есть возможность автомотического сброса при закгузке конфигурационной последовательности в кристалл
В библиотеке UNISIM такой блок называется ROC(reset on config).
просто заводишь сигнал сброса не на внешний порт а на выход ROC.
irum4
Цитата(Wilde @ Mar 18 2005, 20:20)
В XILINX  есть возможность автомотического сброса при закгузке конфигурационной последовательности в кристалл
В библиотеке UNISIM такой блок называется ROC(reset on config).
просто заводишь сигнал сброса не на внешний порт а на выход ROC.
*


Ошибочка. ROC - это блок которого на самом деле нет. Он имитирует сброс для моделирования по включению питания, т.е. после загрузки конфигурации. А при броске питания перегрузки может и не произойти. sad.gif
Wilde
>>Ошибочка. ROC - это блок которого на самом деле нет.
Согласен в кристалле такого примитива нет. Но прошитая схема работает будто он есть. Какими механизмами это достигается я незнаю. Если кто знает поделитесь. вероятно отдельного сигнала нет, просто в триггеры заносится их начальное состояние при загрузке конфигурационного файла.

а сообщение касалось именно начального ресета
Delsian
Цитата(Wilde @ Mar 21 2005, 19:16)
Согласен в кристалле такого примитива нет. Но прошитая схема работает будто он есть.
*


"Кажущееся отражение кажущейся луны" (с) котенок Гав
Вообще-то интересует не шаманство, а как сделать начальный сброс внешним дивайсам.
Я пока что просто сделал 4-битный незацикленный счетчик, и старший разряд вывел на выход сброса, и тактирую его от самой низкой тактовой в проекте. Оно, конечно, работает, но мои эстетические чувства протестуют sad.gif
Vitus
А вам что, именно от внешнего девайса сброситься надо? Можно, например, использовать сигнал locked к-либо DLL. Мне помогает smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.