Digital Logic,  Study

[Digital Logic] Difference between Mealy Machine and Moore Machine

Digital logic을 설계하는데 있어서 state machine 사용은 필수적이다. 구현 방식에는 크게 두 가지 종류가 존재한다.

  1. Mealy machine
  2. Moore machine

1. Mealy Machine

Mealy machine은 현재 state와 input change에 의존하여 state가 변하는 구조다. 따라서 현재 state만 보고 next state를 반영하는게 아니기 때문에 구현 측면에서 Moore machine에 비해 더 복잡하며, asynchronous output이 생길 수 있다. 그리고 우리가 도출하고자 하는 output은 state가 아닌 transition에 함께 나오게 된다.

물론 design에 따라 필요에 따라 그때그때 사용해야 겠지만, 개인적으론 고려해야할 점이 많아서 꺼려지는 것 같다. 특징은 다음과 같다.

  • Output은 현재 input과 현재 state에 따라 바뀐다.
  • 만약 input이 변하면 output 또한 변한다.
  • State의 수가 Moore machine에 비해 상대적으로 적게 필요하다.
  • Circuit implementation에서 더 많은 hardware가 필요하다.
  • Input에 대해 반응이 빠르다.
  • Asynchronous output이 생성된다.
  • Output은 transition time에 나타난다.
  • Design이 어렵다.

2. Moore Machine

Mealy machine과 다르게 현재 state를 보고 output이 나타난다. Mealy machine보다 상대적으로 design을 할 때 더 넓게 사용되는 것으로 체감된다. 특징은 다음과 같다.

  • Output은 오직 현재 state에 따라 바뀐다.
  • 만약 input이 변하면 output도 변할 수 있다.
  • 더 많은 수의 state가 필요하다.
  • Circuit implementation 측면에서 Mealy machine에 비해 hardware cost가 적다.
  • Input에 대해 반응이 느리다. (최소 1 cycle 후)
  • Synchronous output, state가 생성된다.
  • Output은 state에 나타난다.
  • Design이 쉽다.

Reference

  1. https://www.geeksforgeeks.org/difference-between-mealy-machine-and-moore-machine/

Leave a Reply

Your email address will not be published. Required fields are marked *