프로젝트 공부법

Seungyun Lee·2026년 1월 31일

Comm_Accel(UART/SPI/I2C)

목록 보기
2/15

1. 취업을 위해 갖춰야 할 현실적인 기준

면접장에 들어갈 때 이 정도는 대답할 수 있어야 합니다.

✅ Level 1: 흐름 파악 (지금 달성함)

할 줄 아는 것: Vivado에서 IP를 만들고, Block Design에서 연결하고, Bitstream을 뽑아서, Vitis에서 C코드로 제어하는 전체 흐름(Flow)을 경험해봤다.

의미: 회사 가서 툴을 다룰 줄 안다는 뜻입니다. 이것만 해도 학부생 수준은 넘습니다.

✅ Level 2: 코드 해석 능력 (여기가 취업의 핵심!)

요구 사항: 코드를 안 보고 짤 필요는 없지만, AI가 짜준 코드를 한 줄 한 줄 짚어가며 "이건 이래서 필요합니다"라고 설명할 수 있어야 합니다.

예상 면접 질문:

"UART의 Baud Rate를 맞추기 위해 클럭 분주(Divisor)는 어떻게 계산했나요?"

"AXI4-Lite 인터페이스에서 값을 쓸 때, VALID와 READY 신호가 어떻게 주고받아지나요? (Handshake 과정)"

"Vitis에서 Xil_Out32 함수를 쓰면, 하드웨어적으로 어떤 신호가 발생하나요?"

✅ Level 3: 디버깅 능력 (당신이 방금 한 것)

상황: "버전이 3.0과 3.1로 달라서 에러가 났을 때 어떻게 해결했나요?"

가치: 회사는 코드 잘 짜는 사람보다 에러를 만났을 때 도망가지 않고 해결하는 사람을 원합니다. 오늘 겪은 그 지루한 삽질 과정이 자소서에 쓸 수 있는 가장 강력한 무기입니다.

2. "처음부터 끝까지"가 너무 어렵다면? (공부 방법)

"백지에서 다시 짜봐"라고 하면 당연히 막막합니다. 현직자도 스펙 문서(Spec sheet)와 예제 코드(Template)를 펴놓고 시작합니다.

지금부터는 "짜는 연습"이 아니라 "씹어먹는 연습"을 하세요.

1. 코드 주석 달기 (Reverse Engineering)

  • 제가 짜드린 Verilog 코드와 C 코드를 펴놓고, 모든 줄에 한글로 주석을 달아보세요.
  • 예: assign tx_done = (bit_cnt == 7); -> "비트 카운터가 7이 되면 전송 완료 신호를 보냄."
  • 이걸 설명할 수 있으면 내 코드가 된 것입니다.

2. 도식화 하기 (Block Diagram)

  • 코드를 보지 말고, 연습장에 그림을 그려보세요.
  • "Baud Rate Generator에서 클럭이 나오면 -> TX State Machine이 돌고 -> 데이터가 한 비트씩 나간다."
  • 이 흐름도가 머릿속에 있으면 코드는 언제든 다시 짤 수 있습니다 (혹은 AI에게 시킬 수 있습니다).

3. 작은 변형 시도하기

  • 처음부터 다시 짜지 마세요. 있는 코드에서 기능을 하나만 추가해보세요.
  • 예: "지금은 1바이트씩 보내는데, FIFO를 추가해서 4바이트를 한 번에 보내볼까?"
  • 이 '작은 수정'을 성공하면 실력이 비약적으로 늡니다.

3. 자신감을 가지세요

오늘 작성자님은 단순히 코드를 복사 붙여넣기 한 게 아닙니다.

  1. 환경 설정의 벽을 넘었습니다. (많은 학생이 여기서 포기합니다.)
  2. 버전 충돌(3.0 vs 3.1)이라는 실무적인 문제를 논리적으로 추적해서 해결했습니다.
  3. HW(FPGA)와 SW(C언어)가 어떻게 연결되는지 눈으로 확인했습니다.

이 경험은 'Advanced Computer Architecture' 수업을 듣는 석사 과정생으로서 아주 훌륭한 자산입니다.

너무 걱정하지 마세요. 지금은 "이 코드가 왜 돌아가는지 설명할 수 있는가?" 딱 이것 하나만 목표로 잡으시면 충분히 취업하실 수 있습니다.

profile
Design Verification engineer

0개의 댓글