본문 바로가기

전자공학/집적회로설계

1.4 CMOS Logic (1) CMOS Inverter(인버터), NAND Gate(낸드게이트), CMOS Logic Gates (Pull

 

 ***그림의 무단 도용과 재배포를 원치 않으며
출처에 유의하시길 바랍니다***

 

 

1) CMOS Inverter ; CMOS 인버터, Not 게이트

 

CMOS inverter schematic
inverter, NOT gate symbol

 

 

위 그림은 CMOS inverter를 위한 schematic, 아래 그림은 inverter 의 symbol 입니다!

전자과 2학년 학생들은 inverter하면 아래 그림이 먼저 떠오를 것이고, 3학년 학생들은 위와 아래 그림 둘 다 떠오를 것입니다 ^^

 

심볼은 회로에서 inverter를 표현하기 위한 기호이며, schematic은 실제 CMOS로 어떻게 구현할 것인지에 대한 정보가 담겨있어요.

그럼 schematic을 보면서 inverter 의 동작을 살펴 볼게요!

 

 

 

- PMOS와 NMOS 의 게이트로 들어가는 신호는 Vin으로 같습니다.

- NMOS와 PMOS의 드레인에서 출력 V_out을 얻습니다. 

- 출력단 V_out은 로드 커패시터 C_L을 통해 그라운드로 연결되어 있습니다.

    = 모든 트랜지스터는 의도하지 않는 커패시턴스를 갖습니다(Parasitic Capacitance). 출력단에서 커패시턴스를 등가로 모델링 한 것이 C_L입니다. 

- 출력 커패시턴스에 Charge(전하)가 충전되어 V_out이 VDD가까이 증가하면 출력이 logic 1임을 의미합니다.

- 출력 커패시턴스에서 Charge(전하)가 방전되어 V_out이 GND 가까이 감소하면 출력이 logic 0임을 의미합니다. 

 

< input  V_in이 0일 때 >

input으로 logic Low, 0V가 들어왔다고 가정하고 인버터의 동작을 살펴봅시다.

 

 

- 게이트에 0v가 가해졌기 때문에, PMOS는 turn ON 되고 NMOS는 turn OFF 됩니다. 

- 디지털 회로에서는 MOS를 스위치로 모델링할 수 있었던 것 기억 나시죠? Turn ON된 PMOS는 저항을 갖고 연결된 전선으로 모델링할 수 있습니다. 이상적인 상황에서는 저항이 없이 연결된 전선으로 모델링 하겠지만, turn on 된 MOSFET은 약간의 저항을 갖고 있습니다. 이 저항을 우리는 R_PMOS라고 할게요.

- 반면에 Turn OFF된 NMOS는 연결되지 않은 스위치로 모델링합니다. 

- 그러면 회로가 오른쪽 보라색 회로처럼 보입니다. 

- 옴의 법칙에 의해 저항 R_PMOS에는 '저항 양단의 전압차에서 저항 값을 나눈 만큼'의 전류가 흐릅니다. 

i = (VDD-V_out)/ R_PMOS

- 전류는 저항 양단의 전압차가 없어질 때 까지 흐릅니다. 

- 전류가 흘러서 로드 커패시터 C_L에 전하를 충전하고 V_out이 VDD와 같아지면 전류의 흐름이 멈추게 됩니다.

 - V_out은 VDD이므로 출력은 logic High, 즉 1 입니다.

 

 

 

다음은 입력으로 logic High인 1이 들어왔다고 생각해봅시다.

< input  V_in이 1일 때 >

 

 

- 게이트에 1v가 가해졌기 때문에, PMOS는 turn OFF 되고 NMOS는 turn ON 됩니다. 

- Turn ON된 NMOS는 저항을 갖고 연결된 전선으로 모델링할 수 있습니다. 이 저항을 우리는 R_NMOS라고 할게요.

- 반면에 Turn OFF된 PMOS는 연결되지 않은 스위치로 모델링합니다. 

- 그러면 회로가 오른쪽 보라색 회로처럼 보입니다. 

- 옴의 법칙에 의해 저항 R_NMOS에는 '저항 양단의 전압차에서 저항 값을 나눈 만큼'의 전류가 흐릅니다. 

