[4호]왕초보 전자회로 강좌특집 4부 – 2
왕초보 전자회로 강좌특집 4부 – 2
글 |스네일앤 스네이크 ※ 상기 내용은 디바이스마트와 스네일앤 스네이크의 협의를 |
AND, OR, NOT, NAND, NOR, XOR gate 진리표 (Truth Table)
▶ 회로설명 (circuit description)
이번 시간에는 로직블록의 종류와 입/출력 상태의 관계를 보여주는 진리표(Truth Table)에 대해 설명합니다. 만약 처음으로 로직회로를 접하는 분이 있다면, 단순하면서도 다양한 기본 블록의 쓰임새에 매료 당하게 될 것입니다.
로직블록의 최대 매력(魅力)은 기본 종류가 딱 4개 뿐이라는 것입니다.
기묘하게도 기본이 되는 종류의 숫자가 적을수록 더 강력한 응용과 확장성을 가지는 경우가 많습니다. 예로 (유클리트) 기하학에서 도형의 기본형도 마찬가지입니다. 원, 삼각형, 사각형의 세 종류면 기초 수학에는 충분합니다. 고급 응용단계에서 타원, 포물선, 쌍곡선이 추가되는 정도지요.
물론 여기에 점(點)과 선(線), 좌표(座標)의 개념이 필요하겠군요.
어쨌거나 도형의 기본형은 세 개 (혹은 6개) 뿐입니다. 수 많은 응용에 비하면, 놀랄만큼 적은 숫자입니다.
로직도 마찬가지입니다. AND게이트, OR게이트, NOT게이트의 세 종류면 논리회로는 전부 만들 수 있습니다. 여기에 메모리 역할을 하는 JK F/F (엄밀하게는 D F/F. D F/F은 JK F/F에 NOT 게이트를 하나 더해서 만듬) 하나만 추가하면 (세상의) 모든 로직 회로는 다 만들 수 있습니다.
아 그래요? 다 만들 수 있다고요…??? 그렇죠 뭐… 원래 그렇게 되어있는 것 아닌가요? ← 흠! 이렇게 심드렁하게 생각하시는 건 아니죠?
사실 현재의 마이컴까지도, (파고 들어가면) 이 네 가지 기본 로직 요소로 분해되고 맙니다. 이 이야기는, 온갖 종류의 (디지털) 무기고 열쇠가 손에 들어왔다는 뜻이며 역으로 세상의 모든 (디지털) 무기를 분해하는 방법을 보여주고 있다는 점에서, 중대한 의미를 지니고 있습니다.
(이제, 중요하다고 동의하는데 한 표 어떻습니까?)
▶ 회로도 (The circuit diagram) : 로직 기본블록 + AND, NOT, NAND 게이트 진리표 (Truth Table)
설명드린 대로 로직회로는 AND, OR, NOT, JK F/F의 4종류면 풀 세트가 완비됩니다. 그러나 편리와 효율성을 위해 NAND, NOR, XOR 게이트와 D F/F의 4종을 더해서, 모두 8종류를 설명합니다.
※ “NAND = AND + NOT”, “NOR = OR + NOT”의 의미입니다. NAND 혹은 NOR 게이트 만을 사용하여 AND, OR, NOT, XOR 기본 게이트를 전부 만들 수 있는 장점이 있으므로, (한 종류의 IC로 설계하면 여러모로 편리하므로) 표준 로직 IC로 폭 넓게 사용됩니다.
① AND gate : 입력(단자)의 상태가 모두 High가 되어야만, 출력(단자)의 상태가 High로 되는 논리 게이트입니다. 반대로 (여러개의) 입력 중에 하나라도 Low가 있으면, 출력은 Low가 됩니다. 이러한 정의를 표로 만든 것이 진리표(Truth Table) 입니다. 가만히 들여다보면 두 입력 A와 B가 모두 “1″일때만 출력 X가 “1″이 된다는 것을 알아차릴 수 있습니다. (진리표는 가로로 읽습니다. 행 단위임)
※ 논리회로에서 입 / 출력 단자의 High 상태는 “1″, Low 상태는 “0″ 으로 표시합니다.
※ 논리회로에서 상태는 둘 밖에 없습니다.
즉 High와 Low, 1과 0뿐입니다. 어중간한 상태란 없습니다.
그래서 디지털은 “이진논리에 따른다.”라고 합니다.
② NOT gate : 입력 단자가 하나뿐인, 가장 간단한 논리 게이트입니다. 입력 단자와 출력단자의 상태는 반대가 됩니다. 더 드릴 말씀이 없습니다.
③ NAND gate : 가장 쓸모가 많아서 널리 사용되는 논리 게이트입니다. 2~3개를 연결하면, AND, OR, NOT, XOR등 모든 게이트로 변신합니다. NOT를 의미하는 작은 원을 가진 심볼 모양에 주의 하십시요. (AND에서 NOT으로 이어지는) NAND 게이트의 진리표를 해독할 수 있으면, 몇 단계로 복잡하게 연결된 논리 게이트 상태도 (같은 요령으로) 해독하는 능력을 갖게 됩니다.
▶ 회로도 (The circuit diagram) : OR, NOR, XOR (JK F/F, D F/F) 게이트 진리표 (Truth Table)
④ OR gate : 입력(단자)의 상태가 하나라도 High가 되면, 출력(단자)의 상태가 High로 되는 논리 게이트입니다. 반대로 (여러개의) 입력이 전부 Low가 되어야만, 비로소 출력은 Low가 됩니다. AND게이트와 반대 의미가 있습니다.
⑤ XOR gate : OR 게이트의 변형입니다. 동작은 OR 게이트와 같으나, 입력이 전부 High이면 출력이 Low가 된다는 점이 다릅니다. 가끔 유용하게 사용됩니다.
⑥ NOR gate : NAND 게이트와 의미는 같습니다. (NAND 게이트가 NOR 게이트보다 많이 사용됩니다)
⑦ 플립플롯 (JK F/F, D F/F) 진리표 : 많이 사용되는 대표적인 플립플롯은, 1 bit 메모리 기능을 갖고 있는 D F/F 입니다. 로직회로에 직접적으로 사용되기 보다는, 카운터 IC나 Latch IC로 특화되어 사용됩니다. 여러가지 종류의 IC마다 사용법이 조금씩 달라지므로 실제 사용하는 회로안에서 설명하겠습니다.
※ 플립플롯은 입력 단자도 많고, 상태도 복잡하여 진리표가 유효하지 않습니다. 특히 입력펄스의 Low → High 순간 (riging edge) 이나, High → Low 순간 (falling edge)에 상태변환이 일어나므로 오히려 그림과 말로 설명하는 편이 좋습니다.
로직 게이트의 입력/출력 연결조건 + 기본회로 알아보기
▶ 회로설명 (circuit description)
로직 게이트의 사용은 쉽고, 재미있습니다. (계산해서) 설계한대로 연결하고, 입력조건만 맞춰주면 (스스로 알아서) 잘 동작합니다.
전문가가 만드나 초보자가 만드나 전혀 차별하지 않고 동작해 줍니다.
비록 초보자가 지저분하게 연결해도 (기특하게) 잘만 작동합니다.
그러면 실제로 로직 게이트를 구현하고 있는 로직 IC의 입력과 출력을 연결하는데 필요한 몇몇 약속들을 먼저 알아봅시다
▶ 회로도 (The circuit diagram) : 입/출력 단자의 연결조건 맞추기
이제부터는, 같은 종류의 로직 패밀리 IC를 사용한다는 전제하에 설명합니다. 로직 패밀리 IC는 트랜지스터를 사용한 TTL계열의 74LSxxx시리즈와, FET를 사용한 CMOS계열의 40xx, 45xx 시리즈가 대표적입니다.
그림 ① 로직 IC의 입력끼리는 몇 개라도 서로 연결할 수 있습니다. (제한이 없습니다)
그림 ② 로직 IC의 출력은 서로 연결할 수 없습니다.
이유는 “마법의 갈고리” 즉 “입력 싱크전류”를 만족시키기 위해 로직 IC 출력회로는 (상당히 큰) 전류를 공급하거나 흡수할 수 있도록 설계되어 있습니다. 만약 서로 연결된 두 출력이 같은 논리상태라면 문제가 없지만 서로 다른 상태인 경우, 상태 High인 IC 출력단자에서 상태 Low인 IC 출력단자 쪽으로 큰 전류가 흐르게 됩니다. 이런 과전류 상태에서 몇 분 정도는 문제가 없지만, IC는 점차 과열되고 결국 파손되어 버립니다. 이런 경우에 IC를 만져보면 (부분적으로) 뜨끈, 따뜻합니다.
그림 ③ 로직 IC의 입력과 출력은 바로 연결합니다. 특히 1 : 1로 하나씩 연결하는 경우는 만사 O.K 입니다.
그림 ④ 하나의 로직 IC의 출력에 여러개의 입력을 연결하는 경우에도 바로 연결하면 됩니다. 연결되는 입력의 갯수가 10개 이하이면 아무런 문제가 없습니다. (우리에게는 충분히 여유있는 갯수이지요.)
※ 일반적으로 로직 IC의 출력 하나에 10~20개의 입력을 연결하는 경우는, 메뉴얼을 참고하는 편이 바람직합니다. 소위 “팬 아웃(Fan Out)”의 문제가 발생할 수 있기 때문입니다.
그림 ⑤ 회로에서 맨 처음 로직 IC의 입력상태를 정하려면, 전원이나 GND에 연결하면 됩니다. (전원에 연결하면 High 상태, GND에 연결하면 Low 상태)
※ 입력의 상태를 High → Low나 Low → High로 변환시키려면 스위치와 함께 저항이 필요해집니다. (저항이 없으면 전원과 GND가 쇼트되므로, 회로가 동작하지 않습니다) 이 경우에 입력단자에 저항을 거쳐 전원이나 GND에 연결하게 되는데 역시 동작에는 문제가 없습니다.
입력단자에 직렬로 연결된 외부저항의 유무가 입력 상태에 영향을 미치지 않는 이유는 로직 IC 입력회로의 내부 임피던스가 크기 때문입니다.
(임피던스란 저항을 의미 엄밀히는 교류저항) 입력회로의 내부 임피던스가 크면 부가된 외부 저항으로 변화한 입력 전류가 적고, 그 결과 상태에 별 영향이 없게 됩니다.
그림 ⑥ 로직 IC의 출력단자는 전원이나 GND에 바로 연결할 수 없습니다. (이유는 ②번과 동일)
▶ 회로도 (The circuit diagram) : Logic IC 입력의 High / Low 상태 만들기 + 출력 확인하기
1. 로직 IC 입력 회로
① 그림은 입력을 High 상태로,
② 그림은 Low 상태로 만드는 회로입니다.
2. 로직 IC 입력의 상태를 전환하는 회로
① 그림은 스위치를 누르면 입력 상태가 High에서 Low로 전환되는 회로이며,
② 그림은 입력상태가 Low에서 High로 바뀌는 회로입니다. 로직 회로에서 입력상태를 변환시키는 설계에 많이 사용됩니다.
3. (CMOS) 로직 IC 출력 시험회로
TTL로직 IC인 경우 출력의 싱크전류를 이용하면 LED를 바로 점등할 수 있습니다. 그러나 CMOS로직 IC의 출력인 경우, (출력 소스, 싱크전류가 적어서) 반드시 트랜지스터를 사용해야 LED를 점등시킬 수 있습니다.
① 그림은 출력 High상태에서 (NPN)Tr이 구동되고 LED가 켜집니다.
② 그림은 반대로 출력이 Low인 상태에서 (PNP)Tr이 구동되어 LED가 켜지는 회로입니다. (10K 저항은 베이스 전류 제한용이며, 220Ω 저항은 LED 전류제한용 입니다)
이 회로들을 사용하면, 로직 IC의 출력상태를 점검할 수 있어 편리합니다.
CMOS 4001을 사용한 게이트 회로 (NOR Gate)
▶ 회로설명 (circuit description)
이제 실험으로 로직 IC를 이해 할 시점입니다. 대표적인 로직 IC 패밀리는 TTL, CMOS 두 종류가 있지만 TTL 계열은 전원전압 조건이 5V의 ±5% 안에 들어야 한다는 무척이나 까다로운 편이라서, 역시 3~15V의 전원전압 범위를 자랑하는 CMOS 계열을 택했습니다.
CMOS 계열은 넓은 전원전압 범위 + 저 전력의 장점으로 실제 회로설계에도 널리 사용되고 있으며, CPU나 메모리 IC, LSI, VLSI 칩 등에 광범위하게 사용되는 MOS-FET를 기본소자로 사용하고 있다는 장점이 있습니다. 반면에 트랜지스터를 기본 소자로 채택한 TTL은 전원조건이 까다롭고 소비전류도 많은 편이지만, 수십 MHz의 고속 동작에 강하다는 특유의 장점을 자랑합니다.
아마도 전문가가 아닌 영역에서 고속동작 로직을 필요로 하는 경우는 적기 때문에, 전원 호환성이 우수하고, 주변 설계가 용이한 CMOS 계열 로직 IC를 실험하는 편이 여러모로 유용하다고 생각합니다.
로직 IC의 실험목적은
1. AND, OR, NOT, XOR 기본 게이트의 입/출력 진리표로 동작확인
2. NAND, NOR 게이트를 조합하여 기본 게이트를 만들기
3. NAND, NOR 게이트로 세트/리세트 논리회로 (Set/Reset Logic Circuit)를 만들고 동작시켜보기
4. 로직 입력상태를 High→Low, Low→High로 변환시키는 회로 만들기
5. 트랜지스터로 로직 IC의 출력단자 상태를 확인하는 회로 만들기” 등 총 다섯가지 입니다.
그 실험 중에서 이번 시간에는 4001, NOR 게이트를 주제로 한 실험을 준비하였습니다.
▶ 회로동작 설명 (circuit operation)
4001 Logic IC는 4개의 NOR게이트를 가지고 있습니다.
(핀 배치는 그림참조)
※ 로직 IC에서 핀 번호를 매기는 방법은 일반 IC와 마찬가지 입니다. (좌측 상단이 1번, 반 시계 방향으로 돌아가며 번호 매김) 언제나 IC 상단의 턱을 확인하여, 1번 핀의 위치를 확실히 해 두고 작업해야 합니다.
로직 IC를 사용할 때 게이트 번호에 열중하다가, IC자체의 전원과 GND 단자를 회로에 연결하지 않는 경우가 종종 발생합니다. 더구나 실제의 로직 회로도는, (로직 IC의 전원연결에 대해 언급하지 않고) 오직 게이트 사이의 연결만 설명하는 것이 관례입니다. 그러므로 로직 IC를 사용할 때 항상 ”로직 IC자체의 전원과 GND를 연결해야함”을 머리속에 넣고 있어야, 회로 완성 후에 당황하지 않을 수 있습니다.
1. 첫 번째 시험회로는 NOR 게이트의 진리표를 확인하는 것입니다.
동시에 Low→High 입력상태 변환과 출력 시험회로도 함께 실험합니다.
회로에서 입력 A와 입력 B의 처음상태는 둘 다 Low입니다. NOR게이트 진리표에 의하면, 출력은 High 상태가 됩니다. 로직 IC의 출력이 High 이면, 출력전압은 전원전압과 (거의) 같은 6V가 되므로 출력단자에서 10K 저항을 거쳐 트랜지스터로 베이스 전류가 흐릅니다. 베이스 전류에 의해 트랜지스터의 콜렉터 전류가 흐르므로, LED가 켜지게 됩니다.
PB1이나 PB2를 누르면 NOR게이트의 입력 A와 입력 B는 Low→High 상태로 전환됩니다. 이유는 푸시버튼을 누름으로써 입력단자가 GND 보다 전원에 더 (전기적으로) 가까와졌기 때문입니다. GND와 입력단자 사이에는 10K 저항이 놓여 있으니까요. 이 경우는 진리표에 따라 출력단자가 Low, 즉 0V가 되므로 Tr에 공급되는 베이스 전류가 흐르지 않게되고, 그 결과 콜렉터 전류도 차단됩니다. 물론 LED도 꺼지게 됩니다.
※ 회로도에 보면 입력 A단자에 1번, 입력 B단자에 2번, 출력단자에 3번으로 결정되어 있습니다. (즉 4001 4 개의 게이트 중에 좌측 상단의 것을 사용한 것입니다) 그러나 이 것은 설계자가 임의로 정한 것입니다. 4001 IC 내 다른 번호의 게이트 입/출력으로도 시험해 보십시요. 같은 결과가 나와야 합니다.
2. NOR 게이트 실험이 성공적으로 끝나면 회로도 안의 붉은 점선으로 표기된 “등가회로 대치부분”을 회로도 아래의 ①, ②, ③, ④ 4개의 등가회로로 하나씩 바꿔 넣고, (앞 페이지의) 진리표에 따라 실험해 보십시요. 이 실험은 NOR 로직 게이트를 조합하여, 다른 모든 종류의 게이트를 만들어 낼 수 있다는 것을 보여주는 것이 목적입니다.
※ ①번의 NOT 게이트만 제외하면, 모두 두 개의 입력과 하나의 출력을 가지고 있으므로 회로를 쉽게 대치할 수 있을 것입니다. (NOT 게이트는 입력이 하나이므로, 두 개 중 어느 입력을 사용해도 O.K)
AND, OR, NOT의 기본 세가지 게이트만 있으면 (메모리를 제외한) 모든 논리회로를 만들 수 있고, NOR 게이트만 조합하면 기본 게이트를 만들 수 있으므로 결국 NOR 게이트 IC만 이해하면, 게이트 회로 공부는 끝이로군!” 이라는 느낌을 가져보십시요… (NAND 게이트도 마찬가지임)
3. (NOR) 로직 게이트 조합실험이 무사히 끝나면 NOR게이트 2개를 응용한 세트/리세트 논리회로 (Set/Reset Logic Circuit)를 실험해 보겠습니다.
일반적인 게이트 회로에서 입력 부분에 스위치나 스위치 회로가 연결되는 경우가 많이 나타납니다. 소위 스위치라는 종류의 부품이 동작할 때는 기계적인 접점의 형태이거나, 전기적 변환이 이루어지는 형태이거나 결국은 전기 흐름의 끊어짐(불연속)이 발생합니다. 이 불연속 동작을 로직 회로의 입력 측에서 보면, 몇 번의 펄스가 반복해서 들어오는 것으로 보여지게 됩니다. 결국 단 한번의 스위치 동작이, 로직 회로에서는 몇 개의 (확실하지 않은 수의) 펄스 입력이 나타나는 결과로 되어 버리지요.
이래서야 곤란하기 때문에 로직 회로의 스위치가 있는 입력 부분에 슈미터 트리거 회로나 Set/Reset 로직회로를 사용해서, 미리 방지를 해 줍니다. Set/Reset 로직회로는 2개의 입력을 가지고 있는데, 하나의 입력에 몇 개의 펄스가 들어오더라도 처음의 하나만 유효한 펄스로 간주하고 (나머지는 무시하는) 회로입니다. 다른 입력에 펄스가 들어와야, 다시 (처음 입력이) 준비상태로 들어갑니다. 그래서 이름도 세트/리세트 회로입니다.
즉 “리세트” 될 때 까지는, “세트” 입력이 딱 한 번만 동작하는 거지요.
두 번째 회로를 시험해보면 PB1, PB2를 누름에 따라, 출력 LED의 점등이 깨끗하게 동작하는 것을 느낄 수 있습니다. (첫 번째 회로는 입력 푸시버튼의 (불안정) 상태가 그대로 출력 LED에 반영됩니다. 스위치를 일부러 살며시 문질러 시험해 보십시요.) 눈으로는 확인할 수 없지만, 스위치 접점의 불안정 상태은 완전히 걸러져서 딱 1회분의 입력만이 출력으로 전달된답니다.
※ 가지고 있는 테스터로 제작한 로직 회로의 입력과 출력전압을 반드시 확인하고, 마음속에 기억하여 두시기 바랍니다. (조합회로도 마찬가지 입니다.) 향후에 CMOS 로직 IC를 이용하여 회로를 만들 때 회로내에서 동작하는 로직 IC의 입/출력 상태를, 테스터 전압 측정만으로 정확하게 알아낼 수 있습니다. (단 펄스의 유무나 동작확인은 테스터로 무리입니다)
다음편에 계속 됩니다.