Разница между автоматами Мили и Мура

Имеет ли разница между конечными автоматами Мили и Мура какое-либо реальное значение, когда речь идет о реализации на C? В чем обычно заключается эта разница?

Давным-давно мне было намного легче понять преимущества и недостатки Мили/Мура, когда дело доходит до RTL. Весь вывод, зависящий от текущего состояния/вывод, зависящий от разницы текущего состояния+текущего ввода, имел смысл, как и тот факт, что Мили можно было сделать с одним состоянием меньше, в некоторых случаях также имел смысл. Связывание временных диаграмм с каждой реализацией FSM также сделало разницу между ними более ясной.

Допустим, я создаю конечный автомат на C. В одном случае LUT зависит от входных данных состояния/текущего состояния (Мили), а в случае Мура LUT просто ищет текущее состояние и возвращает следующее. В любом случае выход происходит после возврата из ЛУТ (думаю, хотя могу ошибаться). Я не придумал четкого способа, которым Мили имеет преимущество при кодировании на C. Такие темы, как читабельность кода, скорость, плотность кода, простота проектирования, могут быть важными темами - с моей точки зрения, две модели кажутся почти одинаковыми.

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

Я видел еще один пост Мили/Мура здесь: Мили против/с. Мур

Но на самом деле это не тот уровень объяснения, которого я ищу.

7
задан Community 23 May 2017 в 12:23
поделиться