i = (Vout-GND)/ R_NMOS = Vout / GND

- 전류는 저항 양단의 전압차가 없어질 때 까지 흐릅니다. 

- C_L이 에너지를 방전하면서  전류가 흐릅니다. V_out이 GND와 같아져 R_NMOS저항 양단의 전압차가 0이 되면, 전류의 흐름이 멈추게 됩니다.

 - V_out은 GND 이므로 출력은 logic High, 즉 0 입니다.

 

 

잠시 점검하고 갑시다!!

1. NMOS가 turn on 되면 load capacitor를 방전시키는 회로가 연결됩니다. 즉, output(출력)이 0이 되는 회로가 구성됩니다. 

2. PMOS가 turn on 되면 load capacitor를 충전시키는 회로가 연결됩니다. 즉, output(출력)이 1이 되는 회로가 구성됩니다.

 => 앞으로 Static complementary CMOS circuit에서 output 을 1로 만드는 회로 부분을 Pull-Up Network라고 부를 것입니다.

 => 반면, output을 0으로 만드는 회로 부분을 Pull-Down Network라고 부를 것입니다. 

 => Pull-Up Network는 보통 PMOS로 이루어지고, Pull-Down Network는 보통 NMOS로 이루어집니다. 왜냐하면 나중에 더 자세히 설명드리겠지만 PMOS는 strong 1 과 weak 0을 전달하고 NMOS는 strong 0와 strong 1을 전달하기 때문입니다.

 

<Truth Table of inverter>

V_in V_out
0 1
1 0

truth table에서 볼 수 있듯이 inverter는 input을 반전시켜 output으로 내보냅니다.

 

 

 

 

 

2) CMOS The NAND Gate ; CMOS 낸드게이트

 

NAND Gate는 AND + NOT Gate라고 생각할 수 있습니다.

2 input의 경우 2개의 input을 AND연산을 시킨 후 결과를 반전시킨 것이 최종 출력입니다.

기호(symbol)는 아래와 같습니다. 

 

2-input NAND gate symbol

 

왼쪽 기호를 가장 먼저 떠올릴 수 있지만 오른쪽 기호처럼 나타낼 수도 있습니다. 드모르간의 법칙을 적용하면 두 개의 input을 각각 반전시킨 후 OR시킨 것이 NAND와 같기 때문입니다.

 

input을 A, B라 하고 output을 Y라 한다면 NAND의 boolean Equation은 Y = (AB)' 입니다.

De Morgan's Law(드모르간의 법칙)에 의해 Y= A'+B'도 equivalent(등가,동등)입니다.

 

위 Boolean Equation을 만족하는 NAND의 Truth Table을 살펴보겠습니다. 

A B
0 0 1
0 1 1
1 0 1
1 1 0

 

NAND Gate의 input과 output 특징은 input중 0이 하나라도 있으면 출력 Y가 1이 된다는 것입니다. 

input이 모두 1인 경우에만 Y가 0입니다. 

(AND게이트와 정확히 반대로 동작하네요!!)

 

그럼 이제 Static CMOS Circuit으로 구현한 NAND의 schematic을 살펴 보겠습니다. 

 

2input NAND schematic

 

회로 구성을 한 번 볼게요. 위 쪽에는 input이 A, B인 PMOS 두 개가 병렬로 연결되어 있고 한 쪽은 VDD, 다른 한 쪽은 output으로 연결되어 있습니다.

아래쪽에는 input이 A, B인 NMOS 두 개가 직렬로 연결되어 있고 한 쪽은 output, 다른 한 쪽은 GND로 연결되어 있습니다. 

아까 인버터에서 설명 드렸듯이, PMOS 2개는 Pull-Up Network를 구성하여 output에 VDD를 전달, 출력을 1로 만드는 역할합니다. 

NMOS 2 개는 Pull-Down Network를 구성하여 output을 GND로 끌어내리고 출력을 0으로 만드는 역할을 합니다. 

 

PUN에서 PMOS는 2 개가 병렬로 연결되어 있기 때문에 하나만 turn on 되도 output이 VDD와 연결되어 출력이 1이 됩니다.

즉 input중 0이 하나라도 있으면 출력이 1이 되는 NAND의 동작과 일치합니다.

