사실 불과 몇년 전까지만 하더라도 이쪽 업계를 특정해서 진로를 결정짓는 사람들은 많이 없었던 것 같다. 삼성전자의 연봉 50%의 PS는 아주 매력적이어서 의대를 가지 못한 사람들이 진로를 정해서 왔던 것이 대부분 이었던 것 같다.
필자 또한 지방대 출신에 진로를 제대로 결정하지 못해서 학력세탁을 위해 대학원을 진학 했었고, 다행히 성공적으로 세탁이 된 덕분인지 아니면 운좋게 나의 적성을 찾았던 것인지 반도체 업계에 그것도 설계직으로 종사하게 되었다.
반도체 업계의 종류
일단 반도체 업계에 어떤 종류의 일이 있는지 살펴보면 아주 많다. 나도 잘 모를 정도로 넓은 분야가 있기에 이게 전부라고 말할 수는 당연히 없고 찾아보면 더 많은 것들이 있기에 이 글을 맹신하지 않았으면 한다.
설계
우선 필자가 종사하고 있는 설계 직군이있다. 설계는 이쪽에서는 보통 Design 이라고 한다. 그래서 링크드인이나 다른 엔지니어 직군을 설명할때 SoC Design 혹은 Silicon Design이라고 부른다. 먼 옛날 지금 은퇴를 앞둔 선배님들이 신입이었을 시절에는 트랜지스터를 직접 그려서 반도체를 설계했다고 한다. 하지만 요즘엔 수십억, 수백억 혹은 그 이상의 트랜지스터들이 집적된 형태를 그렇게 설계하라면 불가능에 가까울 뿐더러 평생을 한다고 해도 1개를 제대로 끝낼 수 없다. 하여튼, 요즘에 있어서 설계는 Verilog / VHDL / Systemverilog로 구분되는 3가지 언어를 이용해서 설계를 하게 된다. 어찌보면 SW랑 비슷한 면이 있지만 다른 점은 HW는 병렬로 동작하기 때문에 다소 복잡한 개념을 가지고 있어야 한다는 것이다. 때문에 일반 SW처럼 sequencial하게 build 하면서 동작을 보는게 아니라 simulation을 통해서 waveform이라는 파형을 살펴보면서 설계를 하게 된다.
PI / PD
Physical Implementation 혹은 Physical Design 이라고 부르는 직종이다. 이쪽에 종사하는 사람들은 보통 SDC라고 불리는 파일을 가지고 RTL로 설계된 디자인들을 net-list로 합성하거나 타이밍을 보거나 전력, 발열 등을 살펴보는 역할을 한다. 설계직과 같이 있는 PI/PD는 보통 이런 일들을 하며, 칩의 flow-plan을 잡고 물리적인 플랜을 짜고 결과를 분석한다. Back-end에서 일하시는 분들과 대화하는 주요한 창구로서 설계직을 대변해서 물리적인 레벨에서의 회의를 통해서 모르면 어버버하고 당하는 일들을 많이들 막아주신다.
검증
설계된 디자인을 전문적으로 검증하는 직이다. 보통 Systemverilog를 많이 사용하는데, 그 이유는 Systemverilog가 verilog의 가장 최신 언어이기도 할 뿐더러, 검증에 특화된 기능들이 많이 추가 됐기 때문에 특히나 유용하기 때문이다. 검증 엔지니어를 작은 회사일 수록 천대하지만 큰 회사로 갈 수록 그들의 중요도는 매우 높아진다. 왜냐하면 설계가 커지고 복잡해지면 설계자가 그 모든 것을 검증 할 수 없고 놓치는 부분이 반드시 생기기 때문이다.
요즘에는 UVM이라는 검증방법이 많이 보편화되어있다. 대충 random 값들을 세팅해서 디자인에 밀어 넣으면서 그 결과를 score board에 기록하는 형태로 검증하는 것이라고 나는 이해하고 있다. 하여튼, 다양한 검증방법이 있지만 최근에 대세이자 기본은 UVM이다. UVM은 예전에는 셋업 자체가 너무 어려웠지만 요즘엔 AI가 뚝딱 만든다고도 한다. 믿거나 말거나지만 말이다.
Back-end
한국에서 삼성파운드리를 쓰면 DSP라는 업체들을 접하게 되는데, 그들이 하는 일이 바로 back-end다. 나도 업무적으로 들어서 결과물까지 어떤 일을 한다라고만 알고있지 그들이 정확히 어떤 일을 하는지는 알지 못한다.
일단 백엔드쪽에 종사하는 분들은 RTL을 실제 net-list로 합성하는 일을 한다. 그 와중에 타이밍에 문제가 생기거나 하는 것들을 체크하고, 타이밍을 맞추기 위해서 buf를 추가하는 등 cell 레벨에서 많은 것들을 다룬다고 들었다. 반도체는 corner라는 것이 있는데, wafer가 동그란 형태로 되어있어서 어떤 곳에 반도체가 만들어지느냐에 따라서 성능이 서로 다르게 만들어 질 수 있기 때문인데, 그래서 보통 가장자리로 갈 수록 warst case가 되고, 그 warst case에 대한 corner 정보를 파운드리에서 PDK로 전달 받아 그 정보를 가지고 디자인 합성 결과를 테스트하게 된다. 모델링된 정보를 주입해서 검증 작업을 거치면서 특성이 안좋은 부분은 잡고, 최대한 잡아보는 작업을 한다. SoC의 사이즈가 결졍되는 단계이기도 하며, memory의 timing이 안맞거나 하는 문제를 잡아보려고 시도해보고 시도해보다 안되면 교체 요청을 한다.
참고로 여기서 끝난 결과물이 팹으로 가서 반도체를 찍어내기 때문에 실질적으로 마지막 단계라고 할 수 있고, 사람의 손을 매우 많이 타는 직종이다. 특히 공장(팹)에 따라서 특성이 다르기 때문에 보통 국내 백엔드에 취업하면 삼성파운드리를 주로 다루게 된다.
Fab
진짜 공장이다. SoC를 만들어내는 공장이며, photo mask 같이 광학 장비들을 반도체로 찍어내기 위한 준비 및 생산을 담당한다. 하지만 단순히 공장라인이라는 의미가 아닌게 이곳에서는 공정, 설비에 따른 PDK를 모델링해서 설계 및 DSP에 제공하는 역할도 하기 때문에 제대로 모르면 아무것도 할 수 없는 곳이기도 하다.
Package
Fab에서 만들어진 반도체는 날것 그대로이기 때문에 이걸 우리가 칩으로 보이는 껍데기들과 반도체의 외부에 연결된 단자(PAD)에서 wiring을 통해서 ball로 신호를 연결해주는 작업을 한다. 단순해 보이지만 최근 2.5D 같은 multi-chip/multi-die 같은 기술들이 등장하면서 이들이 훨씬 많은 일들을 하고 있었다는 걸 알게 된 계기가 있다.
EDA
Tool 회사다. Cadence/Synopsys/Siemens 이렇게 3개의 회사가 천하를 삼등분했다. 정확히는 삼등분은 아니고 크기가 다르지만..
어쨌든 이들의 주요한 역할은 설계 simulation 부터 Synthesis tool, power estimate, 열 분석, STA 등등.. 반도체 모든 과정에 걸쳐서 합성, 검증, 분석 등의 모든 툴들을 제공한다. 단점이라면 그 모든 툴들이 세분화 되어있고 세분화된 것들이 각각 돈을 달라고 하는 점이다.
참고로 가격이 사악하다.
또한 요즘에는 에뮬레이터라고 해서 시간이 엄청 오래 걸리는 검증 과정을 초가속해서 결과물을 보여주는 장비들도 제작해서 제공한다. 당연히 여기서 사용하기 위한 VIP라는 검증에 대응되는 IP들을 제작 및 제공해주는 역할도 한다. 참고로 이것들도 가격이 어마어마하다.
연구직은 대부분 미국에 위치해있고, 국내에 위치한 EDA는 보통 마게팅/세일즈 그리고 기술영업 직이라고 보면 된다. 엔지니어의 마지막 종착지라고 보통 말을 하는데, 한번 EDA 업계에 발을 들이면 소개된 3개 회사로 로테이션 돌듯이 이직만 하고 다시 필드로는 나오지 못한다는 소문이 있다.
FPGA
전통적인 검증 플랫폼 FPGA다. 옛날에는 Xilinx 말고도 다른 회사들이 더 있었는데 요즘엔 Xilinx로 천하통일 되었다. Xilinx도 이름은 그대로 남아있지만 AMD가 꿀꺽 해버렸기 때문에 사실상 AMD나 다름 없다. SoC는 한번 칩으로 만들면 절대 수정이 불가능하지만 FPGA는 SW랑 비슷하게 내부에 logic들이 배치되어 있어서 설계된 것을 FPGA용으로 합성해서 device에 내려서 물리적으로 테스트를 해볼 수가 있다.
FPGA를 만들어서 상품화 하면되지 않냐, 라고 할 수 있지만 SoC를 전용 칩으로 만든 것과의 속도차이가 말이 안되니까 이건 검증용으로만 생각하면 된다.
소자/소재
진짜 물리학의 찐 변태들이 모이는 직군이다. 이들은 가장 밑바닥이라고 표현하지만 일종의 기초과학을 위한 존재들이다. 참고로 이들이 없으면 반도체가 성립 할 수 없기 때문에 그들의 존재는 선단공정으로 향하기 위해서 필수적인 개척자들이다. 4nm, 3nm, 2nm 단위의 엄청 작은 트랜지스터를 개발하기 위해서 재료는 뭘 써야하고, 어떤 구조를 갖춰야하고, 전자가 지나다니는 채널이 너무 미세해서 특성을 살리지 못하는 것을 해결 하는 등, 필자도 제대로 설명 못하는 물리학의 영역에서 활동하는 과학자들이다.
Farmware
개발된 SoC를 실제로 사용하기 위한 SW를 개발하는 엔지니어들이다. 이들은 일반적인 SW엔지니어랑은 조금 다르게 더 low level로 내려온 친구들로서, linux kernel 같은 것들을 다루는 사람들이다.
전공을 뭘 하면 될까
이건 조금 어려운 질문인 것 같다. 필자는 전자공학을 추천하고 싶지만 그 외에도 많은 전공들이 이쪽에 영향을 미칠 수가 있다. 심지어 물리학과 화학과도 진출이 가능한 것이 반도체라고 할 수 있다.
반도체를 괜히 과학의 종합분야라고 부르는게 아니다. 이쪽은 HW부터 SW까지 아주 넓은 스펙트럼으로 사람들이 참여 할 수 있다. 심지어 반도체 설계에 영상처리 알고리즘이 필요할 수도 있기에 전혀 생뚱맞는 비전 전공자도 진출 할 수 있는 분야라고 할 수 있다. 때문에 어떤 전공을 하면 이쪽에 올 수 있다는 올바른 표현이 아닌 것 같다. 본인에게 맞는 전공을 공부했으면 그 전공을 살릴 수 있는 분야가 반도체에는 반드시 존재한다고 이야기하는게 올바른 표현일 것이다. 아, 그렇다고 실용음악이나 이런걸 배우면 올 수 없으니까 적당히 타협해서 이해해 줄 것을 요청한다.
미래가 과연 밝을까?
SW엔지니어들은 최근 큰 일을 겪고, 현재도 진행중인데 바로 AI의 습격이다. 말도 안되는 성능과 효율, 그리고 생산성으로 기업들이 주니어 채용을 멈추게 만들 만큼 파괴력이 엄청났다. 불과 코로나 시절(2020)때만 하더라도 컴퓨터 공학과는 고연봉에 모셔가는 직군으로 떠올랐는데, 불과 6년만에 세상이 변천하였다.
HW 엔지니어라고 방심하기에 최근의 AI의 발전이 너무 무섭다. 필자도 AI를 활용해서 많은 것들을 하고 있고, 현업에서도 사용하고 있기 때문에 그것들의 발전이 곧 우리의 영역에 도달할 거라는 생각은 항상 하고 있다. 그 정도로 효과가 뛰어나다. 물론, SoC 설계의 기밀성과 폐쇄성 때문에 AI를 손쉽게 도입하는 것은 쉽지 않다. 하지만 오픈된 것들을 AI로 처리하고 그 외의 것들을 폐쇄망에서 처리하는 식으로 이미 많이들 사용하고 있다. 그게 아니면 Open-parameter AI를 설치해서 아예 로컬에서 돌려버리는 사람도 있다.
아까 찐변태로 소개한 소자/소재의 사람들은 오래 살아남을 것이다. 물리적인 해석과 연구를 통해서 길을 개척하는 그들은 AI가 대체하기엔 AI도 모르는 분야이기 때문이다. 하지만 설계부터 Back-end 까지는 위태로운 것이 현실이다. 아마 10년 이내에 어떤 큰 변화가 있을 것이지만 SW 쪽이 1년사이에 아작난것을 고려하면 10년도 너무 낙관적으로 생각한 것에 가깝다.
그래도 도전적인 후배들에게
미국으로 가라. 반도체의 미래는 미국에 있고 한국에는 없다. 실제로 실리콘벨리에는 SoC 설계 엔지니어를 많이 뽑는다. 하지만 국내는 그만큼 돈을 맞춰주지도 않을 뿐더러, 일자리도 많이 없다. 한국에서 SoC 개발자란 결국엔 돈을 많이 소비하는 조직의 일원일 뿐이다.
그래도 한국에서 일을 하고 싶다면 힘든 일과 처우가 많을 것이지만 잘 참고 성장하기를 진심으로 기도하려고 한다. 이미 돌아 갈 수 없을 만큼 길을 걸어온 나이기 때문에 나는 다른 선택을 할 수 없어서 항상 앞을 보고 걸어야하지만 뒤에 오는 후배들도 이쪽에 온다면 똑같을 것이기 때문이다.
그리고 항상 공부해야한다. 어째 10년을 일을 했지만 아직도 모르는것 투성이에 새로운 것이 너무 빠르게 등장하기 때문에 항상 공부해야한다. 그리고 그 모든 자료들은 영어로 만들어져 있으니까 가급적 영어를 잘 하는 것이 좋다. 필자는 영어를 못해서 미국에 못가는 것도 있지만 지식을 축적하는 속도도 매우 느려서 본인도 매우 한탄하는 중이다.
인생은 길다
긴 인생을 살다보면 어느순간 생각지도 못한 길이 눈앞에 나타날 수 있을 것이다. 항상 공부하면서 자신의 길을 걸어 나가길 진심으로 기도한다.