금일은 Digitally Controlled Oscillator가 무엇인지에 대해 포스팅하겠습니다. 회로적으로 매우 중요한 요소지만, 저는 Process 및 Device Engineer이기 때문에 해당 회로가 어떤 식으로 작동하는지와 수율에 어떻게 영향을 미치는지에 대해 중점적으로 정리하려고 합니다. 제가 참고한 논문은 아래와 같습니다.
A Low-Power Digitally Controlled Oscillator for All Digital Phase-Locked Loops
1. Oscillator란 ?
오실레이터는 반도체 칩 내부에서 시계 역할을 수행하는 핵심 회로입니다. 모든 디지털 회로는 정확한 타이밍에 맞춰 동작해야 하며, 이를 위해 내부에 주기적인 신호(클럭)를 생성하는 오실레이터가 필수적으로 필요합니다. 이러한 클럭 신호는 데이터를 읽고 쓰거나 연산 순서를 맞추는 등 전반적인 시스템의 정확성을 결정합니다.
기존 오실레이터는 주로 아날로그 방식으로 설계되었습니다. 그러나 아날로그 방식은 공정, 전압, 온도에 매우 민감하며, 노이즈나 변동에 의해 쉽게 영향을 받습니다. 이러한 문제점을 해결하기 위해 등장한 것이 디지털 제어 오실레이터(DCO, Digitally Controlled Oscillator)입니다. 디지털 방식 오실레이터는 디지털 신호를 이용해 주파수를 제어하며, 아날로그 방식보다 Noise에 강하고 설계 유연성이 크며, 공정 변화에도 잘 대응할 수 있는 장점이 있습니다.
오실레이터는 특정한 주기(또는 주파수)의 파형을 만들어내는 역할을 합니다. 그러나 칩마다 동작 속도가 다를 수 있는데, 어떤 칩은 빠르고 어떤 칩은 느릴 수 있습니다. 이를 흔히 Device Corner라고 하며, 반도체 칩마다 발생하는 특성의 산포를 의미합니다. 이러한 산포로 인해 각 칩마다 동일한 주기의 파형을 얻기 위해서는 오실레이터의 주기를 개별적으로 조절할 필요가 있습니다. 이 과정을 Trimming이라고 합니다. 디지털 오실레이터는 각 칩에 맞게 주기를 조절해 동일한 파형을 만들어내도록 설계됩니다.
2. Digitally Controlled Oscillator 종류
디지털 오실레이터를 이해하기 위해 먼저 주기를 조절한다는 것이 어떤 의미인지 살펴보겠습니다. 일반적으로 지연시간은 캐패시턴스가 클수록, 전압이 높을수록, 전류가 작을수록 증가합니다. 주기를 늘리려면 지연시간을 증가시키면 되고, 전압은 보통 Vdd로 고정되어 있기 때문에 주기를 늘리기 위해서는 회로 내 캐패시턴스를 키우거나 전류를 줄이는 방법을 사용합니다. 따라서 디지털 오실레이터도 크게 두 가지 방식으로 나눌 수 있습니다. ① 하나는 전류를 제어해서 주기를 맞추는 방식이고 ② 다른 하나는 캐패시턴스를 조절해서 주기를 맞추는 방식입니다.
자세한 설명을 위해 캐패시턴스를 조절하여 주기를 맞추는 디지털 오실레이터를 예로 들어보겠습니다. 이 방식에서는 Inverter에 스위칭 트랜지스터(Switching Tr)와 MOS 캐패시터(MOSCAP)가 함께 연결되어 있습니다. 스위칭 트랜지스터에는 0 또는 1의 디지털 신호가 입력되며, 이 신호에 따라 MOSCAP이 회로에 연결되거나 분리됩니다. 그림에 예시로 제시된 오실레이터는 총 3개의 스위칭 트랜지스터로 제어되며, 이에 따라 3bits의 Trimming code를 갖습니다. 이 코드를 조합해 여러 단계로 캐패시턴스를 조절할 수 있어 칩마다 다른 특성을 보정하고, 원하는 주기의 파형을 정확하게 만들어낼 수 있습니다.
먼저 Trimming Code가 (000) 일 경우, Switching Tr이 OFF 상태이기 때문에 MOSCAP과 회로는 연결되지 않습니다. 하지만 Trimming Code가 (001) 일 경우, 하나의 Switching Tr이 On 상태이기 때문에 MOSCAP과 연결되고 오실레이터의 주기가 증가하게 됩니다. Trimming Code를 계속 증가시키면 주기는 계속해서 증가하고 (111) 일 때 가장 큰 주기를 가지는 오실레이터를 만들어낼 수 있습니다.
3. Trimming Range
Trimming Code 값을 점점 증가시키면 오실레이터의 주기는 점점 길어집니다. 이렇게 해서 각 칩이 목표로 하는 주기를 정확히 맞출 수 있는 Trimming Code를 찾으면, 그 값을 비휘발성 메모리나 eFuse에 저장합니다. 저장된 Trimming Code 덕분에 해당 칩은 이후에도 항상 동일한 주기의 파형을 만들어낼 수 있습니다. 따라서 오실레이터를 설계할 때는 Trimming Range를 충분히 넓게 확보해야 합니다. 그래야 어떤 칩이든 주기의 편차를 보정하고 원하는 주기의 파형을 안정적으로 만들어낼 수 있습니다.
결론 및 의견
Oscillator Trimming 관련 수율 항목에서 Fail이 발생하는 주요 원인 중 하나는 Trimming Range가 충분히 넓지 않아, 특정 주기를 맞출 수 있는 Trimming Code가 존재하지 않는 경우입니다. 따라서 설계 단계에서 각 Device Corner(FF, SS 등)별로 Trimming Range가 충분한지 꼼꼼하게 확인하는 과정이 필요합니다.
만약 이를 제대로 검증하지 않거나 Trimming Range를 너무 짧게 설계하면, 칩마다 발생하는 산포를 보정하지 못해 문제가 생깁니다. 예를 들어 FF Corner의 경우 주기가 지나치게 짧아 문제가 될 수 있고, SS Corner의 경우 주기가 너무 길어 Fail이 발생할 수 있습니다.
이러한 문제가 발생하면 기본적으로 회로를 수정하는 Revision 작업이 필요합니다. 다만 설계 수정이 어려운 경우에는 FF나 SS Corner가 나타나지 않도록 Vt 산포를 개선하거나, 소자의 Target(TT)을 마진이 더 넓은 방향으로 이동시키는 방식으로 대응할 수 있습니다.
'논문 Review > 설계' 카테고리의 다른 글
[논문 Review] PDN 개선을 위한 On-Chip Decoupling Capacitor (0) | 2025.03.30 |
---|---|
[논문 Review] CMOS 소비 전력 구분 및 특징 (0) | 2025.02.23 |
[논문 Review] 아날로그 회로에서의 Deep N Well (0) | 2025.01.27 |