베릴로그 개념을 공부하다 보면 0, 1, x, z를 정말 많이 보게 된다.
학부 수업을 들을 때 x, z에 대해 명확히 알고 있지 않아서 지금 헷갈린다..ㅜ
그래서 정리해 보는 x, z의 차이점!
일단 말 그대로 x는 unknown logic값이고 z는 값이 떠 있는 상태를 의미한다..
x는 0,1 두개의 값 중 하나를 갖긴 하는데 어떤 값인지를 모르는 상태다.
either 0 or 1이라고 표현하기도 한다.
z는 0,1 두개의 값을 가지지 않는 상태이다. 보통 tri-state-buffer를 사용할 때 나타난다.
neither 0 or 1이라고 표현하기도 한다.
보통 모델심을 사용할 때 x,z가 나오면 빨간색으로 잘못된 경우일 확률이 높다.(일부로 만들지 않고서는...)
그림으로 한번 더 정리하자면,
이렇게 정의하고,
이처럼 x는 0,1 둘 중 하나인 값, z는 둘 다 아닌 모르는 값을 나타낸다.
표를 통해 정리하면, x가 0또는 1과 만나면(and, or 등의 연산) x가 나온다. x값이 뭐가 될지 모르기 때문에 결과값도 x로 모르는 값이 나오기 때문!!
비슷하게 z와 0,1,x,가 만나면 상대의 값(0,1, x,)이 결과값이 된다. z가 제일 약하다.. 왜냐면 모르는 값이기 때문에 상대의 값을 따라간다!
댓글