IC레이아웃

저항 matching technique

쥴리정 2024. 7. 8. 22:54

 <이 포스팅을 읽기 전에 https://julielayout.tistory.com/17  을 먼저 읽고 오시면 도움이 됩니다. >

 

 앞선 포스팅에서 몇 가지 종류의 저항 중 아날로그 회로에서 주로 사용하는 저항은 poly 저항이라고 하였다.

그럼 이번 포스팅에서는 matching을 위한 저항 레이아웃에 대하여 살펴보기로 한다.

 


저항 모양에 따른 mismatching

 

레이아웃에서 저항값을 계산할 때는 의미있는 저항성분이 있는 지점으로부터 계산하게 된다. 

(예 : metal이나 silicide, contact 과 poly나 active가 만나는 edge)

이 때 저항의 레이아웃이 직사각형 모양이라면 간단히 width, length로 계산 할 수 있지만, 아래 그림과 같은 모양의 저항(이런 저항은 구불구불한 모양을 가지기 때문에 snaked resistor 또는 serpentine resistor 라고 부른다) 은 꺽어지는 코너에서 전류밀도가 일정하지 않기 때문에 코너에서의 저항값이 정확하지 않게 된다. 

 

snaked resistor

 

그래서 matching이 중요한 저항으로 이런 모양의 저항을 사용하면 안된다.

Snaked 저항의 length는 보통 90도 각도로 꺽여 있을 때는 그림의 점선에 해당하는  center 지점을 기준으로 length를 계산하는데, 실제 전류는 구부러진 안쪽의 밀도가 더 높으므로 약간의 오차가 존재하게 된다. 이를 보완하기 위해 두번째, 세번째 그림과 같이 코너에서 레이아웃 모양을 꺽어주기도 하지만, 최근 공정들은 45도로 꺽는 것이 금지된 공정이 대부분이므로 개념만 이해하면 될 것 같다.

 

Corner correction of snakeed resistor

 

두번째로 조심하여야 할 저항 모양은 아래와 같은 형태의 dog-bone 형태의 저항이다. Dog-bone이라는 이름은 레이아웃이 생긴 모양 그대로 따온 것.

 

Dog-bone resistor contact

 

이것은 저항의 width가 contact 레이아웃을 위한 최소 사이즈보다 작아서 생긴 모양인데, 이 경우는 양 쪽 contact 부분의 모양이 튀어나와 있기 때문에 저항값의 변화가 발생하게 되므로 아날로그 회로에서 이런 모양의 저항 또한 사용하면 안된다. 이 때는 저항의 width를 contact 하나를 그릴 수 있는 디자인 룰 만큼 키워 준 후 원하는 저항값이 되도록 length 또한 키워서 사용하면 된다.

회로 설계자가 설계를 할 때는 저항 레이아웃을 미리 볼 수 없기 때문에 간혹 이렇게 레이아웃 될 수 밖에 없는 width로 회로를 전달해 주기도 하는데, 레이아웃 엔지니어가 이 모양으로 레이아웃되는 것을 확인하면 반드시 회로 설계자에게 피드백을 주어서 수정하도록 한다.


Etching 과 저항값과의 관계

 

저항값을 matching 되도록 레이아웃 함에 있어서 가장 고려해야 할 사항은 에칭 공정이다.

아날로그 회로에서는 거의 poly 저항을 사용하게 되는데, poly를 형성하기 위한 에칭 공정에서는 항상 over 에칭이 되기 때문에 poly 패턴이 실제 레이아웃보다는 약간 작아지게 된다.

에칭 진행 시에는 필요에 따라 under 에칭이나 over 에칭이 진행되는데, 불순물을 완전하게 제거하기 위함 등의 여러가지 이유로 유리한 점이 많은 over 에칭이 대부분 공정에서 적용이 된다. 때문에 poly 저항은 항상 over 에칭이라고 생각하면 된다.

그림 1) over-etch rate

 

여기에 더해서 에칭되는 영역의 크기에 따라 etch-rate이 달라지는 점도 고려하여야 한다.

공정 진행 중에는 에칭으로 없어지는 부분의 영역이 넓을수록 에칭용액에 노출이 더 잘되는 반면, 에칭으로 없어지는 영역이 좁을수록 에칭용액에 덜 노출이 되는데, 아래 그림을 보면 쉽게 이해할 수 있을 것이다.

 

그림 2) Etching depens on boundry conditions

 

