디지털 회로

출력

우선 출력은 특정 노드에 전압이 Vcc로 하이볼트 면 논리 1이다. 반대로 0V로 전압이 나타나면 논리 0이다. 출력노드에서는 정해진 전압이 나타나면 된다. 그렇다고 출력노드가 전력의 관점에서 전력을 출력하는 것 만은 아니다. 즉, 출력 노드에서 출력회로에 전류가 흘러 나오지 않을 수도 있다. 경우에 따라 출력노드에 전력이 나오기도 하고, 전류가 흘러들어 오히려 전력을 소모하는 경우도 있다. 경우에 따라 전류가 흐르지 않을 수도 있다. 전력적인 측면에서 구성되는 회로에 따라, 전력출력과 전력소모는 여러 양상이 존재한다.
이러한 개념에 따라 출력을 구사하는 방법은 여러가지가 있다. 그러나 현재 가장많이 사용하는 방식이 토템폴 출력 방식이다.

논리의 입력과 출력 예

어떤 게이트의 논리 출력은 다음 게이트의 입력이 된다. 따라서 실제 스위치처럼 완전히  0V 또는 Vcc 전압으로 입력되지 않고 마진 전압이 입력된다.

풀업과 풀다운

위 언급처럼 디지털 회로는 원칙적으로 H나 L의 전압 인가가 되어 있어야 한다. H와 L의 중간 전압이 되게 되면 내부 상태가 불안정하게 되거나 전력 소비가 증가한다. 그리고 L보다 낮은 전압이나 H보다 높은 전압이 인가되면 방해 전류 흐름이 생겨서 회로를 파괴할 수 있다.
일반적으로 디지털 회로의 입력 단자는 내부 임피던스가 높기 때문에(전원 회로와 저항이 큼) 입력 단자가 어디에도 연결되어 있지 않으면 근처의 정전기나 전자기 유도에 의하여 예상할 수 없는 전압이 인가될 수 있다. 그렇기 때문에 연결기에 의하여 외부로 연결되는 입력 단자는 커넥터가 잘못 연결되어 비정상적인 전압이 인가되지 않도록 해야 한다. 추가로 입력 단자가 어디에도 연결되어 있지 않은 상태를 「플로팅」란 표현이 널리 사용된다.
이러한 경우에는 수kΩ ~ 수백kΩ 정도의 높은 저항으로 전원선이나 접지선에 연결시킨다. 전원선에 연결한 것을 「풀업」이라고 하고 접지선에 연결한 것을 「풀다운」이라고 한다.
풀업이나 풀다운된 입력 단자는 출력 단자가 연결되지 않는 상태에도 풀업 저항이나 풀다운 저항에 의해서(큰 전자 유도가 일어나지 않는한) 전원 전압이나 접지 전압이 유지된다.
여기서 다른 디지털 회로의 출력 단자가 접속되었을 경우에는 디지털 소자의 출력 회로는 내부 임피던스가 지극히 작으므로 풀업 또는 풀다운에 사용된 저항값은 거의 무시할 수 있는 상태가 된다. 큰 저항과 작은 저항을 병렬로 연결한 경우에는 전류는 작은쪽으로 흘러서 큰 저항의 영향은 거의 없다.
풀업 저항값이 너무 크면 플로팅 상태와 비슷하게 되어서 전자 유도에 의해서 약해져 버린다. 그러나 너무 작으면 연결된 출력 소자에 큰 전류가 흘러서 회로의 소비 전력이 증가되고 최악의 경우에는 출력 소자가 파손된다.
입력 단자로 연결되는 신호선이 통신선처럼 비교적 길 경우에는 신호선으로 전자 유도가 일어나 전원 전압이나 접지 전압의 범위 밖의 이상 전압이 더해질 가능성이 높아진다. 이러한 경우에는 풀업 저항에 병렬로 다이오드를 연결해서 이상 전압에 의한 전류가 전원선 쪽으로 흘러 나가게 해서 디지털 회로 소자가 안전하게 동작하게 한다. 이 용도의 다이오드를 「클램프 다이오드」라고 불린다. (디지털 입력의 보호 목적 외에도 전압 치역을 제한하는 목적으로도 사용됨)
디지털 회로 설계상 하나의 IC속에 있는 모든 디지털 회로를 사용하지 않고 일부의 회로만 사용하는 경우도 있다. 이때 사용하지 않는 회로의 입력 단자는 그 상태가 H혹은 L이겠지만 동작에 전혀 관계 없기 때문에 플로팅시켜 버리는 경우가 있다. 논리적으로는 상관 없겠지만 전기적으로는 앞과 같은 이상 전압이 더해졌을 때는 회로가 파괴될 수 있으므로 쓰지 않는 입력 단자는 반드시 풀업이나 풀다운하는 것이 좋다. 다만 이 경우에는 다른 출력 단자의 상황을 고려하지 않아도 되기 때문에 직접 전원선이나 접지선에 연결해도 된다.
올해에 들어온 중앙 처리 장치 IC같은 경우는 외부에 붙여야만 하는 부품비를 줄이기 위해서 풀업 저항을 IC 안에 내장하는 경우가 많아지고 있다. 또 어떤 제품은 내장된 풀업 저항의 사용 여부를 소프트웨어로 제어할 수 있는 것도 있다.

