📌 Обнаружение шаблона D–X–B–B с помощью перекрывающегося автомата Мили

Цель — спроектировать перекрывающийся Mealy-автомат, который распознаёт шаблон D–X–B–B во входной последовательности.
Здесь:

  • D, X, B — это символы входного алфавита.
  • FSM должен быть перекрывающимся: если шаблон найден, последняя буква может быть началом следующего шаблона.

🧠 Как работает

Входной алфавит:


Σ = {D, X, B, ...}

Выход:

  • Z = 1, если обнаружен конец шаблона D–X–B–B
  • Z = 0 — в остальных случаях

Состояния:

  • S0: начальное, ожидание D
  • S1: принято D, ожидание X
  • S2: принято D–X, ожидание B
  • S3: принято D–X–B, ожидание ещё одного B

Таблица переходов:

Текущее состояниеВходСледующее состояниеВыход
S0DS10
S0другоеS00
S1XS20
S1DS10
S1другоеS00
S2BS30
S2DS10
S2другоеS00
S3BS11
S3DS10
S3другоеS00

Пример работы:


Вход: D X B B D X B B  
Выход: 0 0 0 1 0 0 0 1

FSM успешно распознаёт две перекрывающиеся последовательности.

✅ Преимущества

  • Перекрывающийся — не теряет потенциальные шаблоны.
  • Mealy-автомат требует меньше состояний по сравнению с Moore-автоматом.

❌ Недостатки

  • Реализация может быть сложнее в синхронных цифровых схемах из-за вывода на переходах.

⚙️ Где применяется

  • Синтез цифровых систем в Verilog / VHDL
  • Контроллеры протоколов, где важен порядок команд (например, в SPI или UART)
  • Распознавание последовательностей в системах управления

🔗 См. также