-
코멘토 직무부트 캠프 후기 - Chip 설계의 모든 것카테고리 없음 2022. 2. 22. 22:44
1. 취준의 고민 & 신청계기
학부 4년동안 공부하면서 반도체 과목(물리전자, 전자소자, 반도체소자, 집적회로공정실험)이 제일 재밌기도하고, 성적이 제일 잘 나와서 반도체트랙으로 커리어를 쌓기로 결정했다. 우리학교 특징이기도 하고 사회적으로(?) 반도체하면 8대공정 위주의 공정엔지니어로만 이어지는 게 싫었다. 직무 자체가 인력을 많이 필요로 하는 좀 그런 것이다 보니,, 반도체가 좋아서 반도체 트랙을 탄 이상 여기저기서 다 들어오려는 반도체 공정 엔지니어가 아니라 전자공학 고유영역이자 반도체 업계의 핵심 인력인 반도체 회로설계 엔지니어가 되고싶었다.
학부 4학년 2학기에 디지털집적회로라는 과목을 들으면서 디지털 VLSI 회로 설계에 대한 이론과 16비트 덧셈기를 설계해보면서 성적은 나빴지만, 여기로 가볼만 하겠다고 생각했다. 디집에서 배운 것을 까먹기 전에, 디집 성적이 낮게 나온 것에 대한 카운터를 위해, 회로설계가 너무 재밌어서 관련 활동을 찾아보다가 자기소개서 첨삭을 위해서 자주 이용하던 "코멘토"에서 직무부트 캠프활동이 있는 것을 알게 되었다.

코멘토 직무 부트캠프 
커리큘럼 얼리버드 할인 제도가 있어 1월 23일 개강이지만 1월 4일에 수강신청했다! 아날로그, 디지털, Layout 3가지 맛으로 반도체 칩설계를 배우기 좋은 커리큘럼이라 고민하지 않고 수강신청!
https://comento.kr/edu/learn/연구개발/설계-G1529

내돈 내산 인증. 2. 주차 별 수업 내용과 느낀점
직무 부트캠프는 총 5주 동안 3회의 Online세션과 4개의 과제를 수행한다.1주차: Online세션, Analog Design2주차: Digital Design3주차: Online세션, Layout Design4주차: 과제물 Revision5주차: Online세션
본격적인 과제 및 활동 설명!1월 23일 활동전에 멘토님께서 툴 사용에 관한 메뉴얼을 올려주셔서 되게 좋았다. 툴은 사용뿐마나 아니라 설치하고 작동시키는 셋업까지 번거롭고 시간이 걸리기 때문... 메뉴얼도 글만 주시는 것이 아니라, 영상까지 함께 올려주셔서 참고하기 정말 수월했다!

친절한 사전안내 1주차: Online세션, Analog Design
1월 23일 멘토님과 첫 만남. 수업자료가 무려 44쪽이나 된다! 2시간 동안 칩설계 엔지니어로서 멘토님이 걸어온 시간과 거기서 느낀 고민들 그리고 S사의 회로설계 현직자에게서만 들을 수 있는 Real(?) True 스토리까지.. 정말 알찬 시간이었다. 멘토님도 스타트업, 대기업 보드설계, 대기업 회로설계 이렇게 다양한 경험을 해보신 분이라서 2시간이라는 짧다면 짧은 시간에 "설계"라는 직무에대해서 다양한 정보를 들을 수 있었다. 그리고 내가 고민학고 있는 Layout 엔지니어가 현업에서 어떤 포지션인지도 답변해주셔서 정말 도움이 되었다.

1주차 Online세션 강의자료. 무려 44쪽이나 된다..! 1주차 Online세션이 끝나면, 그 주부터 바로 1주차 Analog Design의 시작이다.

