brunch

You can make anything
by writing

C.S.Lewis

by 반도체와 나 Apr 19. 2023

반도체 모델의 추상화 레벨

지난 글에 이어서..


 지난 글에서 게이트 레벨을 설명하다가 말았다.

 그림을 다시 볼까?



 게이트 레벨에서는 꽤 구체적으로 회로의 특성들을 파악할 수 있다. 앞서 말한 것처럼 타이밍을 확인할 수 있고, 소모되는 전력이나 면적 등을 미리 구해볼 수 있다.

 STA(Static Timing Analysis)는 게이트 레벨에서 굉장히 중요한 검증 과정이 된다. 동기 회로에서 timing violation은 그 자체로 회로가 데이터를 제대로 처리하지 못한다는 의미를 가지고 있다.

 그런 의미에서 게이트 레벨을 구현할 때 사용되는 Standard cell library는 Physical level까지 설계 과정에서 계속 사용할 것이기 때문에 무척 중요하다. Design Kit을 판매하는 Foundary 업체에서는 이 cell library를 풍부하게 만들고 또 최대한 실물과 일치하도록 만들어야 한다. 구글에서 찾으면 회로의 재료가 되는 무료 PDK를 다운로드 받아볼 수 있다. 데이터 시트도 살펴보면서 이게 어디에 쓰이는지 생각해 보면 좋을 것 같다.

 게이트 레벨 역시 주로 Verilog로 구현된다. 하지만, 그 동작을 파악하기는 매우 어렵다. 각 cell들의 port가 어떻게 연결되어 있는지 연결 정보만 볼 수 있기 때문이다. 타이밍과 소모 전력, 면적등의 정보는 여러 EDA 툴에서 예측값을 얻을 수 있다. 면적과 같은 경우는 Design Compiler와 같은 합성 툴 결과로도 확인할 수 있다.


 트랜지스터 레벨은 말 그대로 트랜지스터로 회로를 꾸미는 일이다. SoC 설계에서는 아날로그 IP들이 이런 형태를 띠고 있을 것이나, 회로를 자체 개발하지 않았다면 내부 회로도를 보는 것은 어려울 수도 있다. 대부분 custom 설계에서는 트랜지스터 레벨을 이용해서 회로를 개발한다.

 트랜지스터 레벨에서 중요한 것은 fet의 모델이다.

 트랜지스터는 0과 1을 표현할 수 있는 최소 단위의 스위치다. 케이던스의 컴포저 같은 스케메틱 툴에서 아래 그림 같은 추상적인 모양으로 트랜지스터를 그려준다.

 

  위 그림은 학교에서 많이 봤을 테지만, 실물은 정말 다르게 생겼다. 아래 TEM 사진을 보자!

finfet TEM 사진

 그러면 이 트랜지스터 레벨은 도대체 무엇하러 있는 레벨인가? 먼저 아날로그 회로는 0과 1의 로직 값이 아닌 각 노드(mosfet에서는 drain, gate, source, bulk 등)의 전압 값과 전류 값 그 자체로 의미가 있다. 또는 앞서 말한 standard cell library를 만드는 데 사용한다.

 그래서 그 전기적 특성, 공정의 영향력을 담고 있는 것이 트랜지스터 모델이다. 넓은 의미로 Device 모델이다.

 BSIM, PSP와 같은 모델들이 있고, circuit simulator에서 지원하는 custom 모델을 직접 구현할 수 있다. 인텔이나 TSMC 같은 회사의 경우 자체 모델이 있다. 다른 회사들도 있는 것으로 알고 있지만, 범용적으로 사용되는 것만 알아도 직접 사용하는데 문제가 없다.

 모델은 device physics를 근간으로 만들어 놓은 대표적인 computational 모델이다. 실제 수학적 모델은 만들어져 있고, 해당 수식에서 coefficient 값을 조정해서 우리가 사용하는 공정에 맞게 그래프 모양을 이쁘게 맞추는 작업을 하게 된다. (재밌는 작업은 아닌 것 같다만, 모델을 직접 만들면 재밌을 것 같다.)

 BSIM은 버클리 대학에서 만든 오픈 소스여서 코드를 가져다가 쓸 수 있다. 트랜지스터 레벨은 SPICE format으로 회로를 구성할 수 있고 test bench도 만들 수 있다. Python으로 된 오픈소스 회로 시뮬레이터도 있기 때문에 내부 동작은 공부해 볼 수도 있다. (미분 방정식을 푸는 알고리즘이다.)


 Physical level은 반도체 개발에서 layout 설계를 의미한다. layout은 실물 제품을 만들기 위한 마스크 제작에 사용되는 그림이기 때문에 이를 만들기 위해서도 여러 가지 규칙이 필요하고 공정 능력에 따라 만들 수 있는 소자의 크기 및 배선의 굵기가 달라진다. 이 영역도 자동화가 되어있고, 훌륭한 알고리즘들이 아주 오랜 세월 동안 개발되어 왔다. 각 IP들의 위치를 architectural level에서도 어느 정도 미리 정해두었을 것이므로, floorplan을 통해 IP 위치를 지정하고, clock tree를 먼저 합성한 다음, P&R을 진행한다.  layout 설계가 끝나면 OPC 같은 후처리 작업을 통해 진짜 마스크들이 만들어진다.

 layout 또한 이야기할 것이 많다. 그러나 이것도 실물이 아님을 항상 염두에 두어야 한다. 아직 추상화된 모델일 뿐이다.

 각 레벨에서 모델의 용도나 담고 있는 정보들과 할 수 있는 것들이 달라짐을 알 수 있다.


 그렇다면, 좋은 모델은 뭘까?

작가의 이전글 모델의 추상화 레벨
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari