Search

로직 게이트(Logic gate) / AND, OR, NOT

subtitle
Tags
CS
Created
2021/01/30
2 more properties
아래 사진은 x, y, z 를 입력으로 받는 불 함수의 진리표이다. 이 테이블은 x, y, z의 값에 따라 나올 수 있는 결과의 모든 경우의 수를 작성한 것이다. 그리고 이 진리표를 통해 입력을 3개 받고 하나의 출력값을 반환하는 회로를 만들려면 먼저 불 표현식으로 나타낼 수 있어야 한다.
Truth table representation of a Boolean function / Hebrew Univ.
"Bool Function 만들기"
저 모든 경우를 담는 식을 한 번에 기술하기는 어렵다. 그러므로 한 행씩 식을 도출한다.
그리고 이때 자신의 행에는 true고, 다른 행은 모두 false인 식을 찾아야 한다.
세번째 행은 not(X) and Y and not(Z)
다섯번째 행은 X and not(Y) and not(Z)
일곱번째 행은 X and Y and not(Z)
그리고 식을 간단하게 하려면, 각 식을 합하면(or) 된다.
(not(X) and Y and not(Z)) or (X and not(Y) and not(Z)) or (X and Y and not(Z) )
= (not(X) and Y) or (X and not(Y)) or (X and Y) # 각 식에 not(Z)는 아무 영향이 없어서 제거
이게 f(x, y, z)라고 했을 때, and, or, not 으로 모든 논리식을 표현할 수 있다. 사실 컴퓨터가 덧셈으로만 모든 사칙연산을 할 수 있는 것처럼 or도 필요 없다. not과 and만 사용해서 표현 가능하다. not(not(X) and not(Y)) 에 드모르간 법칙을 사용하면 not(not(X or Y))이고 이중 부정이므로 (X or Y)이다.
"로직 게이트"
로직 게이트는 Bool function을 물리적으로 구현한 것이다. and, or, not 세 가지의 기초적인 로직 게이트가 있다. 그리고 이 로직 게이트를 통해서 Xor, Nand, Nor 등 더 복잡한 로직 게이트를 구현할 수 있다. 또한, 위와 같은 f(x, y, z) 등 원하는 함수도 구현할 수 있다.
and, or, not 로직 게이트 / Hebrew Univ.
interface는 우리가 구현하고자 하는 것(what)이고, 이를 구현하는 방법(how)은 많다. 3개의 입력 값을 받아서 하나의 출력값을 반환하는 2andWay 게이트를 생각해보자. (실제 있는 로직 게이트는 아니고 내가 이름 붙였다.) 이것은 2개의 and 게이트로 만들 수 있다. 그리고 이 2개의 and 게이트를 하나의 그룹으로 묶어서 2andWay 게이트라고 부를 수 있다. 인터페이스는 구현이 추상화된 결과물이며 이를 받아들이는 사람은 그 안이 어떻게 생겼는지는 몰라도 된다.
2andWay gate / Hebrew Univ
위와 같은 방법으로 원하는 로직을 구현할 수 있으며 하나의 게이트 안에는 여러 개의 또 다른 게이트로 이루어질 수 있다.