안녕하세요, 삼성전자 회로설계 직무 엔지니어 도체반쌤입니다. 오늘은 조금 DEEP 한 내용을 공부해 볼까 합니다. 전기전자/반도체 전공자가 아니라면 다소 어려운 내용일 수 있습니다. :D 회로설계직무에 지원하시는 분들이라면 천천히 한 번 정독해 보시는 것을 추천드려요!
일전에 아날로그 설계자에게 필요한 대표적인 준비물은 Model PDK라는 점을 EP.33[반도체업계 취업하기#11]MODEL PDK에서 소개드렸습니다. 아날로그 설계자는 트랜지스터의 움직임과 특성을 정확하게 반영한 Model PDK를 활용해서 스파이스(SPICE) 시뮬레이션을 진행한다고 했었죠.
스파이스 시뮬레이션이란 무엇인지?
스파이스 시뮬레이션(SPICE Simulation) 은 Synopsys의 HSPICE라는 툴(Tool) 혹은 Cadence의 Spectre라는 툴을 활용하는데, 이 툴들은 BSIM4 모델 Guide에 수록된 수식들을 계산해 주는 계산기 정도로 이해하시면 되겠습니다. 다양한 트랜지스터로 구성된 회로의 움직임을 확인하고 계산하기 위해 트랜지스터 레벨 (Transistor Level)의 회로 연결 구성(Netlist)과 MODEL PDK를 인풋으로 넣고 스파이스 시뮬레이션을 진행하면, 해당 회로의 특성을 수학적으로 계산할 수 있게 됩니다. 공정 산포 및 온도 조건 그리고 전압 조건을 바꾸어가면서 스파이스 시뮬레이션을 진행하는 것은 내가 설계한 회로가 실제 물리적인 칩 레벨에서 내가 의도한 설계대로 잘 동작할지 미리 확인하는 절차라고 이해하시면 되겠습니다.
트랜지스터 레벨 회로 연결 구성을 다루는 아날로그 설계자와 다르게, 디지털 설계자는 게이트 셀 레벨의 회로 연결 구성을 바탕으로 설계 및 검증을 진행합니다.
이게 무슨 말이냐 하면요,
디지털 로직 설계의 시작점인 RTL(Registor Transfer Level)은 일종의 프로그래밍 언어라고 보면 됩니다. RTL은 합성(Synthesis)이라는 과정을 통해 인버터, 낸드, 노어, 플립플롭 등 PMOS와 NMOS의 게이트가 연결된 CMOS(Complimentary MOS) 셀(Cell)들의 연결로 표현할 수 있게 됩니다. 이러한 CMOS 셀 구조상, 셀 내부의 PMOS와 NMOS가 게이트를 공유하고 있는 까닭에 해당 회로 연결 구성을 게이트 레벨의 회로 연결 구성(게이트 레벨 넷리스트)라고 부르기도 합니다. 아래 인버터 셀 회로에서 A 노드가 게이트입니다.
두 개의 트랜지스터를 이어 놓은 인버터 회로도 출처 : 삼성전자 DS부문 공식 홈페이지
디지털 설계자도 그냥 MODEL PDK로 스파이스 시뮬레이션 진행하면 되는 것 아닌가?
디지털 설계자가 다루는 게이트 레벨 넷리스트를 구성하는 CMOS 셀들(인버터, 낸드, 노어, 플립플롭 등)을 Standard Cell이라고 부르기도 합니다. 그리고 해당 게이트 레벨 넷리스트를 구성하는 셀들을 트랜지스터 레벨로 쪼개어 트랜지스터 레벨 넷리스트로 변환할 수 있다는 사실을 인지할 필요가 있습니다. 크게 어려운 과정은 아니며, 예를 들어 인버터의 PMOS와 NMOS가 게이트를 공유하고, Drain을 Output 노드로 공유하고 있는 연결 구성임을 우리가 알고 있기 때문에 쉽게 변환할 수 있습니다.
즉, 디지털 설계자도 마음만 먹으면 이론상으로는,
스파이스 시뮬레이션을 진행할 수 있습니다.
하지만, 현실적으로 디지털 설계자가 스파이스 시뮬레이션을 진행할 수 있을까요?
아니요
사실, 스파이스 시뮬레이션만큼 설계를 검증할 수 있는 정확한 방법론은 없습니다. 하지만, 디지털 설계자가 스파이스 시뮬레이션을 진행하는 것은 현시대 과제들에서는 불가능한 경우가 많습니다. 그 이유는 넷리스트를 구성하는 트랜지스터의 숫자가 수천억 개가 넘는 과제가 대부분이기 때문입니다. 수천억 개가 넘는 트랜지스터의 연결에 대해, HSPICE 툴로 아날로그 분석을 진행하는 것은 현세대 슈퍼컴퓨터로도 상당한 시간이 소요될 수 있습니다. (추후에 양자 컴퓨터로는 빠른 분석이 가능할 지도 모르겠습니다.)
스파이스 시뮬레이션을 할 수 없는, 디지털 설계자는 다음 두 가지 준비물을 가지고 로직 시뮬레이션 검증을 진행하는데요, 그 구체적인 방법론은!