Computer Science

[CS] 논리 게이트

oagree0123 2022. 1. 25. 19:10

이 글은 '한 권으로 읽는 컴퓨터 구조와 프로그래밍' 을 정리하여 작성한 글입니다.


논리 게이트

불리언 대수를 물리적 장치에 구현한 것으로, 하나 이상의 논리적 입력값에 대해

논리 연산을 수행하여 하나의 논리적 출력값을 얻는 전자회로

 

게이트를 사용하면 배관공이 기성 제품의 배관들을 이용하여

복잡한 수도 시스템을 만드는 것처럼 복잡한 회로를 쉽게 만들 수 있습니다.

 

논리 게이트 기호표

 

이전에 배운 것들과 마찬가지로 AND 게이트 출력은 A와 B가 참인 경우에만 Y에 참이 출력됩니다.


위의 인버터(NOT) 기호에서 동그라미가 없는 기호는 버퍼(buffer) 라고 하고, 출력을 전달하기만 합니다.

반면, 인버터 기호는 입력에 대한 보수(complement)를 출력합니다. (ex, 0 --> 1  /  1 -->  0)

 

논리 게이트에서 가장 단순한 회로는 NAND(not and)나 NOR(not or)입니다.

AND나 OR 게이트 같은 경우에는 NAND나 NOR 회로 출력에 트랜지스터를 붙여 출력을

반전시켜야하기 때문에 더 비싸고 반응 속도도 느리고, 전력 소모도 큽니다.

따라서 보통 디지털 회로를 설계시 NAND나 NOR 게이트를 주로 사용합니다.

 

또한, NAND나 NOR 게이트는 표현할 수 있는 논리도 비교적 더 많습니다.

NAND와 NOR 의 두 입력을 같은 입력에 연결하면 인버터를 만들 수 있습니다. 

(a NAND a나 a NOR a는 NOT a와 같다.)

 

a a NAND a a NOR a NOT a
T T AND T -> NOT T = F T OR T -> NOT T = F F
F F AND F -> NOT F = T F OR F -> NOT F = T T

 

아래에는 드모르간 법칙을 이용하여 게이트를 바꿔 그린 것을 볼 수 있습니다.

NAND는 OR의 두 입력을 반전시킨 것과 같고, NOR은 AND의 두 입력을 반전시킨 것과 같습니다.

또한, NAND에 인버터를 연결하면 OR을 그릴 수 있고, 역으로 NAN출력에 NAND로 만든 인버터를 연결하면

AND가 됩니다. 이처럼 NAND나 NOR만 이용하면 OR, AND, NOT을 모두 표현하는 것을 볼 수 있습니다.

 

드모르간 법칙을 이용한 NOR, NAND 게이트 다시 그리기

 

위에서는 게이트 작동방법을 알았으니, 이번에는 게이트를 사용할 때 발생할 수 있는 문제를 알아보겠습니다.

 

이력현상을 활용한 잡음 내성 향상

디지털 장치를 사용하면 판정 기준에 의해 잡음 내성을 얻을 수 있습니다.

하지만 디지털로 전환하는 것만으로 충분하지 않은 경우가 있습니다.

 

게이트를 연결하는 경우에는 논리 신호가 0에서 1로 순간적으로 바뀌고, 1에서 0으로 순간적으로 바뀐다는

가정이 가능하지만, 실제 현실에서는 신호 중 천천히 변하는 신호가 많습니다.

 

0에서 1로 변하는 신호 (잡음 글리치)

그림의 왼쪽 신호는 잡음이 없지만, 오른쪽 그림은 잡음이 있습니다.

이로 인해 신호가 문턱값을 여러 번 오락가락해 출력 신호에 글리치(glitch, 작은 오류)가 생깁니다.

이런 글리치는 이력 현상으로 방지할 수 있습니다.

 

 

이력 현상 (hysteresis)

이력 현상은 판정 기준이 이력(과거에 벌어진 일)에 따라 달라진다는 의미입니다.