1주차 과제를 위한 Lt spice 템플릿과 Testbench Analog Design과제는 Two-stage Op-amp와 Rail-to-rail Op-amp를 설계하는 것이다. Tool은 Lt spice를 이용한다. Analog Design은 늘 그렇듯 까다롭고 설정할게 많기 때문에 멘토님께서 Lt spice 템플릿(?)을 제공해주신다. Two-stage Op-amp, Rail-to-rail Op-amp 구조에서 높은 DC gain과 적절한 Phase Margin, CMRR, PSRR, Slew, Power Consumption 등 제시해주신 Spec을 달성할 수 있도록, 두 Topology에 대한 분석 및 공부 -> 적용 -> 시뮬레이션 이 것을 반복한다.
여기서 배워야할 것은, Topology에 대한 이해와 문제해결, Spec간의 Trade-off관계를 알아야 하는 것이다. Two-stage Op-amp는 전자회로1에서 배우는 Single Stage CS Amp와 달리 입력을 서로 다른 MOSFET가 받는다. 이러한 방식을 Differential Fair라고 하는데, 두 입력 전위의 차를 입력전압으로 받아들이는 방식이다. 회로에는 항상 노이즈 성분이 있기 마련이고 VLSI환경에서는 소자가 매우 밀집되어 있어 하나의 노이즈가 여러 곳으로 동시에 들어간다. 만약 하나의 입력단자로 입력전압을 받는다면 노이즈가 고스란히 들어가기 때문에 별도의 LPF와 같은 노이즈 필터가 필요할 것이다. 여기에 착안해서 한 곳에서 발생한 노이즈가 여러 곳으로 동시에 퍼지기 때문에 "동일한 농이즈"가 동시에 들어온 두 입력 전위의 차를 회로의 입력전압(입력신호)로 사용한다면 입력노이즈가 구조적으로 상쇄되는 효과가 나타난다.
그리고 Differential Fair 위쪽에는 RD역할을 하는 Active Load, 아래쪽에는 Current Mirror로 되어있고, 다음 단에는 PMOS가 CS Amp구조로 신호를 증폭한다. Differential Fair에서 CS증폭기로 넘어가는 부분에 Rz와 C가 존재하는데, 이 두 소자의 역할은 Dominant Pole을 조정하여 충분한 PM을 확보하는데 도와주는 것이다. (자세한 것은 IDEC에서 심재윤 교수님의 아날로그 회로의 직관적인 해석강의에서 자세하게 다룬다.)
이렇게 Topology에 대한 분석을 하고... MOSFET으로 구성된 회로는 자체적인 Capacitance를 갖기 때문에 (회로 model에도 cap값이 포함되어있다.) 주파수 영역에서 1/jwC로 임피던스를 갖게되어 저항성분과 함께 작용하여 주파수에 따라 이득이 결정되는 주파수 응답을 갖는다. MOSFET의 L과 W를 변화시키면 전류 값이 변화하고 기생 커패시턴스 값이 변화하여 주파수 응답이 변화한다. 증폭기로 사용하기 위한 가장 기본적인 스펙은 80dB(10^4배)이상 100dB(10^5배)에 가까운 DC gain과 PM이 45도 이상을 갖도록 해야하는 것이다.-> 여기까지가 Topology에 대한 분석이라면 다음에는 무수한 시뮬레이션을 돌리면서 Trade-off관계를 찾아 다른 Spec을 높이는 작업을 한다. 예를 들어 100dB와 PM>45를 만족 했더라도 VDD와 Ibias가 크다면 추후에 칩으로 만들었을 때, 전력소모가 크기 때문에 Gain과 PM이 떨어지지 않는 선에서 VDD와 Ibias를 줄여도 괜찮도록 Width나 Length, Rz, C 등을 조절해볼 수 있다. 그리고 Width나 Rz, C가 너무 크면 Chip사이즈가 너무 커질 수 있기 때문에 수익성이 떨어지거나, 양산할 때 Mismatch 문제를 겪을 수 있다.
(좀 더 자세한 내용은 블로그의 다른 게시물에 포스팅할 예정입니다!) 결론은 과제를 해봤다보다는 ~한 과제를 하면서 ~한 문제/특성이 있었고 ~한 Application에 적용하기 위해 trade-off를 이용하여 달성하였다와 같은 경험이 중요하다! 다른 사람의 블로그만 봐도 잘 정리가 되어있어 안 해봐도 될 수도 있겠지만, 면접가면 나의 경험인지 아닌지는 다 드러나니깐..
자소서에 필요한 경험은 ~한 과제를 하면서 ~한 문제/특성이 있었고 ~한 Application에 적용하기 위해 trade-off를 이용하여 달성하였다 인 것 같다.
1주차 과제를 금요일까지 제출하고 나면 주말에 멘토님께서 피드백 영상을 제공해주신다. 약 18분 분량의 영상으로 피드백을 주셨다!!!
(자랑 좀 해보자면 지금까지 받은 과제물 중에서 제일 퍼펙트하다고...)
+ 후기글 작성하려고 피드백 영상을 다시보고 생각나서 내용을 추가하자면, Rail-to-rail의 성능이 Two-stage보다 월등히 좋은데, 전력소모가 3배 이상이라 Normal 모드 혹은 High Performance 모드에서는 Rail-to-rail을 쓰고 저전력 모드에서는 Two-stage를 사용하도록 모드 전환을 통해서 저전력 설계를 해볼 수 있다는 것도 배웠다.

