[an error occurred while processing this directive]
|
На каждый бит состояния вешается по D триггеру. К выходам D триггеров подключается логика проверяющая количество единиц. Если единица не одна, вырабатывается асинхронный сброс для автомата. Можно защелкнуть ещё и флаг сбоя. Если D триггеры не поставить (или поставить их после логики подсчета единиц), то синтезатор "сокращает" всю логику и это решение не работает.
Примерно так:
test:dff;
test0 = s0;
test1 = s1;
...
if test[] = 1 or test[] = 2 or test[] = 4 ...
then ss.reset = gnd;
else ss.reset = vcc;
...
E-mail: info@telesys.ru