Имеет ли какое-либо реальное значение разница между конечными автоматами Мили и Мура, когда речь идет о реализации на C? В чем обычно заключается эта разница?
Давным-давно мне было гораздо проще понять преимущества/недостатки Мили/Мура, когда дело доходит до RTL. Весь вывод, зависящий от текущего состояния/вывод, зависящий от разницы текущего состояния + текущего ввода, имел смысл, как и тот факт, что Мили можно было сделать с одним состоянием меньше, в некоторых случаях также имел смысл. Связывание временных диаграмм с каждой реализацией FSM также сделало разницу между ними более ясной.
Скажем, я делаю конечный автомат на C. В одном случае LUT зависит от состояния/текущего ввода (Мили), а в Moore LUT просто ищет текущее состояние и возвращает следующее. В любом случае выход происходит после возврата из ЛУТ (думаю, хотя могу ошибаться). Я не придумал четкого способа, которым Мили имеет преимущество при кодировании на C. Такие темы, как читабельность кода, скорость, плотность кода, простота проектирования, могут быть важными темами - с моей точки зрения, две модели кажутся почти одинаковыми.
Может быть, эта разница просто тема для академиков — и на практике в реализациях C разница незначительна. Если вы знаете основные отличия реализации конечного автомата C между Мили и Муром, и если есть реальные преимущества (которые также значительны), мне было бы любопытно узнать. Я хотел бы подчеркнуть - я не спрашиваю о реализации RTL.
Я видел еще один пост Мили/Мура здесь: Мили v/s. Мур
Но это не совсем тот уровень объяснения, которого я ищу.