Analog Design과제 피드백 영상 2주차: Digital Design
2주차 과제는 Digital Design으로 Intel Quartus Prime을 이용하여 8비트 Pipelined, Non-pipelined 8비트 RCA를 RTL설계를 해볼 수 있다. 자세한 것은 다른 게시물에 추가 포스팅 하겠지만, 본론부터 적자면 verilog문법을 배울 수 있었고, 디지털회로에서 자주사용하는 파이프라인 구조를 RTL에서 어떻게 구현하는지 왜 쓰는지 알 수 있었다.
Digital 회로는 아무래도 추상적인 것이 많다보니 이해는 가는데, 알겠는데, 와닿지 않는 것이 많았다. 나에게 있어 파이프라인 구조가 그것이다. 파이프라인이 이해가 되지 않으니 클럭을 쓰는 것도 뭔가 잘 모르겠고.. 암튼 알쏭달쏭했다.
Digital Design과제를 하면서 직접 설계하고 시뮬레이션을 통해서 결과를 비교하니까 드디어 파이프라인을 왜 쓰는지 이해했다!!
Pipeline구조는 로직게이트로만 이루어진 조합논리 사이에 D Flip-flop, Reigister와 같은 버퍼/메모리소자를 삽입한 구조를 의미한다.
동작을 위해서 클럭이라는 일정한 주기의 펄스신호를 사용하여 원하는 클럭에 연산, 데이터 입출력이 되도록한 synchoronuous system의 일종이다.
(컴퓨터 구조에서는 한 클럭동안 여러 명령어가 병렬적으로 처리될 수 있도록한 구조를 파이프라인 구조라고 한다.)
non-pipeline구조는 조합논리회로로만 이루어진 것으로 동작을 위한 클럭을 이용하지 않는다.
4비트 RCA덧셈기에 대해서 a3a2a1a0+b3b2b1b0+cin의 덧셈을 수행하기위해 각 Full Adder에 a3b3c, a2b2c, a1b1c, a0b0cin을 입력하고 출력으로 cout, s3,s2,s1,s0를 얻는다. RCA구조이기 때문에 s3까지 얻어서 s3s2s1s0라는 유의미한 데이터를 얻기위해서는 a0b0cin을 받아 출력한 캐리아웃이 다음 FA -> FA ...를 거쳐서 a3b3덧셈 FA까지 올라가야하기 때문에 비트가 커지면 정말 느려진다.
단위시간동안 처리할 수 있는 데이터양을 의미하는 Throughput역시 파이프라인 구조와 달리 버퍼층이 없기 때문에 매우 낮다.
반면에 파이프라인 구조의 RCA는 a3b3, a2b2, a1b1, a0b0cin입력을 D F/F을 통해 FA로 입력되고 FA의 sum과 cout출력에도 모두 D F/F이 달려있다. 첫 클럭신호에 a3b3, a2b2, a1b1, a0b0모두 F/F으로 입력된다. 한 클럭동안 a,b,carry 입력을 받아서 sum, carryout을 출럭해내기 때문에 최종 출력인 s4, cout을 만드는 a3, b3은 첫 클럭에 D F/F에 들어와서 F/F안에서 3클럭을 더 기다리고 4클럭 째에 FA로 입력된다. 파이프라인 구조의 버퍼/메모리 스테이지 덕분에 최종 출력을 위한 Throughput은 마지막단 FA와 F/F 딜레이로만 결정되어 non-pipeline구조보다 월등히 나은 Throughput을 갖는다. 하지만 파이프라인 RCA Critical Delay는 Critical Path로 결정이 되는데 첫 입력 a0b0cin 부터 최종출력 sum3까지 버퍼가 추가되어 delay는 더 나빠졌다. 10ns의 클럭신호에 대해서 적어도 8클럭이후에 출력이 나오기 때문에 딜레이는 매우 나빠지긴 했다. 설계가 더 복잡해지고 전력소모가 많아지는 건 덤!
파이프라인구조를 써서 딜레이는 나빠졌지만, 입력이 지속적으로 들어와서 많은 처리량을 요구할 때는 파이프라인 구조를 쓰는게 나을 것이다. 그리고 출력도 D F/F을 이용하여 클럭에 따라 출력되도록 했기 때문에 결과값에 불필요한 노이즈가 없다는 장점이 있다.
실제로 Delay와 Throughput은 반비례관계라서 감안해야하겠지만.

