[RTL] Multi-Vt와 doping: 같은 gate인데 속도가 다른 이유

RTL 엔지니어가 합성(Synthesis) 결과를 분석하다 보면, 똑같은 AND2 게이트인데 이름이 미묘하게 다른 것을 발견하게 됩니다.

  • AND2_X1_HVT
  • AND2_X1_RVT (or SVT)
  • AND2_X1_LVT

기능(Function)은 똑같은데 왜 이렇게 종류를 나눠놨을까요? 단순히 “빠른 놈, 느린 놈”으로만 알고 있었다면, 이제는 “공정(Process)에 이들을 어떻게 만드는지” 알아야 할 때입니다. 이것이 바로 Power-Performance 최적화의 시작점이기 때문입니다.

이번 글에서는 Multi-Vt(다중 문턱 전압) 기술이 공정적으로 어떻게 구현되는지(Doping), 그리고 이것이 왜 RTL 엔지니어의 골칫거리인 Leakage Power(누설 전력)와 연결되는지 알아봅시다.

1. Multi-Vt란 무엇인가?

트랜지스터가 스위치 역할을 하기 위해 켜지는 시점의 전압을 Threshold Voltage(Vth)라고 합니다. 최신 공정 라이브러리는 하나의 공정 노드(예: 5nm) 안에서도 Vth가 다른 여러 버전의 표준 셀(Standard Cell)을 제공합니다.

  • HVT (High Vth): 문턱이 높음. 켜지기 힘듦 (느림). 대신 꺼져 있을 때 전기가 덜 샘 (Low Leakage).
  • RVT (Regular/Standard Vth): 표준.
  • LVT (Low Vth): 문턱이 낮음. 쉽게 켜짐 (빠름). 대신 꺼져 있어도 전기가 샘 (High Leakage).

RTL engineer는 이 cell들을 적재적소에 섞어 씁니다.

2. 공정 엔지니어의 역할: 도핑(Doping) 농도 조절

그렇다면 공정 엔지니어는 어떻게 똑같은 모양의 트랜지스터를 가지고 Vth만 바꿀까요? 게이트의 두께를 다르게 할까요?

가장 기본적이고 저렴한 방법은 바로 채널(Channel) 영역의 불순물 농도(Doping Concentration)를 조절하는 것입니다.

원리: 채널 도핑 (Channel Doping)

트랜지스터가 켜지려면 게이트 아래 채널 영역에 전자(NMOS 기준)들이 모여서 길을 만들어야 합니다.

Doing과 Vth 관계
Doing과 Vth 관계
  • HVT를 만드는 법:
    • 채널 영역에 P-type Dopant(Boron 등)를 더 많이 주입(Heavy Doping)합니다.
    • 전자가 지나가려 할 때 방해꾼이 많으니, 게이트에 더 강한 전압을 걸어줘야 겨우 길이 열립니다. -> Vth 상승
  • LVT를 만드는 법:
    • 채널 영역의 도핑 농도를 낮게(Light Doping) 가져갑니다.
    • 방해꾼이 적으니 적은 전압만 걸어도 금방 길이 열립니다. -> Vth 하강

💡 공정 TMI:

이를 위해 공정 중 ‘Ion Implantation(이온 주입)’ 단계에서 마스크를 여러 장 사용하여, HVT 영역에는 이온을 더 쏘고, LVT 영역에는 덜 쏘는 방식을 사용합니다.

3. RTL 엔지니어의 딜레마: Speed vs Leakage

“그럼 그냥 무조건 빠른 LVT만 쓰면 되는 거 아냐?”라고 생각할 수 있습니다. 하지만 여기서 물리 법칙이 개입합니다.

1) 속도 (Performance) ∝ (Vdd – Vth)

트랜지스터를 수도꼭지에 비유해 봅시다.

  • LVT (낮은 턱): 수도꼭지가 헐거워서 살짝만 돌려도 물(전류, I)이 콸콸 쏟아집니다. -> 동작 속도가 빠름.

2) 누설 전류 (Leakage) ∝ 10-Vth

문제는 수도꼭지를 잠갔을 때(Off 상태)입니다.

  • LVT (헐거운 수도꼭지): 잠가도 물방울이 뚝뚝 떨어집니다. 이를 Sub-threshold Leakage라고 합니다.
  • HVT (뻑뻑한 수도꼭지): 꽉 잠겨서 물이 거의 안 샙니다.

충격적인 사실은, Vth가 조금만 낮아져도 누설 전류는 Exponential로 폭증한다는 점입니다.

LVT는 HVT보다 속도는 20~30% 빠르지만, 누설 전류는 10배~100배 더 많을 수 있습니다. 칩 전체를 LVT로 도배하면, 아무것도 안 하고 가만히 있어도 배터리가 녹아내려 발열로 칩이 죽습니다.

4. 실전 가이드: 합성 툴은 어떻게 행동하는가?

RTL 엔지니어가 작성한 Verilog 코드를 합성 툴(Design Compiler 등)이 변환할 때, 이 Multi-Vt 세포들을 전략적으로 배치합니다.

  1. 초기 상태: 일단 전력을 아끼기 위해 대부분 HVT로 매핑합니다.
  2. Timing Analysis: 타이밍을 분석해 보니, 특정 경로(Critical Path)가 너무 느려서 클럭 주기를 못 맞춥니다 (Setup Violation).
  3. 최적화 (Optimization): 타이밍이 급한 그 경로의 셀들만 콕 집어서 LVT로 교체합니다.
  4. 결과: 칩의 90%는 HVT/RVT로 구성되어 전력을 아끼고, 정말 급한 10%만 LVT를 써서 성능을 맞춥니다.

RTL 엔지니어의 역할

여러분이 if-else를 깊게 쌓거나 복잡한 연산을 한 클럭에 몰아넣으면(Logic Depth가 깊으면), 합성 툴은 타이밍을 맞추기 위해 LVT를 대량 투입하게 됩니다.

  • 결과: Leakage 폭발
  • 해결: RTL 구조를 개선(Pipelining)하여 Logic Depth를 줄이면, 툴이 다시 HVT를 사용할 여유가 생겨 저전력 칩이 됩니다.

5. 요약 및 결론

  1. Multi-Vt는 트랜지스터의 채널 도핑 농도를 조절하여 만듭니다.
  2. LVT는 빠르지만, 꺼져 있을 때 전기가 줄줄 새는(Leakage) 수도꼭지와 같습니다.
  3. HVT는 느리지만, 전기를 꽉 잡아주는 훌륭한 절전형 소자입니다.
  4. 좋은 RTL 설계(적절한 Pipelining)는 합성 툴이 HVT를 많이 쓸 수 있게 도와주어, 결국 Cool Chip을 만듭니다.

이제 합성 리포트에서 LVT가 도배되어 있다면 단순히 “빠르겠네”가 아니라, “도핑 농도가 낮아서 전류가 새고 있겠구나. 내 코드가 타이밍 맞추기 빡빡한가 보다”라고 공정 레벨까지 꿰뚫어 보는 엔지니어가 되시길 바랍니다.

참고: wikipedia

유사한 게시물