반도체 칩. 개발 관련쪽에 필요한 프로그래밍 언어는 어떤게 좋을까요?
반도체 칩 개발 관련쪽에 일을 하려고 하는데 사전 준비가 필요한 프로그래밍 언어는 어떤게 좋을까요?
프로그래밍 언어를 배워서 실제 프로젝트도 수행해야 입사 시 혜택을 받을 수 있는지도 알려 주셔요
아직 학생이신지 다른쪽에 근무를하고 계신 직장인이신지는 모르겠지만
반도체 개발관련 업무는 프로그래밍언어 외에도 여러가지가 있습니다.
저희 회사 기준으로 보면 개발에관련된 업무로는 4가지 정도 되는거같네요.
1. 아날로그 설계
- 백두님이 질문한 프로그래밍 언어쪽은 소프트웨어쪽에 속하는 개발군이구요, 아날로그도 툴을 사용하여 소프트웨어 외의 필수적인 개발입니다. 자체 공정라인이 없는 회사들은 공정회사에서 제공하는 소자들(PMOS,NMOS,저항,캐패시터)을 가지고 기본적인 BGR/UVLO/OSC/TSD회로 등등 많은 회로를 설계하고 그 아날로그 들을 내 입맛에 맞도록? 움직이게 해주는 로직(대부분 소프트웨어 언어로 개발) 이 합쳐져 칩설계가 완성됩니다.
2.소프트웨어 설계
-반도체 관련 코딩언어로는 C언어관련과 Verilog 언어등이 주로 사용되며, 아날로그 설계자들과 함께 협업하여 Logic설계를 하게됩니다.
현재 반도체관련 회사에 종사하는 사람으로써 아날로그보다는 소프트웨어 개발이 좀더 전망이 밝아보입니다.
3. Layout 엔지니어
- 아날로그와 소프트웨어 설계가 완료되었다면, 공장에서 웨이퍼에 칩을 만들어 내야하겠죠?
실제로 설계된칩을 공정에서 IC로 만들어낼수있게 표현해주는 작업이 Layout입니다. 만들어진 Layout데이터를 가지고
제조 공장에서 실리콘의 층별 마스크를 제작하여 웨이퍼가 만들어지고 그웨이퍼를 패키징하여 나오는것이 칩입니다.Layout의 설계및 배치에 따라 칩의 특성이 좌우될수도 있습니다.
4. TEST엔지니어(FA)
-칩이 생산되어 나오면 칩의 특성TEST를 해야합니다. 제대로 설계가되었는지 확인등 ..
그러기위해선 IC만가지고는 테스트를 할수없습니다. IC보드라는 것을 만들어서 외부에필요한 소자(저항,캡,인덕터등) 을 붙이고, 입력과 출력등을 찍을수있는 포인트등도 필요합니다. 그런 보드를 설계하고 IC를 붙여 특성평가를 하는 엔지니어입니다.
반도체는 여러사람의 손을거쳐 칩이 완성됩니다.
위 4개 업무 외에도 여러 업무들도 필요합니다.
질문주신 설계 관련 코딩언어는 C/Verilog 쪽이구요, 신규 입사시에는 자격증이나 경력같은거 크게 요구하지 않습니다.
학교에서 배워봤다는것, 학교에서 진행했던 프로젝트 등만 있어도 입사가능하며, 모든건 입사 후에 다 처음부터 배우게 됩니다.
너무 겁먹을 필요없습니다. 오히려 입사전 어떤 업무들이 정확히 있는지 파악하고 하고싶은 부서를 고민해보시는게 좋을것 같습니다.
기업 입사시에 sw 알고리즘 시험을 보는곳이 늘어나고 있습니다.
sw직군같은경우 보통 c, c++언어 위주로 시험이 이루어지고 있고, 시험에 합격해야 면접기회가 주어지고 있습니다.
c, c++언어로 알고리즘 공부하시고 시험준비하시면 될 것 같습니다.
알고리즘 시험은 문제를 여러번 분석해보면 무슨알고리즘을 사용하면 될지 감이 잡히므로 자주 접해보는것이 도움될것입니다.
안녕하세요 4년차 fw개발자입니다.
Ssd fw는 현재 c++로 구현이 되어있습니다.
다른 언어에 비해 속도와 메모리가 적은 c++가 적은 메모리를 가진 fw solution에 적합한 언어입니다.
입사하기전에 컴퓨터 구조와 알고리즘을 많이 공부하셔야합니다.
컴퓨터의 저장장치로 쓰이니 컴퓨터 자체를 잘알아야해요
감사합니다.
희망하시는 분야가 아날로그, 디지털 혹은 Mixed signal 설계에 따라 달라질 수 있습니다.
아날로그 분야라면 프로그래밍언어 보다는 EDA 업체의 디자인 툴을 다룰 수 있는 학과 혹은 랩에서 설계 관련 전공 지식과 툴 사용 능력을 배야하시는 게 더 유익할 것이고 디지털 설계 분야를 희망하신다면 베릴로그 계열 코딩 능력과 IC compiler 등을 통한 PnR(place and routing) 관련 지식과 노하우를 기르시는 게 유익할 것 같습니다.
Mixed signal은 위 2가지를 유기적으로 다루면 가장 좋겠으나 개발자 1인이 진행하는 경우는 거의 드물고 파트 혹은 팀으로 이루어져 전문분야를 담당하는 경우가 더 보편적이니 참고하시면 되겠습니다.
굉장히 일반적인 Depth로 답변드리니 참고 부탁드립니다.