논리게이트란 불 대수를 물리적으로 구현한 것으로, 하나 이상의 논리적 입력 값에 대해 논리연산을 수행하여 하나의 논리적 출력값을 얻는 전자회로를 말한다.
❗️ 앞 장에서 설명했듯이 집적회로는 말그대로 여러 부품을 하나로 모아놓은 물리적 회로만을 의미한다. 논리게이트는 논리회로라고도 하며 논리적연산이 가능하도록 설계한 회로를 의마한다.
논리게이트가 없다면 부품을 하나 하나 조합해서 논리연산을 하는 회로를 설계해야한다. 하지만 논리게이트는 논리연산을 하는 하나의 부품으로써 회로를 좀 더 단순하게 설계할 수 있게 만들었다.
아래 그림은 회로도에 사용하는 논리게이트의 기호를 나타낸 것이다. NOT은 전압을 바꾸는 인버터를 이용해 구현할 수 있는데 NOT기호의 세모모양은 입력을 출력에 전달하는 버퍼역할을 의미하며 작은 동그라미 모양이 반전시키는 역할을 의미한다.
기호는 위 처럼 나타내지만 사실 NAND와 NOR의 만들 때 부품이 가장 적게 들어가기 때문에 AND와 OR은 NAND와 NOR에 출력을 반전시키는 덧붙여 만든다.
🌟 위 기호가 부품의 모양과 갯수를 그대로 그려놓은 것이 아니라 의미하는 바를 그림으로 표현한다는 것을 알아햐 한다!
NAND와 NOR을 가지고 AND와 OR을 만드려면 인버터가 필요하다. 인버터는 NAND와 NOR을 같은 입력에 연결해 인버터를 만들 수 있다. ‘같은 입력에 연결한다‘는 뜻은 a NAND a 또는 a NOR a를 하는 것이다.
예를 들어 a가 1이라고 할때 a NAND a는 0이나오고 a NOR a도 0이 나온다. 이것은 각각 a AND a와 a NOR a를 반전시킨 값이다. a가 0이라고 해도 마찬가지이다. a NAND a 는 1, a NOR a 도 1이 나온다. NOT a 의 역할, 인버터의 역할을 한다.
이 인버터를 가지고 AND와 OR게이트를 만들 수 있다.
AND게이트는 NAND의 출력에 NAND 인버터를 연결해서 만들고, OR게이트는 각각의 입력값을 NAND인버터에 연결 후 NAND게이트에 연결해서 만들 수 있다.
이게 가능한지 증명하려면
NOT (A AND B) = (NOT A) OR (NOT B)가 드모르간의 법칙을 알면 된다.
1️⃣ 글리치
아날로그 입력신호를 디지털로 바꾸는 과정에서 입력신호가 천천히 변하면 잡음이 생기게 되고 문턱값을 여러번 오르내리면서 출력신호에 글리치라는 오류가 생긴다. (문턱값에 대한 내용은 아날로그와 디지털 편을 참고하자!)
이를 해결하기 위한 두 가지 방법이 있다.