brunch

You can make anything
by writing

C.S.Lewis

by 아이언드래곤 May 27. 2017

VLSI Chip design project

스웨덴 린셰핑 유학생활 중 경험한 두 번째 프로젝트

스웨덴에서 석사과정은 어떻게 진행되나요?

사람들이 나에게 정말 많이 물어본 질문 중 하나이다. 스웨덴은 우리나라와 다르게 한 연구실에 소속되어 프로젝트나 연구를 진행하는 것이 아니라, 학부시절처럼 똑같이 수업을 듣고 시험을 보고 학점을 받는다. 학부시절과의 차이점이라면 그 수업의 난이도가 다르다는 점과 그룹 과제, 즉 프로젝트 형식의 과제가 굉장히 어렵다는 점이 아닐까 한다. 


이번 포스팅에서는 내가 스웨덴에 와서 석사 공부를 하면서 진행한 두 번째 프로젝트를 소개하고자 한다. 이 프로젝트가 나에게 특별하게 다가온 몇 가지 이유가 있다. 첫 번째는 이 프로젝트를 진행하는 Course가 린셰핑에서 모든 과정 중에서 비싼 course로 손가락에 꼽는 course라는 것이고 두 번째는 내가 진행하는 Master program에서 가장 규모가 큰 프로젝트였기 때문이다. 


1. VLSI Course 설명

먼저 이 Course는 6명이 한 그룹을 구성해 5개의 주제 중 하나를 선택해서, VLSI circuit을 설계하는 것이다. VLSI 란 Very Large Scale Integrated라는 뜻으로, 해석하면 사실 좀 유치한 이름이라고 느껴지는데 비 전공자를 위해 간단하게 설명하자면 컴퓨터나 핸드폰 등의 CPU 같은 Microproccesor Chip을 만든다고 생각하면 된다. 물론, 우리는 공부하는 것이므로 실제로 쓰이는 수준의 Chip 보다는 훨씬 작은 규모로 설계를 하지만 그 설계 과정을 모두 따라가 보면서 프로젝트를 진행한다고 보면 된다.


설계는 크게 Full custom design과 Automated design으로 나뉜다. 먼저 Automated design을 설명하자면, 이미 만들어진 작은 디자인들을 이용하여 그들을 조합해서 내가 원하는 기능을 가진 칩을 만드는 것이다. 아무래도 이런 식으로 디자인을 하면 보다 간단하게 디자인을 할 수 있고, 시간이 훨씬 적게 든다는 장점이 있다. 다음으로 Full custom design은 한마디로 밑바탕부터 모두 디자인을 하는 것으로 시간이 훨씬 많이 들지만, 내가 원하는 대로 디자인이 가능하며, 기능에 따라 좀 더 최적화된 칩을 만들 수 있다는 장점이 있다. 이 수업에서 진행하는 방식은 Full custom design으로, 밑바탕부터 어떻게 칩이 만들어지는지 이해할 수 있도록 수업이 구성되어 있다.


조금 더 자세하게 설명하자면, 우리가 쓰는 전자제품 안의 칩들은 트랜지스터라는 아주 아주 아주 작은 부품들의 집합으로 이루어져 있다. 그 크기는 나노미터 단위로 45nm, 14nm 등 점점 작아지고 있다. 나노미터의 크기가 어떤 크기인지 감이 잘 안오기 마련인데, 그래서 사람들은 이 크기를 설명할 때 머리카락 굵기로 비교를 한다. 머리카락 굵기는 약 100um (100 마이크로미터) 정도로, 이 트랜지스터는 머리카락 굵기의 천분의 1 보다도 작다는 얘기이다. 이게 무슨 역할을 하냐 하면, 디지털 세계가 흔히들 0과 1로 이루어져 있다는 얘기를 많이 들어봤을 것이다. 그 0과 1을 나타내는 게 바로 이 트랜지스터이다. 일종의 스위치 같은 개념으로 전기가 통하면 1, 안 통하면 0 같은 동작을 만들어 준다. 그 트랜지스터가 모이고 모여서 (100만 개 이상, 최근에는 억 단위) 우리가 사용하는 마이크로프로세서 칩이 탄생하는 것이다. 