2주차 과제 피드백은 3주차의 online세션 시간에 진행되었다. Zoom에서 각자 자신의 과제물을 발표하고 멘토님께서 피드백 해주시는 방법으로 진행되었다! 개인발표가 개인적으로 좋았는데, 부트캠프 진행하고 면접까지 다 보고나서 후기를 쓰는 지금 느끼는 것은 자신의 과제물에 대한 자신의 생각을 정리해서 말해본 것이 직무면접에서 중요한 자신의 생각을 정리해서 말하는 것에 도움되지 않았나 싶다.
이 때 멘토님께서 파이프라인구조의 clock신호의 주기를 10ns으로 한 것을 출력이 망가지지 않는 선에서 더 낮추어서 딜레이시간을 더 줄여보라는 피드백을 주셨다.
개인적인 Review Point는 s7마지막 출력단에는 F/F을 달지 않았는데 추가해서 결과를 봐야겠다.
3주차: Online Session, Layout Design
3주차는 Layout Design이다. 이번 과제의 목표는 Static Free라는 무료 Layout Editor Tool을 이용하여 1주차때 설계한 Two-stage Op-amp나 Rail-to-rail Op-amp를 Layout으로 설계해보고, NAND2 또는 NOR2 layout 설계하기, Half Adder를 설계하는 것, 그리고 Mixed Signal Chip을 설계할 때 주의사항 조사하기이다.
사실 학부 때 28/32nm로 16비트 덧셈기를 설계해봐서 내가 더 배울 게 있겠어? 쉽게하겠지? 생각했지만 큰 오산이었다. Full custom 방식으로 Layout하는 Analog 회로가 정말 고려할 게 많고 장인정신으로 한땀한땀 한다는 것을 배울 수 있었다.
Layout Design은 디지털이든 아날로그 무형의 회로를 실현하는 단계이기 때문에 매우 중요하면서도 학부의 집적회로설계같은 과목을 별도로 이수하지 않으면 배우기 어렵고 리눅스 환경에서 동작하는 것이 많은데, 익숙한 Windows환경에서 동작하는 CAD Tool로 설계해볼 수 있는 것은, Layout Design을 배워보지 못한 사람에게는 매우 유용한 경험이 될 것 같다. (Layout Design은 고가의 Tool을 필요로 하기 때문에 대학원진학해서 배우는 것이 일반적이라는 점에서 회로설계 역량을 높이기 위해 Layout Design을 해보는 것은 매우 메리트가 있다고 생각한다.)
3주차 과제물은 1주차 Analog Design과제물처럼 영상으로 피드백을 주셨다. 나중에 부트캠프에 참가해서 피드백 영상을 보면 알겠지만 20분이라는 긴 시간동안 꼼꼼한 피드백 뿐만 아니라 해결하지 못한 과제를 해결하는데 도움이 될 인사이트도 제공해주시고, 자소서, 면접 또는 현업에서 어떻게 사용될 수 있을지 자세하게 알려주시기 때문에 매우 도움이 된다!

