Перейти к содержанию
    

Spartan3 external reset or watchdog?

Раньше принимал на веру необходимость наличия кнопки Reset на одной из ног. Ну или какой-то внешний сброс. А теперь в процессе проектирования устройства, которое должно быть необслуживаемым, возникла такая мысль - а есть ли какие-то красивые приемы реализации вачдога и начального ресета? Допустим, бросок по питанию, FSM улетает в какое-то состояние, из которого потом не может выйти (а для "one-hot" вполне реальная ситуация, сам наступал на такие грабли) - в каждом FSMe ставить по сбрасываемому периодически счетчику, который по переполнению выставляет reset <= '1'; или есть какая-то более красивая идеология? И есть ли гарантия, что компилятор не соптимизирует это дело и не сделает в итоге constant reset:='0' ?

 

Вобщем, готов выслушать, как выглядит классическое решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не проще ли поставить внешний супервизор. Бросок по питанию и идет полная перегрузка конфигурации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это как в старом анекдоте: "Вам шашечки или ехать?" - так вот мне интересно, как выглядят шашечки ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо поставить сбрасываемый счетчик и его выход завести на примитив STARTUP_SPARTAN3, соответственно при зависании счетчик досчитает и микросхема получит POR. Для задания начального состояния в FPGA надо использовать детерминированность начального состояния триггеров, ресет - просто излишество, в больших проектах довольно дорогое (жрет трассы), см. например http://www.xilinx.com/xlnx/xweb/xil_tx_dis...=kc_smart_reset

 

Однако супервизор питания ставить все равно надо, так как при скачке питания собъется конфигурация и счетчик считать перестанет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В XILINX есть возможность автомотического сброса при закгузке конфигурационной последовательности в кристалл

В библиотеке UNISIM такой блок называется ROC(reset on config).

просто заводишь сигнал сброса не на внешний порт а на выход ROC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В XILINX  есть возможность автомотического сброса при закгузке конфигурационной последовательности в кристалл

В библиотеке UNISIM такой блок называется ROC(reset on config).

просто заводишь сигнал сброса не на внешний порт а на выход ROC.

 

Ошибочка. ROC - это блок которого на самом деле нет. Он имитирует сброс для моделирования по включению питания, т.е. после загрузки конфигурации. А при броске питания перегрузки может и не произойти. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>Ошибочка. ROC - это блок которого на самом деле нет.

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

 

а сообщение касалось именно начального ресета

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен в кристалле такого примитива нет. Но прошитая схема работает будто он есть.

 

"Кажущееся отражение кажущейся луны" (с) котенок Гав

Вообще-то интересует не шаманство, а как сделать начальный сброс внешним дивайсам.

Я пока что просто сделал 4-битный незацикленный счетчик, и старший разряд вывел на выход сброса, и тактирую его от самой низкой тактовой в проекте. Оно, конечно, работает, но мои эстетические чувства протестуют :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вам что, именно от внешнего девайса сброситься надо? Можно, например, использовать сигнал locked к-либо DLL. Мне помогает :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...