PDN에서 NMOS는 2 개가 직렬로 연결되어 있기 때문에 둘 다 turn on 될 때만 output이 GND와 연결되어 출력이 0이 됩니다.

즉, input이 모두 1이면 PUN이 켜져서 출력이 0이 되며 이는 NAND의 동작과 일치합니다.

input중 하나라도 0이 있으면 출력이 1인 것과, input이 모두 1이면 출력이 0이 되는 것은 서로 '이'의 관계에 있는 명제입니다. 

이런 논리 관계로 PUN과 PDN을 구성하기 때문에, PUN과 PDN사이에는 duality가 성립한다고 합니다.  

즉, Pull-Down Network와 Pull-Up Network는 동시에 켜지지 않습니다. - 동시에 켜지게 되면 문제가 발생합니다. ㅜㅜ

그래서 두 네트워크가 켜지는 인풋조합은 서로 반대되도록 만든 것이고요! 이것이 두 네트워크 간의 duality를 의미합니다.

 

PUN과 PDN의 on, off를 생각하며 NAND의 truth Table을 다시 보겠습니다.

A B Pull-Down Network Pull-Up Network Y
0 0 off on 1
0 1 off on 1
1 0 off on 1
1 1 on off 0

 

- PUN과 PDN은 동시에 켜지지 않는 것을 확인합니다.

- PUN에서 PMOS는 병렬로 연결되어 있기 때문에 input중 하나라도 0이 있으면 PMOS가 turn ON되어 PUN이 켜지고

출력이 1이 됩니다. 

- PDN에서 NMOS는 직렬로 연결되어 있기 때문에 input이 모두 1이 되어야 PDN이 켜져 출력이 0이 됩니다. 

 

 

 

 

2) static CMOS Logic Gates ; 

위에서 설명한 inverter와 NAND gate는 static CMOS logic gates의 예시들입니다.

static CMOS logic gates 는 complementary CMOS gates라고 불리기도 합니다. 

 

지겹겠지만 마지막으로 정리하자면, static CMOS gates는 pull-down network와 pull-up network로 이루어져 있습니다.

pull-down network는 nMOS로 구성되어 출력을 0(GND)에 연결시키기 위한 네트워크이며, pull-up network는 pMOS로 구성되어 출력을 1(VDD)에 연결시키는 네트워크입니다. 

 

inverter에서 PDN과 PUN은 하나의 nMOS와 pMOS로 이루어져 있었으며, NAND Gates는 nMOS가 직렬로 연결된 PDN과 pMOS가 병렬로 연결된 PUN으로 이루어졌습니다. 

 

어떤 input 조합에 따라 'PUN이나 PDN을 turn ON/OFF시킬지'는 각 network에서 MOSFET을 '어떻게 연결'시키는지로 결정할 수 있습니다. 각 MOSFET들은 parallel(병렬), series(직렬) 두 가지 방식으로 연결시킬 수 있습니다. 

 

PDN에서

- nMOS의 series 연결 : 모든 nMOS input에 1이 들어와야 PDN이 turn ON 된다. 

- nMOS의 parallel 연결 : 여러 nMOS중 하나만 input에 1이 들어와도 PDN이 turn ON된다. 

 

PUN에서 

- pMOS의 series 연결 : 모든 pMOS input에 0이 들어와야 PUN이 turn ON된다.

- PMOS의 parallel 연결 : 여러 pMOS중 하나만 input에 0이 들어와도 PUN이 turn ON된다.

 

아래 그림을 보시면 더 이해가 잘 될거에요. 

 

 

 

 

4)  The NOR Gate;  NOR 게이트; static complementary CMOS 디자인 방법론과 그 연습

앞에서 static CMOS를 어떻게 구현하는지 연습했습니다. 이제는 NOR를 구현해볼게요. 이것 역시 식은 죽 먹기입니다. 

우선 저희가 구현하고자하는 NOR gate의 logic으로 truth table을 작성해봅시다. A, B는 두 개의 input, Y는 output입니다.

NOR은 원래 알고 있던 OR의 출력을 반전시킨 것과 같습니다. 

A B Y
0 0 1
0 1 0
1 0 0
1 1 0