3주차 Layout Design과제 피드백. 새벽 1시라는 늦은 시간에도 열심히 올려주시는 멘토님... 4주차: Revision
4주차과제는 Revison으로 1,2,3주차 과제에 멘토님의 피드백을 반영해서 다시 설계해보는 것이다. 이 주차에 면접 일정이 3개나 잡혀서 Revision 과제는 잘 수행하지 못했고, 대신에 면접에서 부트캠프에서 배운 것을 어떻게 써먹었는지, 과제 피드백 할 점, 더 배우고 싶은 것을 추가해서 제출 했다. 4주차의 과제는 5주차의 세번째 온라인 세션 시간에 진행되었다.
5주차는 Online세션으로 4주차 Revision과제물에 대한 발표와 멘토님의 피드백, 잡*래*, 잡*리*아와 같은 구인구직 사이트활용법 등에 대해서 알려주셨다. 또한 멘토님께서 지난 기수의 활동한 멘티의 과제물과 S사의 지원서류를 가지고 부트캠프 과제물로 자기소개서에 어떻게 사용할 수 있는지 예시를 보여주셔서, 단순히 해봤다를 넘어서 어떻게 뽕(?)뽑을 수 있을 지까지 알려주시는 것이 매우 알찼다. 그리고 단톡방은 부트캠프 기간이 끝나면 사라지는 것이 아니라 3개월 정도 유지되면서 질의응답을 받아주신다고 하셨다. (A/S 성능 확실한 신뢰의 코멘토!)
3. 수료 후 도움된 점
4주차 때 3개의 면접을 봤고 그 중에서 2곳은 반도체 회로설계 직무였다. 자기소개서를 직무부트캠프 기간에 작성하게 되어서 자기소개서 자체에는 직무 부트캠프 내용을 많이 적지 못했지만, 부트캠프가 끝나갈 때 쯤에 면접일정이 잡히면서 결과적으로 큰 도움을 받게 되었다.
로직설계(디지털 회로)면접 중에서, Digital Synchornous System이 무엇인지, F/F과 Latch의 차이점이 무엇인지, Glitch가 무엇인지 물어보는 질문을 받았고, 2주차 Digital Design과제를 수행하면서 공부를 했던 내용이었기 때문에 무리없이 답변할 수 있었다.
그리고 추가 질문으로 로직 설계 말고 아날로그 설계 직무를 맡게되면 수행가능한지 여쭤보는 질문에 대해서 학기가 끝난 후에도 회로설계에 대해서 공부하고 있었고 Two-stage Op-amp와 Rail-to-rail Op-amp를 설계해봤다고 말씀드렸고, 3주차 Layout Design과제를 하면서 배운 웨이퍼상의 도핑농도 차이로 발생하는 Mismatch를 줄이는 Layout 기법에 대해서 공부했다고 답변했다. 면접관님은 오ㅇ0ㅇ하시는 표정과 함께 끄덕여주셨다. 이 글을 쓰는 시점에서 아직 발표는 나지 않았지만, 적어도 부트캠프공부가 곧 면접준비가 되었다는 점. 그리고 부트캠프의 커리큘럼이 Analog, Digital, Layout 3가지로 구성되어있으면서도 실무적으로 사용하는 IP들이기 때문에 매우 큰 공부가 되었다. 만약 최탈하게 되어 다시 자기소개서를 쓰게 된다고 하더라도 부트캠프 하기전보다 1000자는 쓸말이 많아 진 것은 확실하다.
사실 학부 수업, 학부 프로젝트도 주어진 것을 수동적으로만 하면 남는게 없다. 근데 학교에서 하는 것도 적극적으로 찾아보고 고민하고 공부한 과제물은 자기소개서에 녹여 낼 수 있다.
코멘트 부트캠프도 마찬 가지다. 교수님보다 친절하고 또 현업에 계셔서 잘 알고 계시는 멘토님이라도 본인이 하고자 하는 의지가 없다면 솔직히 얻어가는 것 없이 돈만 날리는 것이라고 생각한다. 돈 18만원 대학생에게 있어 크다면 큰 돈이지만 작다면 또 작은 돈이다. 그리고 학점도 안 나오고 누가 뭐라고 하는 사람이 없기 때문에 자기 의지에 달려있는 것 같다.
반도체 회로설계에 관심이 있고 직무역량을 쌓고 싶다면 꼭 들으면 좋겠다고 추천한다!
'본 후기는 직무부트캠프를 직접 구매하고 수강한 후 작성하였으며, 후기 작성 이벤트에 참여하여 소정의 원고료를 받았습니다.'