Цитата(sazh @ Sep 9 2006, 05:46)

не всегда это полезно, т.к. логика выхода стейт машины из запрещенного состояния может "весить" почти как логика всех остальных переходов. И эта логика достаточно сильно роняет тактовую.
Если логика роняет тактовую, мы ее поднимем. Давайте по существу уточним.
Вы предлагаете обязательный перебор всех состояний в конструкции case заменить внешним монитором на ресет по включению питания? Кто же тогда в боевой работе автомат из запрещенного состояния выводить будет.
давайте уточним, я ничего не предлагаю, я всего лишь сказал свое мнение о способе описания КА, когда автомат описываеться указанным уважаемым Doka образом. Т.к. в этом случае будет сформированна лишняя логика переходов из некорректных состояний в определнное состояние. Это может нивелировать весь смысл какого нибудь "хитрого" способа кодирования состояний. например то же самое one-hot кодирование.
Легко исследовать, как влияет добавление этого перехода, можно в симплифае, описав автомат, используя перечисляемые типы и атрибут симплифая syn_encoding который, через задание параметра safe имплементирует это.
Также хотелось бы добавить что описывая автомат, используя перечисляемые типы данных (VHDL, SystemVerilog), в принципе нельзя перебрать все возможные состояния, т.к. неизвестна имплементация автомата.
Я считаю что: ни в "боевой" работе, ни после включения автомат не должен находится в некорректном состоянии. это должно решаться грамотным описанием автомата и построением окружения автомата, особено что касается метастабильности входов и синхронизации сигнала сброса.
А для систем, в которых цена сбоя очень высока применение различных мониторов и т.д. должно быть обязательным.