이 트랜지스터 하나는 또 특수하게 공정이 된 실리콘으로 만들어지고, 금속으로 상호 간의 연결이 이루어진다. 그래서 우리가 하는 Full custom은 이 작디작은 트랜지스터의 기초 재료부터 어디에 위치시키고 금속으로 어떻게 연결시킬 것인지 하나하나 모두 결정하는 것이다.


그리고 프로젝트가 완료되면 설계된 칩을 실제로 제조업체에 송부하여 제작을 해주는데, 이 제작이 한 칩당 20,000 sek (약 260만 원)의 비용이 든다고 한다. 그리고, 제조가 끝난 후 다음 학기에 실제 칩을 볼 수 있는데 그 칩으로 실험을 진행하는 course로 이어진다. 원한다면, 학교에서 열리는 학회에 출품할 수도 있고 만약 그 퀄리티가 좋으면 유럽에서 진행하는 학회에 참석할 기회도 얻을 수 있다고 한다.


실제 학교 한편에 이전 수업에서 제작한 칩이 전시되어 있다.


2. 설계 과정

설계 과정은 크게 3가지 (Architectural level, Transistor level, Layout level)로 나뉘었다. 그리고, 진행 방식은 Top-down 방식을 채택하였는데, 이 방식은 한마디로 설명하면 큰 그림을 먼저 그리고 점점 세부적인 그림을 완성시켜 나간다는 콘셉트이다.


2-1 Architectural Level

Behavior level이라고 불리는 이 단계는 원하는 기능을 만들기 위하여 마술을 부리는 단계이다. 어떻게 보면 큰 그림을 그리는 것이므로 가장 중요하다고 생각할 수도 있다. 간단하게 설명하기위해 예를 들어서, 움직이는 로봇을 만드는 게 목표라고 하자. 그 때 Architectural level design은 A 버튼을 누르면 왼쪽 다리가 움직이고, B 버튼을 누르면 오른쪽 다리가 움직여라.라고 만드는 것이다. A 버튼을 눌렀을 때, 어떻게 왼쪽 다리가 움직이게 만들까 라는 건 다음에 생각하기로 하고 일단은 그렇게 된다고 해보자.라는 것이다. 그런 식으로 전체적으로 동작 방향을 짜 놓으면 프로젝트 전체의 방향성이 결정되고, 자연스럽게 업무 분담을 나누어서 작업할 수 있다.

각각의 블록이 어떤 행동을 할지 나타낸다.


이 단계에서는 Verilog-A라는 컴퓨터 프로그래밍 언어를 사용한다. 이 프로그래밍 언어를 사용하면, 아무리 마술을 부리는 단계라고 하지만, 물리적, 전기적으로 불가능한 행동을 수행할 수 없도록 제한을 해주며, Tool을 이용한 시뮬레이션도 가능하다. 이 과정은 내가 예전에 포스팅에서 기술한 VHDL과 많이 닮아 있어, 이전에 수행한 프로젝트에서 배운 개념을 많이 적용할 수 있다.

간단한 Verilog-A code (DC-DC converter)

2-2. Transistor Level

이 단계에서는 본격적으로 앞서 든 예의 "A 버튼을 눌렀을 때 어떻게 왼쪽 다리를 움직이게 할까"를 결정하는 단계이다. 어떻게 보면 가장 중요한 단계라고도 할 수 있는데, 앞서 기술한 트랜지스터를 활용하여 전압이 얼마나 인가되고, 신호는 어떻게 전달되며, 해당 동작을 위해서 전류 전압이 어떻게 구성되는지 세세한 것이 모두 결정되는 단계이다. 그런 동작을 결정하기 위해 트랜지스터의 크기도 어떤 크기가 가장 적합한지 조율하고, 시뮬레이션을 통해 결괏값을 보고, 예상되는 단점들을 수정하는 작업이 계속 진행된다. 

