реклама на сайте
подробности

 
 
> FSM Mealy, Moore, практическое применение
dxp
сообщение Jul 5 2018, 04:29
Сообщение #1


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Всем привет!

Несомненно все, кто не прогуливал занятия по цифровой электронике, изучали конечные автоматы (КА), и в том числе их базовые разновидности - автоматы Мили и Мура. Я тоже прилежно учился и когда постигал премудрости профессии на практике, пытался накладывать полученные теоретические знания на разрабатываемые решения. В большинстве случаев это прекрасно работает. Но вот в случае с упомянутыми в заголовке темы вещами оно как-то не получилось. Поясню.

КА Мили - это автомат, у которого выходы зависят и от состояния самого автомата, и от его входов. КА Мура - автомат, выходы которого зависят только от его состояния. Ещё на просторах интернета попался некий КА Медведева sm.gif, у него выходы - это просто его состояние - по сути это вырожденный автомат Мура, но речь пока не про него.

Плюсы и минусы обоих вариантов очевидны:

  • у Мили решение может обойтись меньшим количеством внутренних регистров за счёт использования логики с входами, и при этом ещё получается меньше задержка - выходы могут меняться в том же такте, что и изменение входов. Недостатки: возможны глитчи и бОльшая задержка распространения по выходам из-за использования комбинационной логики;
  • у Мура больше регистров и всегда задержка на такт относительно Мили, но зато можно сделать без глитчей и задержку тоже можно сделать меньше, т.к. нет обязательной логики по выходам.

Когда мне приходилось (и приходится) проектировать КА, я честно пытался применить эту теорию к этому процессу, но почему-то именно тут она уходила в фон: при описании КА смотришь на целевую задачу и решаешь её, исходя из доступных средств. Собственно, описываешь автомат так, чтобы его работа удовлетворяла целевой задаче, и почему-то тут [мне] ни разу совсем не потребовалось погружаться в эту классификацию и анализ свойств - просто кодишь логику, конечно имея в виду, что комбинационная задержка может подзатянуть слаки и/или дополнительный регистр сдвигает результат на такт, это надо тоже учитывать...

А вопрос, собственно, такой: какое практическое преимущество даёт знание этой классификации нашему брату - ПЛИСоводу? Подозреваю, что для разработчиков компиляторов, синтезаторов эта классификация может быть полезна - например, в этой теории могут быть доказаны теоремы, что если, де, автомат Мили, то можно провести такую-то или такую-то оптимизацию, а если Мура, то вот такие-то или такие-то ограничения. Как сказал один мудрый человек: "Нет ничего практичнее хорошей теории". Но нам-то - простым пользователям компиляторов, синтезаторов, есть практическая польза? Например, вот описал я логику КА, вижу, что он Мили. Или Мура. И что? Что даёт это понимание? Ведь логику-то я описал, исходя из требований целевой задачи, а не ставя цель, сделать Мили или Мура.

И вот опыт, вроде, говорит, что сие знание скорее академическое, но в книжках-то и доках вендоров регулярно упоминают обе фамилии, когда речь заходит про КА. Это порождает сомнение - может, я чего-то важного не ухватил. В общем, прошу поделиться мнением/опытом: какая практическая польза для ПЛИСовода заключается в знании этой классификации и её свойств, где и как это применяется при описании логики на ПЛИС?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Jul 6 2018, 06:56
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Спасибо всем за ответы, в общем и целом примерно так и думаю, рад, что моё понимание и личный опыт согласуется с общим трендом.

Вообще, для себя выработал стиль, при котором стараюсь максимально разделять сущности - например, если понимаю, что тут или там нужен КА, то выделяю его до "чистого " (pure) вида - по сути это получается вырожденный автомат Мура (который ещё называют кое-где КА Медведева), у которого выходы - это его состояние. Понимаю, что во многом тип КА получается из того, как трактовать логику регистровых переходов и внешний по отношению к ней контекст - ведь на практике-то как правило КА нужен не сам по себе, а для каких-то целей, т.е. после идёт логика, которая использует состояния автомата и другие сигналы, и если рассматривать это в целом, то получается тот же Мили. Но я предпочитаю не увязывать идущие мимо собственно автомата сигналы в иерархию этого КА - сторонние сигналы по смыслу относятся к своему контексту, а автомат - это отдельная сущность, несущая служебные функции к отношению к внешнему контексту.

Такая докомпозиция позволяет проще воспринимать дизайн, легче им управлять. Например, такой "отделённый" автомат проще заменить на другой или разбить на два или более более мелких и простых КА. Опыт научил, что в большинстве случаев эффективнее реализовывать несколько более простых, хотя и связанных друг с другом, автоматов, вместо одного большого, с десятками состояний. Именно благодаря декомпозиции легче видеть "узкие" места и проще их исправлять (т.к. намного меньше по сравнению с большим КА перекрёстных связей).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dxp   FSM Mealy, Moore   Jul 5 2018, 04:29
- - Flip-fl0p   Цитата(dxp @ Jul 5 2018, 07:29) А очень ...   Jul 5 2018, 04:48
- - dima32rus   Цитата(dxp @ Jul 5 2018, 07:29) при описа...   Jul 5 2018, 05:15
- - one_eight_seven   ЦитатаМожно нарисовать граф переходов КА Мура, или...   Jul 5 2018, 09:01
|- - Flip-fl0p   Цитата(one_eight_seven @ Jul 5 2018, 12:0...   Jul 5 2018, 09:27
|- - one_eight_seven   Цитата(Flip-fl0p @ Jul 5 2018, 12:27...   Jul 5 2018, 09:59
- - syoma   ИМХО смысл для разработчика в том, что надо мыслен...   Jul 5 2018, 12:56
- - one_eight_seven   ЦитатаНаверное, так не стоит делать, или нет? На ...   Jul 5 2018, 13:43
- - Shivers   Несколько комментариев 1. Строго говоря, автоматы ...   Jul 5 2018, 21:05
|- - x736C   Цитата(Shivers @ Jul 6 2018, 00:05) 5. О ...   Jul 5 2018, 23:23
|- - warrior-2001   Доброго времени суток! Цитата(x736C @ Ju...   Jul 6 2018, 04:23
|- - Flip-fl0p   Цитата(warrior-2001 @ Jul 6 2018, 07...   Jul 6 2018, 04:26
|- - gin   Цитата(warrior-2001 @ Jul 6 2018, 07...   Jul 6 2018, 20:39
- - syoma   ЦитатаМожно замутить автомат по науке, но он будет...   Jul 6 2018, 06:58
- - one_eight_seven   Цитатаа вот ПЛИС-программист или Verilog-кодер - э...   Jul 6 2018, 07:12
|- - syoma   Цитата(one_eight_seven @ Jul 6 2018, 09:1...   Jul 6 2018, 09:11
- - XVR   У автоматов Мили и Мура есть большое различие с то...   Jul 6 2018, 12:09
- - one_eight_seven   ЦитатаНу, могу предположить такое же мнение о Вас....   Jul 6 2018, 13:22
- - Shivers   Я там выше уже писал, что автомат Мили легко своди...   Jul 6 2018, 18:02


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 02:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01462 секунд с 7
ELECTRONIX ©2004-2016