팬 아웃

위와 같이 디지털 회로에서는 전압차에 의해 정보를 각 소자에 전달하지만, 당연히 전기 회로이기 때문에 전류가 흐른다. 구체적으로 출력측 레벨을 L로 하기 위해서는 출력 단자쪽으로 전류가 흘러 들어가는 동작을 하고, 출력측 레벨을 H로 하기 위해서는 출력 단자쪽에서 전류가 흘러 나오는 동작을 한다.
다만 일반적으로 디지털 회로의 입력 단자는 내부 임피던스가 높게 만들어져 있기 때문에(전원이나 접지에 대한 저항값이 높음) 이 전류값은 아주 낮다. 특히 시모스(CMOS) 방식으로 제작된 회로는 거의 흐르지 않는다.
TTL처럼 입력 단자에서 전류 소모가 발생하는 회로를 설계하는 경우에는 출력측 소자의 전류 구동 능력에 따라서 입력 단자의 개수가 제한되는데 이 제한치를 팬 아웃이라고 불린다.
TTL은 표준 형식, LS 형식, ALS 형식등 다양한 종류가 있지만 같은 종류의 형식은 동일한 팬 아웃 값을 가지고 있다.(출력 단자의 전류 구동능력이 동일함)
다만 다수의 입력 신호를 분배할 목적으로 제작되어서 같은 형식임에도 불구하고 높은 팬 아웃값을 가지는 회로 소자도 있다. 이러한 회로 소자는 논리적으로는 아무것도 하지 않거나 반전의 기능만을 가져서 버퍼, 버스 버퍼, 드라이버라고 불린다.
다른 형식의 종류를 조합해서 사용할 때에는 각 데이터 시트를 조사해서 접속할 수 있는 개수를 결정해야 한다.
시모스형 논리 회로는 입력 단자에서 소비되는 전류는 적지만 많은 입력 단자를 연결하면 각 단자와 배선에서 전기 용량이 커져서 출력 단자에서 용량성 저항이 커지게 된다. 이것을 가리켜 팬 아웃이라고도 부른다. 이렇기 때문에 출력측 소자의 구동 능력이 부족하면 H가 L, L가 H로 상태가 변경되는 시간이 길어지게 되어서 회로 동작에 제한이 되므로, 후단에 연결할 수 있는 입력 단자의 개수는 제한된다.

트라이 스테이트 버퍼

출력을 하이 임피던스로 할 수 있는 출력 회로를 트라이스테이트（tri-state : 세 가지 상태）라고 하며 입력 신호를 그대로 출력하거나 하이 임피던스로 출력할 수 있는 회로를 트라이스테이트 버퍼(tri-state buffer)라고 한다. 회로 기호에서는 버퍼를 나타내는 삼각의 표와 측면에는 출력을 하이 임피던스로 할지 아니면 입력 신호로 할지 결정할 수 있는 신호선이 있는 기호로 표시한다.
출력을 하이 임피던스로 하지 않을 것을 결정하는 입력 신호선은 게이트(gate)의 의미로 'G'로 표기하거나 작동(enable)의 의미로 'E', 'EN'로 표기하기도 한다. 또 데이터 버스에서 사용되는 경우 출력 작동(output enable)의 약자로 'OE'나 칩 선택(chip select)의 약어로 'CS'의 기호를 사용하는 경우도 많다.

쌍방향 버퍼

트라이스테이트 버퍼 2개를 조합하여 데이터 통신의 방향을 변경할 수 있게 만든 회로도 자주 사용되고 있다. 이 회로는 쌍방향 버퍼라고 불리며 G가 L일 때는 Y에서 X방향으로 데이터가 전송되며, G가 H일 때는 X에서 Y방향으로 데이터가 전송된다.
트라이스테이트 버퍼나 쌍방향 버퍼는 많은 회로가 신호선을 공유하는 데이터 버스나 주소 버스에 널리 사용된다. 그렇기 때문에 데이터 버스의 비트의 단위가 되기 쉬운 8 채널 트라이 스테이트 버퍼 IC가 대중화되어 자주 사용된다.

데이터 셀렉터

그리고 동일한 트라이스테이트 버퍼를 여러 개 조합, 와이어드 오어의 원리를 사용하여, 복수의 입력 신호 중 하나만 출력하는 회로를 만들 수 있다. 이것을 데이터 셀렉터(data selector)라고 불린다. 데이터 셀렉터는 일반 논리 소자로 이용해 구성하는 (Y ← (S AND X1) OR ((NOT S) AND X2))가 트라이스테이트를 이용하여 훨씬 간단한 내부 회로로 제작할 수 있다. 옆의 그림은 두 채널 데이터 셀렉터이지만 네 채널, 여덟 채널의 데이터 셀렉터도 이 회로를 응용하면 쉽게 제작할 수 있다.