Canonical Form

Canonical Form

여러분들은 주어진 truth table을 논리 회로로 구현할 수 있나요? 막상 해보면 쉽지 않을 수 있습니다. 그러나 Canonical form으로 시스템을 표현하면 truth table로부터 회로로 쉽게 구할 수 있습니다.

Canonical form은 sum of products 방식과 product of sums 방식이 있습니다.

Canonical Sum of Products (minterm)

A B F minterm Symbol
0 0 0 $ A’{\cdot}B’ $ $ m_0 $
0 1 1 $ A’{\cdot}B $ $ m_1 $
1 0 1 $ A{\cdot}B’ $ $ m_2 $
1 1 0 $ A{\cdot}B $ $ m_3 $

위의 경우에서, F가 true인 경우는 (A = 0 and B = 1) 또는 (A = 1 and B = 0)인 경우입니다. 이것을 수식으로 쓰면 아래와 같습니다.

\[F = A'B + AB'\]

이처럼 함수를 곱의 합으로 표현하는 방식이 Canonical Sum of Products 방식입니다. 이때 각 항을 minterm이라고 부르며 기호로는 $m_n$을 사용합니다.

\[F = A'B + AB' = m_1 + m_2\]

또는 아래와 같은 간단한 표시법을 사용할 수도 있습니다.

\[F(A, B) = \sum{(1, 2)}\]

곱은 AND 게이트, 합은 OR 게이트로 표현하면 회로를 쉽게 그릴 수 있습니다.

Canonical Sum of Products

Canonical Product of Sums (maxterm)

A B F maxterm Symbol
0 0 0 $ A + B $ $ M_0 $
0 1 1 $ A + B’ $ $ M_1 $
1 0 1 $ A’ + B $ $ M_2 $
1 1 0 $ A’ + B’ $ $ M_3 $

말을 조금 바꾸어 볼까요? F가 true인 경우는 (A = 0 and B = 0) 또는 (A = 1 and B = 1)인 경우가 아닐 때입니다. 수식으로 써보면 아래와 같습니다.

\[F = (A'B' + AB)' = (A + B)\cdot(A'+B')\]

이렇게 하면 합의 곱 형태로 함수를 표현할 수 있습니다. 이러한 방식이 Canonical Product of Sums입니다. 이때 각 항을 maxterm이라고 부르며 기호로는 $M_n$을 사용합니다.

\[F=(A+B)\cdot(A'+B')=M_{0}M_{3}\]

또는 아래와 같은 간단한 표시법을 사용할 수도 있습니다.

\[F(A, B) = \prod (0, 3)\]

마찬가지로 곱은 AND 게이트, 합은 OR 게이트로 표현하면 아래와 같은 회로를 구할 수 있습니다.

Canonical Product of Sums

Updated:

Leave a comment