Oscillator block의 일부분

2-3. Layout Level

Layout은 이제 앞에서 설계한 Transistor를 본격적으로 어떤 물질을 사용해서 어디에 위치시키고, 어떤 금속을 사용해서 어디에 연결할 것인지를 상세적으로 설계하는 단계이다. 실제 물질을 이용해서 설계를 하게 되면, 예상치 못한 결과들이 발생할 수 있는데, 기본적으로 금속류의 크기나 서로 간의 거리에 따라 상호작용이 생기기 때문이다. 만약 이전 단계에서 이러한 문제점을 미리 예상하고 설계를 잘 해놓았다면 사실상 단순 작업이 되기 쉬운데, 사람 일이란 게 그렇게 잘 풀리지 않는다. 하하하 여기에서 발생한 문제점 때문에, 처음에 계획한 설계단계를 완전히 뒤엎는 경우도 흔치 않게 발생하기 마련이다.


Logic statemachine의 Layout 일부


3. 나의 프로젝트

이제 내가 진행하는 프로젝트에 대해 설명하고자 한다. 총 다섯 가지 주제 중에 우리가 선택한 주제는 Piezo electric energy havester로 Piezo device를 이용해서 발생하는 전기를 저장하는 장치를 만드는 것이다. 이게 무슨 외계어냐 하면 일단 Piezo device는 진동을 전기적 에너지로 바꾸는 장치로써, 일상생활에서 걸어 다니거나 자동차가 움직이거나 할 때 생기는 진동을 전기 에너지로 바꾸어 사용해보자는 취지로 만들어진 기계이다. 아무래도 스웨덴이 지속 가능한 개발에 많은 투자와 관심을 보이고 있기에, 일상생활에서 우리가 느끼지 못하고 소모되는 에너지를 활용하자는 취지에서 나온 주제이다. 걸어 다니면서 발생하는 진동으로 스마트폰의 배터리를 충전한다고 생각해보자 얼마나 유용할까. (사실, 스마트폰 충전을 하기엔 많이 부족하지만...)


Piezo device, 이미지 출처 :Yogesh K. Ramadass, “ An Efficient Piezoelectric Energy Harvesting ..."

그리고 우리가 만드는 것은 이 Piezo device에서 생성되는 전기 에너지를 효율적으로 저장하여 활용할 수 있는 장치를 만드는 것이다. 좀 더 세부적으로 들어가고 싶으나 시작하면 끝이 없을 것 같아서 세부적인 내용은 생략하고, 내가 겪은 과정만 간략하게 기술하려고 한다.


3-1. 모든 것은 Up to you

프로젝트를 진행하면서 첫 번째로 당황했던 것은 학교에서 프로젝트에 관련한 내용은 위에 기술한 목표와 만족해야 하는 조건 들만 제시해주고 어떻게 만들어야 한다는 가이드라인이 없었다. 모든 것은 우리가 어떻게 만들어갈까에 달렸다는 것이다. 그래서 우리는 너무나도 자연스럽게 도서관의 데이터베이스를 뒤지는 것으로 프로젝트를 시작해야만 했다. 이미 Energy harvester에 대한 많은 논문이 있어서 그것들의 내용을 이해하고 우리 프로젝트에 어떻게 적용할 것인지에 대한 토론이 처음에 계속 이루어졌다. 그래서 Supervisor의 도움이 필수 불가결했는데, 어떠한 방법이 우리 프로젝트에 적용이 가능할 지부터 적용하는데서 생기는 문제점을 물어보고, 같이 토론해보고 하는 과정이 프로젝트 진행하는 기간 내내 이루어졌다.


