본문 바로가기

[공학에 대해서]반도체 제대로 이해하기-247

A D latch stores an input signal when the clock is high and maintains that value when the clock is low, functioning as memory, while a D flip-flop (D F/F), composed of two latches in series, outputs data only at the positive clock edge for improved stability and timing precision—albeit with increased circuit complexity and area consumption—and various logic gates like NAND, NOR, and inverters are used alongside latches and flip-flops to implement conditional logic, as in the example of not taking a car when it's snowing or freezing, where memory of the previous day’s weather is required and thus necessitates flip-flops; ultimately, these digital circuits are designed in CMOS technology and finalized through layout, which adheres to hundreds of design rules that ensure manufacturability and correct operation, with the smallest feature dimension (e.g., 0.13 micrometers) representing the process node used in photolithography and serving as the defining metric of the technology.

 

래치(빗장)

그림 9.29와 같이 인버터와 토랜스미션 게이트로 이루어진 로직 게 이트를 D 래치(D latch)라 한다. 그림 9.29에서 CK는 클럭(clock)은 의미하는데 주로 CK 혹은 CLK로 표기한다. 클럭이란 그림 9.30에서 처럼 일정한 주기(period)를 가지고 1과 0이 반복되는 신호이다. 출 력 QN은 Q의 부정 즉, Q와 반대 값을 내보낸다는 의미다. 그림 9.30과 같은 그림을 타이밍 다이어그램(timing diagram)이라 고 하는데, 신호들의 상태와 변화를 시간축 상에 나타낸 그림이다. 여기서 이벤트(event) A1은 A2를 유발시키고, A2는 이벤트 A3를 유 발시킨다. 이벤트란 신호가 변화한 상태를 말한다. 즉 0에서 1 혹은 1에서 0으로 변화했을 때, 이벤트가 발생했다고 말한다. 1에서 1 혹 은 0에서 0으로 지속된 것은 이벤트가 아니다. 그림 9.30과 9.31을 같이 보면서 살펴보면 그림 9.30의 Q, QN의 초기의 붉은 색은 나중에 살펴보기로 하고 CK=1이 되는 순간부터 살펴보면 이벤트 A1이 발생하기 전에 이미 입력 D는 0이었다. 즉 인 버터 G2의 출력이 1인 상태에서 트랜스미션 게이트 G4를 통과하지 못하고 그 입력단에서 대기하고 있었다. 왜냐 하면 그 때는 CK=0이 어서 트랜스미션 게이트 G4의 PMOS 쪽에 인버터 G1의 출력 1이 가해지고, G4의 NMOS 쪽에 인버터 G3의 출력 0이 가해지고 있어 서 트랜스미션 게이트 G4가 오프 된 상태였기 때문에 입력 D의 신 호가 인버터 G2만 통과하고 G4 앞에서 대기하고 있었다. 그런데 CK 가 1로 변하면서 트랜스미션 게이트 G4가 온 되어서 신호는 인버터 G5, G7을 통과하여 트랜스미션 게이트 G6 앞까지 도달한다. CK=1 일 때 G6는 오프이므로 그 앞까지만 도달하게 된다. G5, G7을 통과 하면서 출력 Q, QN을 내보낸다. 출력 Q는 CK=1이 되는 순간부터 일정시간 즉, CK가 G1을 통과하여 G4를 온 시키는 필요한 시간에 다 신호가 G4, G5를 통과하는 데 걸리는 시간 11만큼 지난 후에 출 력된다. 이 지연 시간을 프로퍼게이션 딜레이 타임(propagation delay time, 전달 지연 시간)이라고 하는데 줄여서 그냥 딜레이라고 한 다. ON은 Q가 출력되고 G7을 통과하는 데 필요한 시간 12 후에 출 력된다. 즉 QN의 딜레이는 Q의 딜레이에다 12를 더한 값이 된다. 이번에는 그림 9.30에서 이벤트 B1을 그림 9.32를 보면서 살펴보 면 이벤트 B1은 CK가 1인 구간에서 발생했다. G4가 이미 온 된 상 태에서 D가 변했기에 D의 신호가 G2, G4, G5를 통과하는 데 필요 한 딜레이 13 후에 Q에 출력된다. 그리고 다시 G7을 통과하는 데 필 요한 시간 12 후 QN이 출력된다. 이제까지 언급한 딜레이 타임을 수식으로 표현하면, G1의 딜레 이를 tG1, G2의 딜레이를 [G2로 표시하면 다음과 같다.

t1 = tG1 + tG4 + tG5

t2 = tG7

t3 = tG2 + tG4 + tG5

실제로 이런 딜레이 타임은 얼마나 될까? 사용하는 공정마다 구 동시키는 부하의 크기에 따라 달라지는데 게이트 하나 통과하는 데 걸리는 지연시간은 약 0.1나노초(100억 분의 1초) 정도 걸린다. 이벤트 C1은 CK가 0일 때 발생했다. CK=0이므로 트랜스미션 게이트 G4는 오프 되어 있다. 즉 D의 변화가 출력 Q, QN에 아무런 영향을 주지 못한다. 래치 내부에서는 그림 9.33에서와 같이 트랜스 미션 게이트 G6가 온 되어 있어서 신호가 G5 G7→G6→ G5→G7...과 같이 게이트들을 맴돌며 G4가 닫히기 직전의 신호를 유지하고 있을 뿐이다. 신호를 유지한다는 말은 기억하고 있다는 말 과 같으므로 래치는 메모리 기능이 있다. 래치란 빗장을 말하는데 아마도 빗장을 걸면 더 이상 들어올 수 없는 것과 비슷해서 그런 이름이 붙었을 것이다. 이벤트 D1은 이벤트 A1과 마찬가지고, 이벤트 E1은 이벤트 B1과 마찬가지다. 그림 9.30에서 붉은 부분은 언노운(unknown) 상태를 표시하는 것이다. 언노운이란 말 그대로 알 수 없는 상태라는 소리 다. 그림 9.30에서 CK는 A1에서 처음 1이 되어 그 때 처음 래치가 열려서 그 전에 래치가 무슨 값을 기억하고 있는지 알 수 없다는 뜻 이다. 지금까지 D 래치의 구체적인 내부 동작을 살펴보았는데 간단히 말하면, D 래치는 래치가 열렸을 때 입력을 받아, 래치가 닫혔을 때 그 값을 유지, 기억하고 있는 회로를 말한다. 물론 래치가 닫혔을 때 들어오는 신호는 그림 9.30의 C1처럼 무시된다. D 래치의 D는 딜레 이(delay)의 약자다. 그림 9.31에서 보듯이 입력 D에서 출력 Q까지 는 인버터가 짝수 개 있으므로 입력 신호 값이 그저 딜레이만 생기 고 그대로 출력될 뿐이다. 이런 회로가 왜 필요할까? 이런 회로는 D 래치 뒷단의 회로에 안정적인 신호를 공급해 주는 데 필요하다. 그림 9.29의 D 래치는 CK가 0인 구간에서는 출력이 변하지 않는다. 따라서 뒷단의 회로는 신호가 변하지 않는다는 확신을 가지고 자신이 해야 할 일을 하면 된다. 그림 9.29는 CK가 하이일 때 열리는 D 래치이고 CK가 로우일 때 열리는 래치는 그림 9.34와 같다. 9.34 (b)에서 CK 앞에 버블 (bubble)이 있는데 이것은 전자 회로에서는 NOT에 해당한다. 인버 티나 낸드, 노어의 버블도 부정의 의미를 나타내는 것이다. CK가 로 우에서 열린다 하여 로우 액티브(low active)라는 말을 사용한다. 그림 9.29는 하이 액티브 D 래치(high active D latch)다. 이처럼 래치는 CK의 레벨(CK가 하이냐 로우냐)에 따라 동작이 결정된다. 그래서 래치를 레벨 센서티브(level sensitive)하다고 한다.

그림 9.35에 하이 액티브 D 래치의 타이밍을 나타냈다. D 래치를 바르게 사용하려면 그림 9.35와 같이 D 래치가 닫히기 최소한 Ts 전 에 입력 D가 들어와 있어야 한다.

이를 셋업 타임(set up time)이라 한다. 들어온 입력은 래치가 닫힌 후 최소한 Th만큼 변하지 말고 유지하고 있어야 한다. 이를 홀드 타임(hold time)이라 한다. D 래치의 출력은 딜레이 Td 후에 나오게 된다. 그림 9.30의 타이밍 다이어그램에서 보면, CK가 하이인 구간에서 입력 D가 변한 B1, E1 이벤트가 제대로 사용한 것이다. 출력 역시 CK가 하이인 구간에서 변하고 있다.

 

개구리가 폴짝 폴짝

그림 9.36과 같은 회로를 D 플립플롭(D Flip-Flop)이라 하는데 줄여 서 DF/F으로 많이 표기한다. 이는 그림 9.29의 D 래치 두 개가 불 어 있는 회로다. 그 중 앞부분의 래치를 마스터(master), 뒷부분의 래치를 슬래이브(slave)라 한다. 그림 9.37은 CK가 0일 때이다. 트랜스미션 게이트 G1이 온 되어 D의 신호가 매스터 단으로 들어오기는 하지만 G3이 오프 되어 슬래이브 단으로는 전달되지 못한다. 한편 슬래이브 단에서는 G3이 오 프 되어 매스터에서 신호를 차단한 상태로 G4가 온 되어 신호가 슬 레이브 단을 맴돌면서 이전 상태의 값을 Q, QN으로 출력시키고 있 다. 그러다가 CK가 1이 되면(그림 9.38) G1이 오프 되어 입력 D로부 더 신호를 차단하고, G2가 온 되어 신호가 매스터 부분을 맴돌면서 바로 직전의 값을 유지하고 있다. 그런데 G3이 온 되어 매스터 회로를 맴돌며 유지하고 있는 신호 가 슬래이브 단으로 전달되어 Q, QN으로 출력된다. 즉 CK가 로우 일 때 들어온 D 입력이 CK가 로우에서 하이로 변화하는 순간 (positive edge) 슬래이브 단의 G3이 열리면서 Q, QN으로 출력되는 것이다. 이렇게 D F/F은 CK가 로우 상태에서 하이 상태로 이동하는 순간에 값이 출력되므로 이를 엣지 센서티브(edge sensitive)하다고 한다. 이렇게 CK가 로우에서 하이로 변할 때 출력이 되는 D F/F을 포 지티브 엣지 트리거드 D F/F(positive edge triggered DF/F)이라고 한 다. 그림 9.39에 포지티브 엣지 트리거드 D F/F의 올바른 타이밍을 나타냈다. CK의 포지티브 엣지보다 Ts만큼 먼저 입력 D가 도달해야 한다. 이를 셋업 타임(set up time)이라 하고 이 입력은 또한 CK의 포지티브 엣지를 기준으로 일정 시간 만큼 유지하고 있어야 한다. 이를 홀드 타임이라 한다. 출력 Q는 CK의 포지티브 엣지에서 일정 시간 만큼 딜레이를 가지고 나오게 된다. 셋업 타임과 홀드 타임 은 래치에서와 같지만, 출력이 나오는 시점이 다르다. 그림 9.30의 D 래치에서는 입력 D가 빨리 들어오면 들어올수록 Q도 빨리 출력된다(B1, E1 참조). 그러나 그림 9.39에서는 입력 가 아무리 빨리 들어와도 출력 Q는 클럭 CK의 포지티브 엣지를 기준으 로 Ta만큼 지난 후에 나온다는 점이 다르다. 이렇게 클럭 CK의 엣지 에서 동작하는 것이 마치 총에 탄환이 장전되면 발사되는 것이 아니 라 장전 후 방아쇠를 당기고 나서 탄환이 나가는 것과 비슷하다 하 여 엣지 트리거드(edge triggered)라는 말이 붙었다. 그림 9.36 (b)에 서 CK 앞의 삼각형 표시는 엣지 트리거드를 의미하는 표시이다. DF/F도 D 래치처럼 값을 기억한다. 그런데 사용하기가 D 래치 ㆍ보다 편하다. 왜냐 하면 D F/F에서는 입력이 언제 들어오느냐에 상 관없이 CK의 포지티브 엣지에서 일정 딜레이 후에 출력이 나오기 때문이다. 그러나 스키메틱에서 보듯이 MOS 개수가 D 래치는 열네 개가 필요한데 반해 스물두 개가 소요되어 거의 1.6배 정도 많이 필 요한 단점이 있다(인버터와 트랜스미션 게이트의 스키메틱을 보면 각각 PMOS 한 개, NMOS 한 개 모두 두 개의 MOS가 필요하므로). 그만큼 실 리콘의 면적을 많이 차지한다는 의미다. D F/F의 D도 딜레이의 약 자다. 입력 D가 아무런 연산 없이 클럭 CK에 맞추어 딜레이만 먹고 Q나 QN으로 출력되기 때문이다(기껏해야 Q가 부정되어 QN으로 나가는 것 외에는).

포지티브 엣지 트리거드 D F/F이 있으면 당연히 네거티브 엣지 트리거드 D F/F도 존재하지 않을까? 그림 9.40에 네거티브 엣지 트 리거드 D F/F의 스키메틱과 심벌을 나타냈다. 스키메틱을 보면 그 림 9.36의 포지티브 엣지 트리거드 D F/F에 비해 단지 트랜스미션 게이트의 PMOS, NMOS 방향만 뒤바뀌었음을 알 수 있다. 그뿐이다. 심벌에선 CK 앞에 부정을 의미하는 버블이 더 붙었다. 네거티브 옛 지란 클럭이나 신호가 하이에서 로우로 변하는 순간을 의미한다.

 

로직 게이트 사용 예

지금까지 설명한 로직 게이트들로 간단한 응용을 한번 해 보자. 보 통 때는 늘 차를 가지고 다니다가 눈이 오는 날이나 기온이 영하인 눈 온 다음날은 차를 가지고 가지 않는다는 원칙을 세웠다고 가정해 보자. '눈이 온다'를 A라고 하고 '기온이 영하다'를 B라고 하자. 그리 고 '차를 가져가지 않는다'를 Z라고 하면 표 9.10과 같은 표를 얻을 수 있다. 어제 눈이 왔다는 것은 어제의 날씨를 기억하고 있어야 한다는 의미다. 그것은 클럭 한 주기만큼 데이터를 기억하는 것인데, 그러려 면 DF/F 두 개를 직렬로 사용해야 한다. 기억하는 게이트는 D 래치 와 D F/F이 있는데, F/F의 사용이 간단하므로 D F/F을 사용하겠다. 차를 가져가야 할지 말아야 할지는 일단 결정하고 나서 출근해야 한 다. 눈이 그쳤다고 다시 집으로 돌아와 차를 가져가는 일은 없을 테 니까. 그러므로 날씨를 판단하는 근거인 기온이나 눈이 오는지 살피 는 것은 그날 하루 동안 유효해야 하니, A, B에도 DF/F이 필요하다. 그리고 어제 눈이 왔는지를 기억하는 클럭은 주기가 24시간이고 매 일 아침 출근 시각에 한 번씩 0에서 1로 바뀐다고 하자. 24시간에 비교하면 0.1나노초의 딜레이는 없는 것이나 마찬가지이므로 타이밍 다이어그램에서는 눈에 보이지 않는다. 표 9.10에서 보면 A=1인 경우는 다른 조건에 상관없이 Z=1이 된다. Z의 입장에서 보면 A거나 그 외에 어떤 한 경우에 1이 된다. '이거나'에 해당하는 것은 논리합 오어(OR)이다. 일단 2 인풋(input) 오어 게이트가 필요하다. '그 외에 어떤 한 경우'는 무엇인가? 현재의 A 즉, A(n)이 아닌 그 이전의 A, 즉 A(n-1)과 B가 논리곱 AND인 경 우다. B는 현재의 값이니 바로 받을 수 있고, A(n-1)은 어제의 신호 를 기억해야 한다. 그러면 그림 9.41과 같이 된다. CMOS 게이트에 서 앤드는 낸드와 인버터를 이용하여 구현하고, 오어는 노어와 인버 터를 이용하여 그림 9.41과 같이 구현한다. 그림 9.41의 입력 신호를 만들어 보자. 1월 10일부터 기온과 날 씨를 측정했는데, 10일 밤부터 눈이 내려 12일 점심 때까지 내리다 가 그쳤고, 14일 밤에 다시 내리기 시작했다. 기온은 영하였던 10일 밤부터 풀려 영상의 기온이 되었다가 12일 밤부터 13일 저녁까지 다 시 영하의 날씨가 되었다면 그림 9.42의 A, B같이 될 것이다. CK, A, B를 가지고 그림 9.41의 회로를 따라 타이밍 다이어그램 을 그리면 그림 9.42를 완성할 수 있다. 결과를 보자. 10일부터 시작 했으니 10일 당일은 9일의 날씨를 기억하지 못해 판단을 할 수 없고, Z=0인 14일 하루만 차를 가져가는 것으로 나왔다. 이 예문을 두 번 정도 읽어 보고 이해가 되면 아주 직관력이 좋은 것이고, 두 번 보아도 모르겠거든 그냥 지나치기 바란다.

레이아웃과 검증

기계공업이 주요 산업으로 자리 잡고 있는 독일은 자신들의 발전 정도를 자랑하기 위해 시계의 나라로 잘 알려진 스위스에 여자의 긴 머리카락을 길이 방향으로 일곱 갈래를 내서 보내고 의기양양한 미 소를 지으며 답신을 기다리고 있었다. 며칠 후 스위스에서 보내온 소포 꾸러미를 풀러 보니, 자기네가 보낸 일곱 갈래 머리카락의 한 가운데 파이프처럼 구멍이 뚫려 있었다고 한다. 사람의 머리카락은 사람마다 차이가 있으나 직경이 약 100마이 크로미터(0.1밀리미터) 정도 된다. 대장균은 폭이 약 0.5~0.7마이크 로미터, 길이가 약 2~3마이크로미터 정도다. 요즘 상용화된 반도체 공정에서 MOS의 폭은 0.13마이크로미터다. 요즘 나노테크로 언론 에 발표되는 90나노 공정이 상용화되면 MOS 폭이 0.09마이크로미 터가 된다. 사람 머리카락 단면에 수천 개의 MOS를 집적시키고, 대 장균 한 마리의 등 위에 수십 개의 MOS를 집적시키는 요즘에는 위 의 유머가 그 재미의 정도가 덜해져 버렸다. 반도체 설계의 마지막 단계가 레이아웃이고 설계의 최종 산출물 이 레이아웃 DB다. 이 단계에서는 제조 공정 기술에 맞추어 실제 실 리콘 웨이퍼 위에 새겨 넣을 여러 패턴을 그리는 작업을 한다.

디자인에 규칙이 있다

레이아웃(layout)을 아트(art)라 부르는 사람도 있기는 하지만, 레이 아웃은 예쁘게 그리는 것이 아니라 제조 가능하게 그려야 한다. 7장 에서 살펴본 것처럼 제조하는 데는 여러 가지 제약이 있다. MOS를 많이 집적시키겠다고 무조건 작게 그릴 수도 없고, 포토리소그래피 (photolithography) 작업도 가능해야 하며, 전기적으로 원하는 동작을 하기 위한 최소한의 공간을 확보해 주어야 한다. 게다가 사용하는 장비의 오차도 고려하여 수백 개의 디자인 룰(design rule)을 공정 팀 에서 작성하여 설계 팀에 보내 준다. A4 용지로 수십 장에 적힌 물을 가지고 그 물에 어긋나지 않는 범위 내에서 최소한의 면적에 MOS들 을 설계해야 한다. 그 수백 개의 룰 중 몇 개를 그림 10.1과 표 10.1 에 나타냈다. 구체적인 수치는 회사나 공정마다 다르고 각 회사의 비밀사항이기에 여기서 밝히지는 않겠다. 이와 같이 디자인 물은 수백 개가 있다. 그런데 언론에 '0.13마이 크로미터 공정 기술'이라는 대목의 0.13마이크로미터는 디자인 툴을 의미한다. 수백 개가 있다면서 어떻게 하나를 쓰는가? 디자인 룰에 는 두 가지 의미가 있다. 하나는 표 10.1과 같이 모든 항목을 적은 것 이고 또 다른 의미는 그 디자인 물의 포토리소그래피 작업에서 가장 작은 치수(dimension)를 의미한다. 즉 수백 개의 항목 중에 가장 작 은 치수를 디자인 불이라고 한다. 0.13마이크로미터 디자인 툴에서 는 가장 작은 치수가 0.13마이크로미터라는 뜻이고 0.18마이크로미터 디자인 룰에서는 가장 작은 치수가 0.18마이크로미터라는 의미다.

하지만 요즘은 그 의미가 또 조금 바뀌어서 가장 작은 폴리의 폭, 즉 가장 작은 MOS의 길이(length)를 의미한다. 일례로 80년대 후반 2.0마이크로미터 디자인 툴룸의 EEPROM ((Electrically Erasable and Programmable Read Only Memory, 전기적으로 프로그램 및 소거가 가능 한 메모리) 이름에는 read only라는 말이 있으나 실제로는 읽고 쓰기가 모 두 가능하다. 요즘의 플래시 메모리(flash memory)의 전신)의 디자인 룰 에서는 최소 MOS의 길이는 2.0마이크로미터였으나, 실제로는 그보 다 더 작은 항목도 있었다. 하지만 그 디자인 룰은 2.0마이크로미터 디자인 불이라 한다. 정리하면 신문지상에 '0.13마이크로미터 제조 기술(0.13마이크로미터 테크놀로지, 0.13마이크로미터 프로세스)'이라 하 면 그 공정상에 가장 작은 MOS의 길이가 0.13마이크로미터라는 소리다. 그러면 실제 이런 디자인 물을 적용하여 9장에서 설계한 스키메 턱을 어떻게 레이아웃으로 구현하는지 살펴보자.

 

반도체 제대로 이해하기 강구창 지음