이력 전이 함수는 아래 그림처럼 이전 출력이 0이면 오른쪽 곡선, 출력이 1이면 왼쪽 곡선을 사용합니다.

이처럼 올라가는 신호와 내려가는 신호에 대해 다른 문턱값이 생기면, 신호가 하나의 문턱값을 넘어

반대쪽 문턱값을 지나 출력이 반전되기 위해서 값이 상당히 많이 변해야 함으로, 잡음 내성이 커진다는 것입니다.

 

이력 전이 함수

 

슈미트 트리거 (Schimitt trigger)

위와 같은 이력을 사용하는 게이트

일반적인 게이트보다 복잡하기 때문에 정말 필요한 경우만 사용

 

슈미트 트리거 게이트

 

차동 신호

서로 반대되는 극성을 가진 2개의 신호를 이용한 전송방식 (반전관계) 

잡음이 많아 이력을 도입해도 충분하지 못한 경우에 사용하는 방식입니다.

 

예를 들어보자면 내가 서있는 위치를 0이라고 했을 때, 오른쪽의 친구를 1이라고 설정한다.

유모차가 가까이와 어깨동무하고 있는 친구와 내가 한쪽으로 밀려나지만, 서로의 위치가 바뀌지 않았을 때

여전히 0과 1을 유지할 수 있습니다. 이처럼 잡음(유모차)가 결괏값에 영향을 주지 못하도록

하는 것이 차동 신호 입니다.

 

차동 신호

위 그림에서 입력 신호르 반전관계 출력들로 변환하는 드라이버,

반전관계를 입력받아 단일 신호로 만들어 주는 리시버를 볼 수 있다.

 

차동 신호에도 한계는 있다. 너무 많은 잡음으로 인해 자신의 정격(설계할 때 정해둔 규격) 작동 범위를

넘어가게 될 수 있다. (유모차에 밀려 인도 밖으로 떨어지는 경우)

 

 

공통 모드 판별비, CMMR

Common-Mode Rejection Ratio

공통 모드 판별비는 부품 정격 중 하나로 처리 가능한 잡음의 양을 표시합니다.

공통 모드라고 부르는 이유는 두 신호에서 공통인 잡음을 가리키기 때문입니다.

 

차동 신호는 전화선 등 다양한 곳에서 사용되고 있습니다.

전차가 처음 나왔을 때, 전차에서 잡음이 많이 나와 전화 신호에 간섭했기 때문에 차동 신호를 사용했습니다.

발명가 그레이엄 벨은 연선 케이블링을 발명 했는데, 한 쌍의 선을 꼬아 연인이 허리를 잡고

붙어 있는 효과를 만들어 냈습니다.

 

차동 신호의 응용으로 '월 오브 사운드' 콘서트 오디오 시스템을 볼 수 있습니다.

보컬 마이크의 피드백 문제를 해결하기 위해 한 쌍의 마이크를 사용합니다.

한 마이크의 출력을 다른 마이크 출력에서 빼면 동시에 도착한 두 소리가 공통 모드가 되어 서로 상쇄됩니다.

 

 

전파 지연

전파 지연은 입력신호를 받고서 출력 결과를 나타낼 때까지 걸리는 시간을 의미합니다.

전파 지연의 실제 지연은 정확한 값은 아니고 최대 지연과 최소 지연 사이의 어떤 값입니다.

 

전파 지연은 논리 회로의 최대 속도를 제한하는 요소 중 하나로, 정상적으로 작동하기 위해서는

최악의 경우를 가정해서 설계해야 합니다.

 

 

위 그림의 회색 영역은 전파 지연으로 인해 출력을 신뢰할 수 없는 구간 입니다.

출력이 회색 영역의 맨 왼쪽처럼 나온다고 보장할 수 없으며, 게이트를 연결할 수 록 회색영역의

길이가 길어집니다.

 

전파 지연 시간은 처리 기술에 따라 많이 달라집니다.

