본문 바로가기

프로그래밍/Computer Structure

4. CMOS(Complementary Metal-Oxide-Semiconductor) - 2

1. CMOS Architecture

 

1) Stable MOSFET

CMOS는 V_GS의 크기에 의해 current가 흐르게하는 switch로서 control되는데, 이러한 V_GS가 제대로 입력되지 않았을 때, NFET의 경우 GNDSource와 Bulk에 연결되지 않으면(floating 상태) 정확한 동작을 보장할 수 없다. PFET의 경우 가장 높은 voltage인 V_DD(공급전압)에 연결되어야 한다. 

따라서, 입력이 없을 때(0)  off(low, 0)상태를 유지해야하는 pulldown circuit은 NFET을, 입력이 없을 때(0)  on(high, 1)상태를 유지해야하는 pullup circuit은 PFET을 사용해야 한다.

 

2) CMOS Inverter

 

 

NFET, PFET을 연결한 Inverter는 위와 같다.

Input에 low(0)을 가하면 PFET부분은 on, NFET부분은 off가 되어, V_OUT이 최종적으로 V_DD(high, 1)에 도달할 때까지 Vdd에서 output으로 current가 흐른다.

Input에 high(1)을 가하면 PFET부분은 off, NFET부분은 on이 되어, V_OUT이 최종적으로 GND(low, 0)에 도달할 때까지 output에서 GND로 current가 흐른다.

물론 input에 따른 output의 동작은, Voltage Transfer Characteristic(VTC)를 만족해야 한다. 

 

3) CMOS Inverter architect

 

위와 같이 NFET, PFET으로 구성한 complementary pullup and pulldown logic에서 pullup, pulldown은 총 4가지 상태가 가능할 수 있고, pullup, pulldown에 따른 input은 다음과 같이 설계되어야 한다. 

 

pullup pulldown input
on off 1
on on 0
on on X
off off no connection

 

pullup, pulldown이 모두 on이 되면 V_DD에서 V_GND로 직접 연결되어 매우 큰 전류가 흘러 circuit에 손상을 줄 수 있으므로, 이러한 상태는 존재해선 안된다.

pullup, pulldown이 모두 off가 되면 V_DD와의 연결이 끊어지게 된다. V_OUT에는 많은 capacitance가 있는데, 이를 통해 V_DD와의 연결이 끊어져도 일시적으로 이전의 상태(low or high)를 유지한다(memory의 원리, DRAM이 refresh되어야 하는 이유).

 

2. Fully-Complementary CMOS 

 

CMOS를 이용하면 여러 기능을 구현할 수 있다. 

 

다음과 같은 기능을 pullup network로 구현한다고 해보자.

 

$F = \overline{A} + \overline{B} \cdot \overline{C} $

 

이것의  complementary pulldown circuit (기능은 동일) 은, series subcircuit은 parallel subcircuit으로, parallel subcircuit은 series subcircuit 으로 변환하고 PFET을 NFET으로 교체해주면 된다.

 

 

이러한 기능이 동일한 두 개의 complementary한 pullup & pulldown circuit을 합친것을  fully complementary CMOS구조 라고 하며, 각각 GND, V_DD와 연결되어 floating상태를 피해 정확한  voltage output을 보장하는 logic gate를 구현할 수 있고, 이를 통해 여러 logical  arithmetic 을 구현할 수 있다.  

(PFET만으로 또는 NFET만으로 만들 경우, floating상태 가능)

 

참고로 하나의 CMOS gate로는 AND와 같은 출력이 입력 조합의 postive인 logic을 구현할 수는 없다(NAND만 가능). NFET은 입력이 on(1) 일 때 출력으로 GND(0)을 출력하고, PFET은 on(0)일 때 출력으로 V_DD(1)을 출력하게 되는데,  PFET의 AND/OR 조합이든, NFET의 AND/OR조합이든 모두 출력이 최종적으로 inverting되어 나오기 때문이다. 

 

3. CMOS Timing

 

1) Propagation delay

 

CMOS의 output에는 capacitor이 연결되어있고, capacitor에 charge가 충전되는 시간이 필요하기 때문에 input의 변화에 따른 output의 변화가 완전히 이루어 지기까지는 시간이 걸린다.

 

 

propagation delay $t_{PD}$ 란,  이러한 valid input이 된 순간부터 valid output된 순간까지 걸리는 시간의 upper bound이다. 외부환경(온도 등)을 고려하여 설정되어야 하며, 복잡한 전체 시스템의 propgation delay를 계산하기 위해 필요하다.

 

우리의 목표는 propgation delay를 최소화 하는 것이며, RC circuit에서 time constant(VDD의 63%까지 도달하는데 걸리는 시간)  $\tau  = RC$ 이므로, capacitance나 resistance가 최소가 되어야 한다.

 

흥미로운점은, propagation delay를 감소시키기 위해서는 channel의 width를 증가시켜 MOFSET channel의 resistance를 줄여야 한다. 하지만 gate capacitance가 증가하게 된다.

(gate와 channel사이에는 얇은 SIO2 layer로 절연되고 사이에 electric field가 작용하고, 따라서 capacitor처럼 동작함)

gate capacitance의 증가는 propagation delay를 오히려 증가시키는 역할을 하게 된다.

따라서, MOSFET의 channel size를 결정하는 문제는 trade-off를 optimization하는 problem이 된다. 

 

2) Contamination delay

 

CMOS의 상태 변화의 시작인 invalid input으로의 변화에 따른 invalid output으로 변하기까지는 시간이 걸린다.

 

 

Contamination delay $t_{CD}$ 란,  invalid input이 된 순간부터 invalid output된 순간까지 걸리는 시간의 lower bound이다. 보통은 중요하지 않고, 따로 명시되어있지 않으면 0으로 가정할 수 있다. 최소 $t_{CD}$ 동안 output은 old ouput을 유지한다. 

 

참고로 $t_{CD}$이후에 output의 상태가 완전히 변하기까지의 구간에서 output의 동작은 어떠한 보장도 할 수 없다

 

3) Total combinational circuit delay

 

여러 NAND gate로 이루어진 회로를 생각해보자.

Total propatation delay는 input에서 output까지 maximum path의 propagation delay의 합이다.  

Total contamination delay는 input에서 output까지 minimum path의 contamination delay의 합이다.  

 

4) Lenient Gates

 

Leient Gates는 input의 변화에 대해서 output이 변하지 않도록 설계된 gate이다.

예를 들어, 아래와 같은 truth table을 갖는 gate는 X라고 표시된 input을 갖는데, 이 부분에서 input이 변화되어도 output이 변화하지 않도록 설계된 gate라는 의미이다. 

A B Z
0 0 1
X 1 0
1 X 0

 

input이 변화할 때 t_CD, t_PD 동안에 output의 변화를 최소화시켜 valid하게 변하지 않도록 설계되어, input의 transition에 따른 delay를 고려하지 않아도 된다. 

'프로그래밍 > Computer Structure' 카테고리의 다른 글

5. Combinational logic  (0) 2024.11.18
3. CMOS(Complementary Metal-Oxide-Semiconductor) - 1  (0) 2024.11.05
2. Digital Abstraction  (1) 2024.10.19
1. Basics of information  (0) 2024.10.09