이 over 에칭이 저항값에 어떠한 영향을 주게 되는지 각각 다른 width를 가지는 아래 두 저항을 예를 들어서 계산을 해 보자.

위와 같이 동일한 10um의 length에, 각 4um와 2um의 length를 가지는 두 저항이 사방으로 0.1um씩 over 에칭이 된다고 가정했을 때 실제 저항값을 계산해 보면,

R2는 R1의 두 배의 저항값을 갖도록 설계되었지만 etch-rate를 고려하였더니 2.11배의 저항값을 가지게 되어 약 5.6%의 매칭 에러가 발생하게 됨을 알 수 있다.

즉, 이 계산을 통하여 매칭되어야 하는 저항은 에칭으로 인한 영향을 똑같이 받을 수 있도록 사이즈를 동일하게 사용하여야 한다는 점을 알 수 있다.

 

또한 위의 그림 2)에서 볼 수 있듯이 , 저항이 모여 있는 경우에는 모여 있는 저항의 안쪽보다 가장 바깥쪽 면이 에칭용액에 더 많이 노출이 되어 over 에칭이 더 많이 된다는 것을 알 수 있다.

때문에 매칭이 중요한 저항 어레이의 양 쪽 끝에는 반드시 더미 저항을 추가해 주어야 한다.

이 때 저항의 length는 contact의 edge부터 계산이 되기 때문에 A쪽은 굳이 더미 저항을 추가할 필요는 없지만 width에 영향을 받는 B쪽에는 반드시 더미 저항을 그려주어야 한다.

 

 

가끔 회로 설계자가 사방으로 더미 저항을 넣어 달라고 요청하기도 하는데, 저항은 길쭉한 모양이기 때문에 A 쪽에 동일한 사이즈의 더미저항을 넣게 되면 레이아웃 사이즈가 지나치게 커지므로 경쟁력이 없어지게 된다. 그러니 이 때는 아래 그림과 같이 minimum 사이즈로 추가해 주도록 하자.

현업에서는 회로 설계자가 간단하게 "저항 양 쪽에 더미 저항을 넣어주세요!" 이렇게만 말을 하므로 만약 이런 내용을 모른다면 아래 왼쪽 그림처럼 엉뚱한 곳에 더미를 넣는 경우도 있으니 나중에 혼나고 싶으면 이렇게 그리면 된다.

하지만 이제는 저항 더미를 넣어야 하는 이유를 알았으므로 오른쪽 그림처럼 레이아웃 하면 된다.

더미저항의 잘못된 레이아웃(왼쪽) vs 올바른 레이아웃(오른쪽)


저항의 metal routing

저항 양단을 메탈로 라우팅 하기 위해서 고려해야 할 사항은 메탈저항과 열전효과가 있다.

저항값을 계산할 때는 메탈의 저항 성분을 고려하지 않지만, 저항값이 상대적으로 아주 작아서 그렇지 엄밀하게는 메탈도 저항값을 가지고 있다. 때문에 post simulation 할 때는 메탈 저항성분도 반영되므로 메탈 라우팅 길이는 최대한 짧게 하는 것이 좋다. 

그런데 메탈 저항값보다 더 중요한 것이 열전효과에 의한 저항 양단의 전위차 발생이다.

열전효과란, 길다란 도체의 한 쪽 온도가 올라가 다른 쪽보다 높아지면 에너지를 얻은 전자 또는 정공이 온도가 낮은 쪽으로 확산하여 전위차가 발생되는 현상으로, 다른 말로 제벡,펠티어,또는 톰슨 효과라고 한다.

이와 같이 도체 양단간의 온도차에 의하여 발생되는 전압은 다음과 같은 식으로 표현이 가능하다.

저항으로 주로 사용되는 poly의 제벡계수는 아래 표와 같다.

meterial 제벡계수
poly-Si 120~190uV/K
poly-SiGe 136~144uV/K

 

위의 수식과 poly의 제벡계수를 기준으로 계산하였을 때 poly 저항 양 단의 온도차가 1도가 될 경우 0.1mV이상의 의도치 않은 전위차가 발생할 수 있다는 것을 알 수 있는데, 이는 아날로그 회로에서는 큰 의미를 갖는 값이 된다.

아래 두 경우의 저항 레이아웃 예를 살펴보자.