7400 계열 같은 개별적 부품은 10나노초(1억 분의 1초) 범위에 속합니다.

마이크로프로세서 같은 현대 부품은 피코초(1조 분의 1초) 범위에 속합니다.

 

어떤 전자 부품의 정격표(데이터시트) 지연 시간은 tPHL tPLH 로 표시합니다.

PHL은 1에서 0, PLH는 0에서 1로 갈 때 결리는 지연 시간입니다.

 

출력 유형

토템폴 출력

일반적인 게이트 출력은 토템폴(totem pole) 이라고 부릅니다.

토템폴은 트랜지스터가 토템폴 처럼 세로로 늘어져 있어 붙은 이름입니다.

 

토템폴과 토템폴 출력

왼쪽 스키매틱(회로도)의 위쪽 스위치는 출력 1을 얻기 위해 출력과 높은 논릿값 1을 연결하기 때문에 액티브 풀업이라고 불립니다.

 

토템폴 출력은 서로 연결할 수 없습니다. 전자 회로에서 입력  0은 음극, 1은 양극에 연결 되기 때문에

이 두 출력을 연결하면 음극과 양극이 직접 연결되는 효과가 나타나 불이나거나 터질 수 있습니다.

 

오픈 컬렉터 출력

오픈 컬렉터, 오픈 드레인 출력의 스키매틱(회로도), 스위치 모델은 아래 그림과 같습니다.

 

오픈 컬렉터 / 오픈 드레인 출력

 

위 그림을 보면 0 출력은 아무 문제가 없어 보이지만, 1 출력은 그냥 떠있어 출력을 값을 알 수 없습니다.

 

오픈 컬렉터는 액티브 풀업이 없기 때문에 서로 연결할 수 있으며, 필요하면 출력을 패시브 풀업에 연결할 수 있습니다.

패시브 풀업은 풀업 저항을 논리 적인 1값을 공급해주는 공급 전압에 연결한 것입니다.

풀업 저항

그림에서 5v를 공급해주는 전압과 저항을 연결하고, 오픈 컬렉터를 연결했습니다. 오픈 컬렉터가 열려있을 경우

5v가 그대로 출력되지만, 닫혀있을 경우 저항이 없는 오픈 컬렉터 쪽만 출력하게 됩니다. 이때 5v의 출력을 1로

오픈 컬렉터의 출력을 0으로 생각하면 위의 문제를 해결할 수 있습니다.

 

와이어드 AND

오픈 컬렉터 여러 개와 풀업을 사용하면 와이어드 AND를 만들 수 있습니다.

와이어드 AND

기본적 원리는 위의 풀업 저항과 같습니다. 그런데 오픈 컬렉터 출력 값 중 출력이 0인 값이 있다면, 전체의 출력도 0이 되고 모두 1을 출력하면 전체 출력도 1이 됩니다. 이와 반대를 와이어드 OR이라고 부르며,

와이어드 AND는 여러 입력이 있는 AND 게이트를 사용하지 않고도 AND 계산이 가능 합니다.

 

 

트라이스테이트 출력

오픈 컬렉터 회로를 사용하면 출력을 서로 연결할 수 있지만, 엑트브 풀업처럼 응답이 빠르지는 않습니다.

이때 앞의 두 가지 상태만 가진 것이 아닌 꺼진 상태를 포함해 3가지 상태를 가진 트라이스테이트 출력을 사용합니다.

 

트라이스테이트 출력

위 그림처럼 키고 끄기 위한 추가 입력을 활셩화라고 합니다.

꺼진 상태를 hi-Z라고도 하며, Z는 임피던스를 뜻합니다.

 

임피던스 (impedance)

온저항(impedance 임피던스)는 회로에서 전압이 가해졌을 때 전류의 흐름을 방해하는 값이다

 

트라이스테이트 출력을 사용하면 수많은 장치를 직접 연결할 수 있지만,

단 하나의 장치만 활성화해야 한다는 단점이 있습니다.