본문 바로가기
반도체 study

링오실레이터 ring oscillator 동작 설명 및 측정 방법

by MinervaG 2020. 3. 29.

안녕하세요. 공돌이 입니다.

반도체 공부를 하다 보면 ring oscillator라는 단어를 접할 수 있습니다. 대학교 과목 중에서는 전자회로, 반도체공학, digital circuit과 같은 과목에서 ring oscillator를 만날 수 있습니다. 하지만 해당 회로에 대한 내용에 대해서는 잘 없고, 주기는 어떻게 구하는지 invertor는 몇 개 이어야 한다는 내용이 대부분입니다. 그래서 본 포스팅에서는 ring oscillator가 어떻게 생겼으며, 어떤 상황에 사용이 되는지, 그리고 왜 중요한지 설명을 해 보고자 합니다.

 

a. ring oscillator의 기초가 되는 인버터 (invertor)

인버터는 N-MOSFETP-MOSFET의 조합으로 구성되어 있습니다. 이후 NMOS, PMOS로 표기하겠습니다. 아래 그림이 바로 가장 기본적인 인버터의 모습입니다.

 

Vdd는 항상 1이라고 생각하고, GND는 항상 0이라고 생각을 먼저 합니다. 이때 PMOSgate0이 들어와야 동작을 합니다. Vin0을 걸면 PMOS가 켜져서 VoutVdd 1과 같은 level이 됩니다. Vin0을 넣었더니 Vout1이 되는 결과를 얻었습니다. 다음으로 Vin1을 넣어주게 됩니다.그러면 이번에는 PMOS는 꺼지게 되고,아래 NMOS가 켜지게 됩니다. VoutGND랑 같은 level이 되어 0이 됩니다.에 1을 넣었더니 Vout에서 0을 얻게 된 것입니다. 이렇게 PMOSNMOS를 연결하여 Vin1일 때 Vout0이 나오고, Vin0일 때 Vout1이 나오는 소자를 우리는 invertor라고 부릅니다.

 

그림 상으로는 PMOSNMOS가 동일하게 보이지만 실제로는 소자의 크기가 다릅니다. PMOShole에 의한 동작으로 NMOS보다 mobility가 매우 작습니다. 따라서 같은 gate 전압을 넣어주더라도 흐르는 전류의 양이 다르기 때문에 NMOS와 타이밍이 맞지 않게 됩니다. 따라서 PMOSNMOS와 유사한 전류가 흐를 수 있도록 PMOS에 다양한 방법을 사용하게 됩니다. PMOSsize를 다르게 하거나, intel에서 사용하는 strain 기술을 이용하여 PMOS의 전류가 잘 흐르게 하는 등의 기술을 적용합니다.

 

b. ring oscillator는 왜 필요한가

invertor는 입력에 따른 출력이 반전이 되는 소자입니다. 만약 이 반전이 되는 속도가 알고 싶다면 어떻게 측정을 해야 할까요? Vin1을 넣으면 바로 0이 되어 버리기 때문에 측정을 할 수가 없습니다. 너무 나도 빠른 속도 때문입니다. 이를 측정하기 위해서는 이 invertor을 여러 개 연결하여 01이 반복시켜 우리가 측정할 수 있는 속도까지 낮추면 됩니다. 바로 아래 그림이 3개의 invertor를 연결한 예시입니다.

 

인버터의 Vout과 그다음 invertorVin과 연결을 하였습니다. 즉 최초 Vin1을 넣으면 마지막 Vout0이 나오게 됩니다. 이처럼 invertor를 연결하면 1, 0, 1, 0, 1, 0으로 발진하는 ring oscillator를 만들 수 있게 됩니다. 그리고 우리가 회로에서 다루는 clock의 기초가 바로 이 ring oscillator입니다. 1이 들어가면 0이 나와야 하기 때문에 짝수개를 연결하면 안 됩니다.반드시 홀수 또는 소수 개로 이루어져야 합니다. 어떤 자료에서는 홀수, 어떤 자료에서는 소수로 표기를 하고 있어서 이 부분은 조금 더 명확히 조사 후 공유하겠습니다.

이렇게 만들어진 clock은 system 간 data를 공유하고 소통하기 위한 기초로 사용됩니다. 즉 빠른 동작이 필요한 회로와 느리게 동작하는 회로 그리고 서로 다른 system 간 data를 주고받기 위해 서로 sync 하는 작업등 목적에 맞는 속도 구현이 필요하게 됩니다. 따라서 개발자가 필요로 하는 회로와 목적에 맞는 속도 구현을 위해 invertor의 개수를 다르게 하거나 MOSFET의 동작 특성을 변화시키고 있습니다.또 속도를 낮추기 위해서 RC=delay라는 수식으로부터 저항과 cap을 이용하여 ring oscillator의 속도를 낮출 수도 있습니다.

 

c. ring oscillator 주파수 계산 방법

주파수 frequency 계산 방법은 간단합니다. 특정 시간에 대한 주기를 갖고 있고, invertor 개수만큼 느려져있는 소자 이기 때문에 수식은 다음과 같이 정의됩니다. t [sec]delay입니다. n [ea]invertor 개수입니다.

Frequency=1/(2 x n x t) [Hz]

이렇게 측정된 frequency를 이용하면 delay값을 확인할 수 있습니다. 여기서 delay는 보통 두 가지 요소가 있습니다. Delay= gh + p 로 나타나며 glogic effort, helectrical effort(Cout/Cin), pparasitic delay입니다. 여기서 g는 전류를 전달하는 gate의 상대적 능력으로 invertor에 대해서는 1이 적용됩니다. CFan out으로 불리기도 합니다. 따라서 사용하는 invertor의 구조가 invertor가 아닌 NAND, NOR, XOR, 등 다양한 구조에 따라 g, h, p값이 달라질 수 있습니다.

 

d. ring oscillator의 측정 방법

ring oscillator는 측정을 하기 위해서 전압을 인가할 수 있는 power와 오실로스코프가 있으면 측정이 가능합니다. Vdd 1을 주기 위해 파워로 1을 인가합니다. 그리고 Vin에도 동일하게 파워를 인가 후 GND를 연결합니다. 이후 오실로스코프를 Vout에 연결함에 따라 ring oscillator을 측정할 수 있게 됩니다. 엄청난 속도로 발진하기 때문에 오실로스코프의 측정 가능 주파수 대역을 반드시 확인해야 합니다. 만약 측정 범위를 벗어날 경우 측정이 안되기 때문입니다. 그럴 경우 더 많은 invertor 개수를 추가하거나 더 좋은 고가의 측정 장비가 필요하게 됩니다. 특정 제품명을 언급하면 광고가 될 수 있어서 적지 않겠습니다.

 

여기까지 ring oscillator에 대해 알아보았습니다. 정말 간략하게 내용을 정리하였습니다. 도움이 되면 좋겠습니다.

감사합니다.

반응형

댓글


TOP