이미 널리 알려진 이론을 그저 따라 해 보고 배우는 것이 아니라 새롭게 나의 이론을 만들고, 나만의 방법을 만드는 것이었다. 물론, 다른 논문에서 많이 참고는 하겠지만...


3-2. 적당히란 없다.

이 프로젝트를 진행하면서 많이 느낀 것은 설계를 함에 있어서 적당히는 없다는 것이다. 그냥 이 프로젝트가 수업을 이수하기 위한 하나의 과제라고 생각하면, 그냥 조건만 만족하는 선에서 그치면 상관없겠으나 이 프로젝트도 규모는 작을지언정 하나의 설계로써, 모든 것에 대해 이유가 필요했다. 크기를 결정할 때에도 왜 더 크게 만들진 않았나 혹은 더 작게 만들 순 없었나 등부터 왜 이런 값을 선택했는지, 왜 이런 방법을 선택했는지에 대한 모든 이유가 필요했다. 그냥 적당히 선택했더니 동작이 잘 되었어요 란 대답은 절때 할 수 없었다. 그렇기 때문에 사소한 부분에서부터 모든 걸 이해하고 넘어가야 했고 왜 설계가 어려운지 배울 수 있었다. 그래서인지 이 프로젝트는 나에게 학교에서 하는 과제가 아니라 실제로 현장에서 하는 업무 같은 느낌으로 다가왔다.



4. 프로젝트 진행 중 사용한 프로그램들

이번에 프로젝트를 진행하면서 많은 프로그램을 처음으로 써보게 되었다. 회로 설계 그 자체를 하기 위한 도구인 Cadence부터 문서 편집 도구인 Latex, 팀원들과의 커뮤니케이션 도구인 Slack까지. 우리나라에서 팀플을 할 때와 사뭇 다른 느낌이라 이러한 프로그램들을 소개해보고자 한다.


4-1. Cadence

모든 프로젝트 과정은 Cadence라는 Design Tool로 진행이 되었다. Cadence는 일반 산업 현장에서도 쓰이는 대표적인 설계 프로그램으로 반도체 설계를 하기 위한 프로그램이다. 기본적인 전기 소자들과 앞서 말한 트랜지스터뿐만 아니라 기본적인 IP design (미리 설계된 디자인)들도 제공해준다. 그리고 이 프로그램을 통해 시뮬레이션을 하고 그 결괏값을 관찰함으로써 프로젝트는 진행되었다. 여담으로 실제 현장에서도 쓰이다 보니 이 프로그램만 잘 다뤄도 직업을 구할 수 있을 거라고 교수님이 자주 강조하셨다. 


프로젝트 진행 도중 시뮬레이션을 정말 많이 했는데, 양이 어마어마하다 보니까 에러도 많이 나오고 한 시뮬레이션을 진행하는데 하루 이상이 걸리는 상황이 자주 발생하였다. 최종 시뮬레이션은 5일이 넘는 시간이 걸려서 우리는 학문을 배우는 것뿐만 아니라 인내심을 길러주는 정신수양까지 겸할 수 있었다. 이 프로그램을 통한 시뮬레이션 시간은 실제 기업에서도 너무 오래 걸리기 때문에 이걸 개선하기 위해서 많은 노력이 행해지고 있다고 한다.


한동안 이런 종이가 자주 발견되곤 했다.


4-2. Latex

프로젝트를 진행하면서 문서 작성을 해야 할 일이 많았는데, 그때마다 사용한 것이 Latex라는 것이다. 아는 사람은 알고 모르는 사람은 모르는 도구로써, 나는 여기 유학을 와서 처음 알게 되었다.


왼쪽 창에서 문서 작성을 하면 오른쪽과 같이 결과물이 나온다