왼쪽과 같이 메탈라우팅을 하게 되면 각각의 저항에서 발생되는 Vs가 모두 더해져서 in/out 사이에 4Vs의 전위차가 기생성분으로 더해지게 된다. 하지만 오른쪽과 같이 메탈 라우팅을 하게 되면 신호의 방향이 순방향-역방향을 반복하게 되므로 제벡전압은 모두 상쇄되어 없어지게 되므로, 열전효과에 의한 전압변화를 방지할 수 있다.

결론적으로 메탈저항으로 인한 기생성분과 열전효과로 인한 전압변화를 모두 예방하기 위해서는 위의 그림 오른쪽과 같이 메탈 라우팅을 하여야 하는데, 특히 열전효과는 post-simulation으로도 확인 할 수 없는 항목이기에 더욱 주의를 기울여야 하겠다.


서로 다른 크기의 저항 레이아웃

위에서 설명한 에칭에 의한 저항값의 영향 때문에 매칭을 위한 저항 레이아웃의 기본은 unit size의 저항을 여러 개 사용하는 것이 된다. 예를 들어서 각각 1K, 2K, 4K 저항을 레이아웃 할 때는 크기가 다른 세 개의 저항을 그리는 것 보다는 1K unit 저항을 사용하여 직렬 연결로 2K, 4K를 만들거나 2K unit 저항으로 병렬연결하여 1K, 직렬 연결하여 4K를 만드는 식으로 레이아웃 하는 것이다.

하지만 저항을 이렇게 똑떨어지는 unit size로 구현할 수 없는 경우도 많다. 이런 경우에는 아래 그림과 같이 빈 공간에 더미 저항을 채워 넣어 에칭으로 인한 영향을 최대한 줄여 줄 수 있도록 레이아웃 해 주면 된다.


저항 string

아날로그 회로 중에서도 특히 저항 string의 매칭은 굉장히 중요하다. 특히 바이어스 회로나 컨버터 회로에서 이런 저항 string을 많이 볼 수 있는데, 이 회로의 역할은 양 단의 전압을 저항 비율만큼 나누어서 저항 중간의 필요한 전압값을 회로에 연결하여 사용하려는 데 있다. 때문에 각 저항 사이의 전앖은 아래 그림의 왼쪽 그래프처럼 저항값에 정확하게 비례하여 출력되어야 한다.

하지만 여러 mismatch 요인으로 인해 각 저항값이 매칭되지 않는다면 어떤 결과가 될까?

아래 그림의 저항에서 R1쪽으로 갈수록 저항값이 커지는 mismatch 요인이 있다면 가운데 그림과 같이 , 그 반대의 경우에는 오른쪽 그림과 같은 그래프 형태로 바뀔 것이다.

 

보통 저항 string의 출력은 string의 가운데 부분에서 연결하여 사용하기 때문에 저항 string의 양 끝 부분이 동일한 환경에 있도록 레이아웃 해 주어야 가운데 부분의 출력이 어느 정도 정확하게 나올 수 있다. 

그래서 이렇게 중요한 저항 레이아웃 시에는 회로 설계자들이 "매칭이 잘 되도록 저항을 섞어 주세요" 라고 말을 하곤 한다.


"저항 섞어서 레이아웃 해 주세요" 의 예

초보자들은 저항을 어떻게 섞는겨? 하고 당황 할 수 있다. Interdigitated 배치도 알고는 있지만 어떻게 적용하는지 모를 때에는 쉽게 저항 string의 양 쪽 끝에 있는 두 개의 저항을 같은 위치로 모아 놓으면 된다. 그리고 (저항은 길쭉하니까) interdigitated로 주어진 레이아웃 공간에 맞도록 아래와 같이 쭈욱 배치하는데, 이 때 주의할 점은 위에서 설명한 metal 저항값 및 열전효과를 고려하여 배치하면 되고, 두 줄의 저항이 양 끝에서 라우팅 될 때 메탈 저항값도 같아지도록 신경 써 주면 더욱 좋겠다. 

마지막으로 저항 양 쪽에는 반드시 더미저항으로 채워 주고, 저항 어레이에서 남는 공간이 생기면 그 공간도 더미저항으로 채워준다.

A와 B 사이 16개의 string resistor 레이아웃 예

 

오늘은 아날로그 저항의 매칭을 위한 레이아웃에 대해 알아보았다.

하지만 막상 복잡한 회로를 받는다면 어떤 저항을 매칭 시켜야 하는 것인지 아닌지 모를 수도 있으므로 혼자 판단하기 어렵다면 회로 설계자에제 중요한 저항이 어떤 것인지 사전에 확인하는 습관을 들이는 것이 좋겠다.