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