Amp 를 설계한다거나 혹은 Comparator 를 설계하게 되면 꼭 돌려야 하는 simulation 중 하나가 바로 monte carlo simulation 입니다. 일반적인 digital logic 설계 시에는 안 돌려도 문제가 발생하지 않을 가능성이 높지만, Amp 와 Comparator에서 monte-carlo simulation 을 돌리지 않겠다는 것은 설계한 회로에서 발생할 수 있는 offset voltage, mismatch 등을 고려하지 않고 운에 맡기겠다!! 라는 뜻이니까요.
먼저 Monte carlo simulation 에 대한 간단한 정의에 대해 알아보겠습니다.
Monte-carlo simulation 은 불확실한 event 에 대해 나올 수 있는 결과를 알아보는 수학적인 테크닉입니다. 우리가 회로를 설계할 때 supply voltage 는 1V, mosfet 의 width와 length 는 1um/0.2um, mosfet의 threshold voltage는 0.4V 등 여러가지 변수를 고정해놓고 시뮬레이션을 합니다. 하지만 실제 칩에서는 특정 포인트에서는 supply voltage가 0.98V일 수도 있으며, mosfet은 photo 가 잘못되어 1.1um/0.22um 일 수도 있고, doping 또한 다르게 되어 threshold voltage 가 0.39V 일 수도 있습니다. 우리는 이런 여러 변수가 변할 수 있는 범위 내에서도 회로가 동작하도록 설계해야하죠.
이러한 여러 변수들의 변동 가능성을 모두 고려해 돌린 시뮬레이션이 바로 monte-carlo simulation 입니다. 위에서 보이는 것처럼 중앙값인 4.5V 근처가 우리가 실제로 회로 설계할 때 넣고 돌린 값이라고 하면, 여러 변수들을 고려했을 때 4V~5.5V 까지 변할 수도 있으므로 이 범위 내에서 동작하도록 하는거죠. monte-carlo simulation 결과로 나온 histogram 은 서로 연관이 없는 변수라는 전제 하에 가우시안 분포를 나타내게 됩니다. 즉 3-sigma 안에 표본이 위치할 확률이 99.7 % 라는 거죠. 3시그마 안에 모두 동작하도록 설계한다면 99.7% 확률로 회로는 동작할 것입니다.(다른 부분에서 문제가 없다는 전제 시에)
그렇기 때문에 monte-carlo simulation 을 통해 어디까지 margin 을 두고 설계해야하는지, 내가 설계하는 amp 나 comparator의 offset voltage는 얼마나 될지 등을 미리 알아야 calibration 회로를 cover range 를 설정할 수 있겠죠. Monte-carlo simulation 을 돌리는 방법은 어떤 tool 을 쓰는지에 따라 다르니 manual 을 참고하면 됩니다.
그런데 이 monte-carlo simulation 을 돌릴 때 보통 어느 변수까지를 고려할 지에 대해 선택하게 됩니다. 보통 local mismatch, Global mismatch이죠. 해당 단어들이 의미하는 것에 대해 좀 더 자세히 다뤄보겠습니다.
Local mismatch(Variation)는 일반적으로 칩 내에서 locally 발생하는 variation 입니다. (Within chip)칩이 1mm x 1mm 크기라고 가정해봅시다. 우리가 실제로 설계하는 블락 사이즈는 사실 엄청 작죠. 대충 50um x 50um 라고 해보겠습니다. 실제 chip 이 만들어질 때 여러 공정을 거치게 됩니다. 여기서 장비는 정확하지 않기 때문에 여러가지 크고 작은 오차를 만들어내죠. 이 때 한 개의 블락인 50um x 50um 내에서 발생하는 variation 의 경우에는 MOSFET의 W/L mismatch 가 있을 수 있습니다. 우리가 실제로 설계한 width, length 가 그대로 chip 으로 찍어져 나올 수 있겠지만, 작게는 1%에서 크게는 5~10%의 mismatch 가 생길 수 있죠. 이러한 Variation 이 바로 local mismatch 에 포함됩니다.
Schematic 에서는 똑같이 그린 W/L = 2/0.1 인 두 mosfet이 있습니다. 여기서 local mismatch 를 적용하게 된다면 A 는 운이 좋아 우리가 의도한 2/0.1 을 그대로 유지할 겁니다. 하지만 운이 없는 우리의 B mosfet은 2.1/0.1 로 Width 가 의도한 것보다 0.1 크게 나올 수 있습니다.
또한 우리가 설계할 시에는 보통 tt corner 로 놓고 설계하게 되는데 Local mismatch 에서도 corner 가 변할 수 있습니다. 이번에도 A, B mosfet 을 예로 들어보겠습니다. Schematic 으로 설계할 때 tt corner 로 설계한 두 mosfet이 있습니다. 여기에 local mismatch 를 적용하게 된다면 A,B mosfet 둘 다 corner 가 변경될 수 있습니다. 아래에서 보이는 것처럼 A 와 B 둘다 ss corner 로 변하게 되는거죠. 여기서 중요한 점이 local mismatch 에서는 mosfet이 모두 똑같은 corner 로 변하게 된다는 점입니다. A,B 둘다 ff,ff 가 될 수도 있지만 ss,ff는 될 수 없죠.
다음으로 Global mismatch(Variation)는 칩 내에서 뿐만이 아니 Wafer 내, 더 크게는 Wafer-to-Wafer 로 생길 수 있는 variation 을 의미합니다. 따라서 local mismatch 를 적용했을 때와는 다른 변수들이 작용하게 되죠. 하나의 예를 살펴보겠습니다.
아까와 똑같이 tt corner 로 설계한 A mosfet 과 B mosfet 2개가 붙어 있습니다. 이번엔 global variation 을 넣고 시뮬레이션을 돌렸더니 A mosfet은 ss corner 로 동작하고 B mosfet 은 tt corner 로 동작하게 됩니다. Global variation 을 넣은 순간 wafer-to-wafer 라고 가정하고 붙어있더라도 서로 다른 proccess corner 가 적용된 것이죠. 그렇기 때문에 아까 local variation 에서는 보지 못했던 mosfet의 corner 별 차이에 의한 결과도 볼 수 있습니다.
어떤 회로를 설계하는 지에 따라서 local mismatch 만 적용할지 혹은 local+global mismatch를 둘 다 적용할지는 설계자에게 달려있습니다. 다만 Local+global mismatch 를 고려한 설계가 좀 더 보수적인 설계에 가깝겠지요. 이상입니다.
'반도체 > 전자공학 심화' 카테고리의 다른 글
Spice & ADE simulation : hspice 에서 alter 구문 사용해서 corner, pvt simulation 돌리는 법 (1) | 2023.10.17 |
---|---|
Comparator offset calibration : cap 을 이용한 offset compensation 방법 (1) | 2023.10.11 |
Physical metal layer : Crosstalk 와 Ground bounce (0) | 2023.09.29 |
MOSFET Layout effect - Well proximity 효과와 STI(Shallow Trench Isolation) 효과 (1) | 2023.05.28 |
[디지털 회로]Inverter sizing : Fan-out & Buffer topology (1) | 2023.05.08 |