Latex는 일종의 문서 편집 도구로써, 위에 이미지에서도 볼 수 있듯이 왼쪽 코드처럼 입력하는 곳에 내용을 입력하면 오른쪽 이미지처럼 아주 그럴듯하게 문서를 출력해준다. 특히 공대에서는 일반 워드로 작성하기 번거로운 수식이나 그림 삽입 등을 편하게 할 수 있으며 특별히 문서의 스타일을 신경 쓰지 않아도 자동으로 작성해주어 많은 수고를 덜 수 있다. 처음에는 작성할 때 각종 규칙이 있어서 적응하는데 조금 힘들었지만, 한번 배우고 나니 그다지 어렵지도 않아서 정말 유용한 도구인 것 같다. 이 Latex는 프리웨어로 사용할 수 있는 곳이 많으니 찾아서 자신과 맞는 Latex를 사용해보도록 하자.


4-3. Slack

Slack은 일종의 메신저로, 우리나라에서 팀플을 시작하면 일단 카카오톡 그룹채팅을 먼저 파는 것처럼 이 곳의 친구들은 Slack을 많이 이용한다. 메일 주소만 있으면 특정 주제로 그룹을 만들 수 있으며, 그곳에서 각종 대화 및 파일 공유를 자유롭게 할 수 있다.

Slack 사용 화면

Slack을 써보면서 장점은 카카오톡처럼 본인의 연락처를 공유할 필요도 없고, 컴퓨터와 모바일 모두 다 사용이 가능하다는 점이다. 그리고, 그룹 안에 주제별로 채널을 만들 수 있어서 대화나 파일을 분류해서 올릴 수도 있다. 팀원들 간에 연락하는 방법은 페이스북으로 그룹을 생성하는 등 여러 가지 방법이 있을 수 있으나, 이 Slack은 이러한 그룹 프로젝트에 최적화되어있다는 느낌을 지울 수가 없었다. 여러모로 참 유용하게 사용하였다.


5. 끝으로

공부를 계속하면서 느끼는 것인데, 내가 공부하는 프로그램은 학기마다 큰 프로젝트가 있어 그 프로젝트 위주로 학기가 진행되는 것 같다. 프로젝트에 대부분의 시간을 할애하다 보니 다른 수업은 아무래도 뒷전이 되기 마련이고, 따라가기 급급해진다. 그래서 스웨덴어 수업을 꾸준히 듣는데도 스웨덴어 실력이 잘 늘어나지가 않는다. 흑흑...


이제 학기 마지막 시험이 남아서, 여름방학이 슬슬 다가오고 있다. 이 곳의 여름방학은 상당히 긴 편이라서 다들 여름에 어떻게 지낼까에 대한 생각을 많이 한다. 여행을 가는 친구들도 많고, 본래 집으로 돌아가는 친구들, 여름에 돈을 벌기 위해 일을 하는 친구들 등 다양한 사람들이 다양한 활동을 계획하고 있다. 이전에 일을 하면서 학생 때가 가장 부러운 것이 방학이 있다는 점이었는데, 슬슬 나에게도 방학이 찾아오고 있어서 매우 기대 중이다.


다음 포스팅은 스웨덴 린셰핑에 위치한 Second hand shop에 대해 포스팅하고자 한다. 중고거래가 활발한 스웨덴에서 중고 물품들을 보고 구매할 수 있는 매장을 한번 찾아가 볼 예정이다.


마지막으로는 내가 요즘 주식으로 먹고 있는 햄버거 사진을 올리면서~ 다음 포스팅에서 봐요~


Hej då

햄버거를 만드는 법을 알게된 이후, 나는 더이상 맥도날드에 갈 수 없는 몸이 되었다. 직접 만드는게 싸고 맛있어!




Piezo  Device 이미지 출처 : Yogesh K. Ramadass, “ An Efficient Piezoelectric Energy Harvesting Interface Circuit Using a Bias - Flip Rectifier and Shared Inductor. 

매거진의 이전글 유학을 위한 짐싸기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari