반도체 입문 · 4강
요구 사항과 사양, IC 설계
칩은 팹에 들어가기 전에 컴퓨터에서 설계를 모두 마치고 여러 번 검사한다. 큰 칩에는 트랜지스터가 100억 개 넘게 들어가 사람이 다 그릴 수도, 다 확인할 수도 없으므로 모든 단계를 설계 소프트웨어에 의존하며, 일부 블록은 사 오기도 한다. ‘무엇을 만들 것인가’에서 설계도를 넘기기까지, 모든 단계는 테이프아웃 뒤에야 오류를 발견하는 일을 막기 위한 것이다.
학습 목표
- 디지털 칩 설계가 사양, 동작 기술, 검증, 합성, 배치 배선을 거쳐 사인오프와 테이프아웃에 이르는 순서와, 단계마다 어떤 종류의 설계 소프트웨어(EDA)를 쓰는지 말할 수 있다.
- 사양에 따라 테스트를 만들고, 커버리지를 보고, 수학으로 증명하는 검증 방법과, 테이프아웃 뒤에 발견한 오류가 특히 비싼 이유를 설명할 수 있다.
- 칩에서 어떤 블록을 흔히 반도체 설계 자산(IP)으로 사 오는지, 소프트 IP와 하드 IP가 어떻게 다른지, 팹의 규칙이 PDK를 통해 설계에 어떻게 반영되는지 안다.
한 단계씩
- 사양을 정한다: 어떤 일을 하는지, 얼마나 빠른지, 전력을 최대 얼마나 쓰는지, 면적은 얼마인지.
이유이후 모든 단계가 사양을 따른다. 소프트웨어는 사양의 목표에 맞춰 방법을 찾고, 검증은 사양을 기준으로 테스트를 만든다.
하지 않으면사양이 없으면 설계가 맞는지도, 검증이 끝났는지도 말할 수 없다.
- 팹과 공정을 정한 뒤, 사 올 IP 블록을 고르고 해당 세대 공정용 버전이 있는지 확인한다.
이유블록을 모두 처음부터 그리는 경우는 드물고, 칩 하나는 한 가지 공정으로만 만들 수 있다.
하지 않으면맞지 않는 것을 고르면 누군가 새로 만들어 줄 때까지 기다리거나 팹을 바꿔야 한다.
- 직접 만드는 블록의 동작을 하드웨어 기술 언어(HDL)로 글로 적는다.
이유‘매 박자마다 이 두 수를 더한다’는 한 줄이면 되지만, 트랜지스터로 그리면 넓은 면적을 차지한다.
하지 않으면잘못 적으면 뒤의 소프트웨어는 틀린 그대로 만들 뿐이다.
- 검증한다: 사양에 따라 테스트를 만들어 시뮬레이션하고, 커버리지를 보고, 사 온 IP도 연결해 함께 시험한다.
이유컴퓨터에서는 한 줄만 고쳐 다시 시험할 수 있지만, 칩을 실제로 한 번 만들려면 몇 달이 걸린다.
하지 않으면오류가 테이프아웃까지 이어지면 설계를 고치고 마스크를 다시 만들어야 하며, 만들어진 칩은 하나도 빠짐없이 똑같이 틀린다.
- 합성한다: 셀 라이브러리를 이용해 적어 둔 동작을 논리 게이트로 연결된 회로로 변환한다.
이유같은 기능도 연결 방법이 여러 가지여서, 소프트웨어가 표를 찾아 속도·면적·소비 전력을 비교하고 목표에 맞는 것을 고른다.
하지 않으면사람이 하나하나 연결하면 끝이 없고, 어느 방법이 나은지 비교할 수도 없다.
- 배치 배선을 한다: 논리 게이트를 배치하고, 클록을 분배하고, 여러 층의 배선에 선을 깔아 레이아웃을 만든다.
이유배치가 중요하다. 선이 길수록 신호가 느려지고 전력을 더 쓴다.
하지 않으면배치가 나쁘면 선이 지나갈 자리가 없거나 신호가 제시간에 도착하지 못해, 되돌아가 다시 배치해야 한다.
- 사인오프한다: 규칙을 확인하고, 레이아웃이 회로와 일치하는지 확인하고, 트랜지스터가 빠르게 또는 느리게 만들어졌을 때(코너)도 신호가 제시간에 도착하는지 확인한다.
이유모두 통과해야 테이프아웃한다. 마스크는 이 파일대로 만들어지므로 그 뒤에는 쉽게 고칠 수 없다.
하지 않으면오류 하나를 놓치면 몇 달 뒤 칩이 돌아와서야 발견하고, 마스크를 다시 만드는 수밖에 없다.
핵심 설명
사양은 요구 사항 목록, 소프트웨어는 그에 맞춰 방법을 찾는다
설계는 사양에서 시작한다. 이 칩이 어떤 일을 하고, 얼마나 빠르게 동작하며, 전력을 최대 얼마나 쓰고, 면적은 얼마인지다. 이 항목들은 서로 충돌하는 경우가 많다. 빠르게 만들려면 회로를 더 넣고 전력을 더 써야 할 때가 많고, 칩이 클수록 웨이퍼 한 장에 들어가는 개수가 줄어 한 개당 값이 비싸진다. 작은 전지 하나로 오래 버텨야 하는 제품이라면 저전력이 최우선이다. 휴대폰 칩 하나에는 트랜지스터가 100억 개 넘게 들어간다. 100억 개로만 잡아도 1초에 하나씩 먹지도 자지도 않고 그리면 300년이 넘게 걸린다. 그래서 모든 단계를 EDA(electronic design automation, 전자 설계 자동화)라고 부르는 설계 소프트웨어 일체에 의존한다. 소프트웨어가 알아서 설계하지는 않는다. 엔지니어가 목표, 예컨대 한 박자에 최대 얼마의 시간을 쓸 수 있는지(칩은 클록이라는 일정한 박자에 맞춰 동작한다)를 알려 주면, 소프트웨어는 그 제약 안에서 방법을 찾아 보고서를 내놓는다. 기준을 만족하지 못한 곳은 사람이 원인을 이해하고 고친 뒤 다시 돌린다.
동작 기술에서 층층의 패턴까지
디지털 회로는 먼저 하드웨어 기술 언어(HDL, hardware description language)로 동작을 글로 적는다. ‘매 박자마다 이 두 수를 더한다’는 한 줄이면 되지만, 트랜지스터로 그리면 넓은 면적을 차지한다. 이어서 합성 툴이 셀 라이브러리(해당 세대 공정에 맞춰 미리 만들어 둔 작은 블록 모음으로, 각종 논리 게이트와 0 또는 1을 하나 기억하는 작은 회로가 있으며, 블록마다 속도와 소비 전력이 미리 계산되어 있다)를 이용해 이를 논리 게이트로 연결된 회로로 변환한다. 같은 기능도 연결 방법은 여러 가지여서, 소프트웨어가 표를 찾아 목표에 맞는 것을 고른다. 다음으로 배치 배선(place and route) 단계에서 논리 게이트를 칩 위에 배치하고, 클록을 모든 곳에 보내고, 여러 층의 배선에 선을 깔아 층마다 패턴을 만든다. 이것을 레이아웃이라고 한다. 선이 길수록 신호가 느려지고 전력도 더 쓴다. 이 소프트웨어들은 모두 팹이 제공하는 파일 묶음인 공정 설계 키트(PDK, process design kit)를 바탕으로 계산한다. 여기에는 설계 규칙, 트랜지스터 모델, 층별 데이터가 들어 있다. 모델이 부정확하면 아무리 정밀하게 계산해도 실제로 만든 칩은 다르게 나온다.
검증: 사양에 따라 문제를 내고, 아직 시험하지 않은 곳을 찾는다
검증은 칩을 만들기 전에 설계가 사양대로 동작하는지 확인하는 일로, 일반적으로 설계 업무의 큰 몫을 차지하는 경우가 많다고 한다. 테스트는 사양을 기준으로 만들어야 하며, 설계자가 작성한 회로를 기준으로 만들면 안 된다. 그러면 잘못 작성한 부분까지 정답으로 처리되기 때문이다. 시뮬레이션은 컴퓨터가 이 칩인 것처럼 동작하게 해서 입력을 넣고 결과를 정답과 비교하며, 컴퓨터가 무작위로 많은 테스트를 만들게 하기도 한다. 설계를 한 번 고칠 때마다 기존 테스트를 모두 다시 돌린다. 테스트를 모두 통과했다고 오류가 없다는 뜻은 아니다. 오류가 있는 곳을 아직 시험하지 않았을 수도 있으므로, 커버리지를 보고 어떤 테스트가 빠졌는지 찾는다. 모든 경우를 다 시험할 수도 없다. 32비트 수 두 개를 더하는 것만 해도 입력이 2의 64제곱 가지이고, 1초에 10억 가지씩 시험해도 500년이 넘게 걸린다. 그래서 특히 중요한 작은 부분에는 정형 검증(formal verification)을 써서, 어떤 성질이 반드시 성립함을 수학으로 증명한다. 예를 들면 두 신호가 절대 동시에 켜지지 않는다는 것이다.
사 오는 블록이 많다: 반도체 설계 자산(IP)
트랜지스터가 100억 개 넘게 들어가는 큰 칩을 블록 하나하나 처음부터 그리는 경우는 드물다. 프로세서 코어, 메모리 인터페이스, 소리 같은 신호를 숫자로 바꾸는 아날로그 회로는 흔히 반도체 설계 자산(IP)으로 사 온다. IP는 미리 설계하고 검증해 둔 회로 설계 블록으로, 다른 회사가 자기 칩에 넣어 쓸 수 있도록 라이선스를 준다. 파는 것은 설계이지 칩이 아니다. 소프트 IP는 글로 작성된 회로 기술이어서 다른 팹으로 옮겨도 다시 구현할 수 있다. 하드 IP는 패턴 배치까지 끝난 상태라 특정 팹의 특정 세대 공정에 묶여 있다. 아날로그 회로는 대개 하드 IP다. 트랜지스터 하나하나의 크기와 배치에 민감해서, 다른 사람이 다시 배치하면 제대로 동작하지 않을 수 있다. 아날로그 회로는 작게 만들어도 이득이 크지 않고 오히려 만들기 더 어려워지기도 해서, 많은 아날로그 칩은 몇 세대 전의 방식으로 만든다. 사 온 IP는 단독으로는 검증을 마쳤지만, 연결하고 나면 클록, 전원, 재시작 방식이 양쪽에서 같지 않을 수 있으므로 칩 전체를 함께 다시 검증한다.
흔한 오해
- 흔히 듣는 말칩 설계는 곧 프로그래밍이다.
- 실제로는하드웨어 기술 언어는 작성하는 모습이 프로그래밍과 비슷하다. 차이는 이렇다. 프로그램은 순서대로 한 줄씩 실행되지만, HDL로 적는 것은 회로이며 여러 부분이 동시에 움직이고, 대부분 일정한 박자(클록)에 맞춰 동작한다. 작성을 마쳐도 끝이 아니다. 검증과 합성을 하고, 배치와 배선을 마치고, 사인오프를 통과해야 넘길 수 있다.
- 흔히 듣는 말검증, 팹의 계측, 칩 테스트는 모두 검사이니 한 가지만 하면 된다.
- 실제로는세 가지는 확인하는 대상이 다르다. 검증은 테이프아웃 전에 주로 컴퓨터에서 하며, 설계도가 맞는지를 본다. 설계가 틀리면 모든 칩이 똑같이 틀린다. 계측과 검사는 팹에서 공정 도중에 하며, 중요한 단계가 제대로 됐는지, 예컨대 막 두께나 선폭을 본다. 칩 테스트는 보통 웨이퍼 공정이 끝난 뒤와 패키징 뒤에 한 번씩, 칩 하나하나를 모두 시험하며, 실제로 만들어진 이 칩이 불량인지를 본다. 집을 짓는 것과 같다. 착공 전에 설계도를 검토하고, 짓는 동안 벽이 똑바른지 재고, 입주 전에 집마다 물과 전기를 한 번씩 켜 본다.
필독
- 칩은 어떻게 설계할까? IC 설계가 하는 일
- 반도체 설계자산(IP)이란? 칩 속에 왜 사 온 회로가 있을까
- EDA란? 칩을 설계하는 소프트웨어는 단계마다 무엇을 할까
- 칩 검증이란? 테이프아웃 전에 설계가 맞는지 어떻게 확인할까
더 읽기
플레이
챕터 1 ‘12장을 어떻게 나눌까’부터 시작하기: 설계 때 모델로 계산한 코너를 실제로 만들어, 설계가 버티는지 본다 →
생각해 보기
- 보청기를 만드는 작은 회사가 처음으로 칩을 직접 설계한다. 마이크가 받은 소리를 숫자로 바꾸는 아날로그 회로, 칩 전체에 박자를 맞춰 주는 클록 회로는 직접 그릴 수도 있고 이미 만들어진 IP를 살 수도 있다. 무엇을 직접 만들고 무엇을 살지 어떻게 정하겠는가? 사기 전에 판매자에게 무엇을 먼저 묻겠는가?
- 검증에는 많은 인력과 시간이 든다. 그렇다고 덜 하면 테이프아웃 뒤에야 오류를 발견할까 걱정이다. 일정이 빠듯하다면 ‘이 정도 확인했으면 충분하다’는 판단을 어떻게 내리겠는가?
수업 자료: 슬라이드
이 강의의 핵심, 모식도, 장비, 토론 질문을 슬라이드 한 벌로 만들었다. 그대로 화면에 띄워도 되고, 자신의 강의 자료에 넣어도 된다.
슬라이드 다운로드(PPTX)265 KB슬라이드 다운로드(PDF)274 KB
수업과 비영리 목적이라면 무료로 쓸 수 있다. 출처는 fab24hr로 밝혀 주기 바란다. 판매하거나 자신의 저작물로 바꿔 내놓을 수는 없다. 오류가 있다면 문제 신고
이 글 인용하기‘반도체 입문 · 4강: 요구 사항과 사양, IC 설계’, fab24hr, 업데이트. https://fab24hr.com/ko/learn/design/