메뉴
[Truth Table] Incompletely Specified Functions

2012. 2. 13. 22:24

Don't Care


비교적 큰 규모의 digital system은 많은 subcircuit으로 나뉜다. 
위 그림과 같이 2개의 subcircuit N_1과 N_2이 있는 system을 생각해 보자.
만약, w, x, y, z의 어떤 조합도 ABC = 001 이나 110 이 되는 output을 만들어내지 않는다고 가정하자.
즉, ABC는 001이나 110의 값을 가지는것이 불가능하다.
그렇다면 이때의 F는 어떻게 정의될까?
결론 부터 말하자면, 정의할 필요가 없다. 즉, ABC = 001 or 110 이 되는
그러한 상황에 대해서 고려하지 않더라도 시스템을 분석하는데 문제가 없다. 
이런 경우에 우리는 N_2에 대해 다음과 같이 truth table을 만들어볼 수 있다.


위의 truth table을 보면, 0, 1 대신 X라고 표시되어 있는 것을 볼 수 있다.
우리는 이를 'don't care' 라고 읽는다.
ABC = 001 or 110 이라는 조합에 대해 F가 특별히 정의될 필요가 없다.
다시 말해서 X가 0이든 1이든 전체 system에 미치는 영향은 없다. 이러한 값들은 그냥 X로 표시하면 된다.
우리는 이러한 'don't care'값을 잘 이용해서 X에 임의로 0 또는 1을 부여하는 방법을 사용해
system output의 expression을 최소화하는데 사용할 수 있다.



Simplification Using 'Don't Care'

먼저 두개의 'don't care'를 0이라고 하면 output F에 대해서 A, B, C를 이용해 다음과 같이 쓸 수 있다.

F=A'B'C' +A'BC + ABC = A'B'C'+BC


이번엔 맨 위의 X는 1, 그 아래는 0으로 설정하면

F=A'B'C'+A'B'C +A'BC + ABC = A'B'+BC


이번엔 A'B'C가 추가되었다. 식을 정리해보면, 위의 식에 비해서 AND operation 하나를 덜 쓴 셈이다.
둘 다 1로 바꾸는 경우에는 다음과 같다.

F=A'B'C'+A'B'C +A'BC+ABC' + ABC = A'B'+BC+AB


오히려 위의 식에 비해 항이 더 늘어났다.
즉, ABC = 001 인 경우에 대해 F = 1으로 설정하고, ABC = 110 인 경우에 F = 0 으로 설정하면,
식을 최소화 할 수 있다.



Minterm and Maxterm Expansion Including 'Don't Care'

Minterm expansion을 할 때, 기존의 minterm을 표시하는데는 그냥 m을 쓰면 되지만,
don't care값에 대해서는 minterm에 통합하여 표시하지 않고, 
따로 d를 만들어 아래와 같이 표현한다.

F=\sum m (0,3,7) + \sum d(1,6)


앞에서 simplify에 X 대신 0이나 1을 넣은것은 여기서 고려해서는 안 되고,
don't care 값들만 따로 빼서 위와 같이 써준다.

F=\Pi M (2,4,5) \cdot \Pi D(1,6)


Maxterm expansion에서도 마찬가지다.
특이할 점은 여기에서도 don't care에 대해서 고려해 주어야 한다는 점이다.
그 이외에 + 대신 · (dot)을 사용한다는 것도 기억해 두어야 한다.