잡플레닛에서 다른 사람 이력서를 보다가
아래와 같은 내용의 문구를 찾아봤다
난 해본적이 없는거라 흥미로워서 gpt와 함께 따라해봤다.
4. 협업 능력
[Verilog로 Snake game을 구현하다]
학부 디지털시스템 실험 프로젝트로 FPGA를 활용하여 원하는 기능을 구현하는 프로젝트를 진행한 적이 있습니다.
당시 2학년으로 전공에 대해 많이 공부하지 않았던 저는 베릴로그 상에서 최대한 구현할 수 있는 간단한 게임을 만들자고 의견을 내었고, 다른 팀원도 동의하여 외부 8x8 LED dot matrix를 추가로 구입하여 matrix 위에서 뱀이 이동하며 사과를 먹으면 점수가 올라가는 게임을 구현하였습니다.
설계할 모듈이 많아 각 모듈의 input output과 기능을 정의한 후에 나누어 각자 구현하였습니다. 저는 게임 규칙과 점수 표시 모듈을 작성하였고, 다른 팀원은 디코더와 피에조, matrix data I/O모듈을 작성하였습니다. 외부 출력으로 연결한 8x8 LED 표시장치를 연결하는 중 LED의 빛의 세기가 원하는 만큼 나오지 않던 문제가 발생하였고, 저는 아직 전자회로를 배우지 않았던 상태라 한 학년이 높은 팀원이 BJT를 이용하여 전류를 증폭시켜 문제를 해결하였습니다. 또한 Data I/O spec이 없는 LED 장치를 사용하는 과정에서 데이터 형식을 맞추기 위해 전류를 x축과 y축 대응 쌍에 흘려보며 데이터를 수집하고 Decoder를 구현하였습니다.
구현한 모듈을 합쳐 전체 시스템을 FPGA에 올려 구현할 때, 심각한 문제가 발생하였습니다. 서로 같은 클럭을 가지고 설계하다보니 모듈을 합칠 때 입력 클럭과 게임 구동 클럭이 겹쳐 입력이 인식되지 못하는 문제가 계속 발생하였습니다. 토론 끝에 게임 규칙에 관한 모듈의 클럭을 1MHz로 변환하기로 하였고, 이는 사람이 버튼을 누를 때 잘 인식시키기 위해서였습니다. 결과적으로 클럭을 1MHz와 100Hz 두 개로 분리하여 뱀의 위치는 큰 주파수를 이용하고 이동키 입력은 작은 주파수를 이용했습니다.
프로젝트 제출 전날까지 함께 밤을 새며 결국 클럭이 겹치는 문제를 해결하였고, 다른 사람과 협동하여 무언가를 만들어 냈던 좋은 경험이 되었습니다.
'Project' 카테고리의 다른 글
| C#으로 (GIS) 프로그램 만들어보기 +@ C++로 마이그레이션 해보기 (0) | 2026.04.06 |
|---|---|
| RISC-V IP 제작 해보기 (0) | 2026.04.06 |
| 음향 카메라 + RGB 카메라 (0) | 2026.04.06 |
| ViTCoD (0) | 2026.04.05 |
| C socket (0) | 2026.04.05 |