조금 만 더 해석을 해보면,

input에 1이 하나라도 있으면 출력은 0이고 

input이 모두 0이면 출력은 1이 됩니다.

 

static CMOS gates 설계

1. PDN을 turn ON시키기 위한(Y'의) Boolean Equation찾는다. 

사실 PDN과 PUN중 하나만 구현하고 나면 다른 하나는 duality로 쉽게 구현할 수 있습니다. 

또한 PDN을 먼저 디자인하는 것이 좋습니다. 왜냐하면 static CMOS, dynamic circuit, pseudo NMOS모두 같은 PDN을 갖기 때문입니다.

PDN을 turn ON 시키기 위한  Boolean Equation은 정확히 Y'에 대한 boolean equation을 찾으면 됩니다. 왜냐하면 PDN은 출력을 0으로 만들 때 turn ON되기 때문입니다. Y의 반전 신호인 Y'은 출력Y가 0일 때 1(네트워크의 연결, turn ON됨을 의미)입니다. 

Y= (A+B)'이므로

Y' = ((A+B)')' = A+B입니다.

2. Boolean Equation의 +는 Parallel connection, *는 Series connection으로 디자인한다.

따라서 Y' 는 A와 B를 input으로 갖는 nMOS의 병렬연결로 표현이 가능합니다. 

 

PDN of NOR Gate

 

 

3. PDN으로부터 conduction complements를 이용해 PUN을 디자인한다.

PDN과 PUN사이에는 duality가 성립합니다. PUN과 PDN이 동시에 turn ON되는 일도, 동시에 turn OFF되는 일도 없도록 하기 위합입니다. 

만약 두 네트워크가 동시에 turn OFF된다면 출력은 high-impedance / floating Z / high-Z 가 됩니다. input이 어떤 supply rail에도 연결되지 않고 floating되어 있는 상태를 의미합니다. 

만약 두 네트워크가 동시에 turno ON된다면 출력은 crowbarred/ contention/ Unknown X가 됩니다. 결과적으로 출력은 0(GND)와 VDD사이 예측할 수 없는 값을 갖게 되며, VDD에서 GND로 큰 전류가 흐르기 때문에 static power를 소비하게(dissipates) 됩니다. => 가뜩이나 에너지가 아까운데 이런식으로 전력을 소모하면 안되겠쥬? 

우리는 논리적으로 동작하여 예측가능한 'logic' gates를 만들어주고 싶기 때문에 이러한 high Z 나 crowbarred를 피하는 것입니다. 

 

* conduction complements principle

pMOS pull-up network구현을 위해 우리는 반대 극성을 갖고 turn on되는 스위치를 이용하여 complementary expression을 계산해 주어야합니다. 무슨말이냐 하면, pMOS는 input 이 0일 때 켜지므로 input A, B에 관하여 A'와 B'로 이루어진 complementary expression을 찾아야 한다는 말입니다. 

 

드모르간의 법칙을 사용하면, 전체 수식에 '(inverting)이 있다면 +와 *연산을 서로 바꾸고, literal은 반전시켜줌으로써 complementary expression을 만들 수 있습니다. 

ex ) Y= (A+B)' = A'*B' 처럼 전체 수식에 걸린 ' 이 각 literal의 '으로 분배되면서 +가 *로 교환되었습니다.

 

따라서 Pull-dwon Network에서 parallel로 연결되었던 nMOS트랜지스터들을 pull-up Network에서는 series로 연결된 pMOS로, series로 연결되었던 nMOS들은 parallel로 연결된 pMOS로 구현하면 되는 것입니다. 이러한 원리를 conduction complements 원리라고 합니다. 

 

PUN of NOR gate

 

conduction complements원리로 구현한 PUN은 원래의 boolean equation도 충족시킵니다.

Y=(A+B)' => 드모르간 법칙 => Y = A' * B' 

 A'와 B'가 둘 다 1 이어야 Y는 (PUN이 turn ON되어) 1 이 됩니다. 

즉, A와 B가 둘 다 0이 되어야 함을 의미합니다. PMOS는 input이 0일 때 ON되므로 A'*B'로부터 

input이 A, B인 PMOS를 그대로 series로 연결하면 된다는 것을 알 수 있습니다.