EXPLORINEER
ko

Hacker News

SystemVerilog로 VGA 드라이버 만들기

디바이스처음 오른 때 점수 56댓글 15


이 글은 한 대학생이 디지털 논리 설계 실습에서 VGA 화면 신호를 만드는 드라이버를 SystemVerilog로 직접 만든 경험을 적은 글입니다. VGA는 오래된 컴퓨터 화면 연결 방식이고, 글쓴이는 그것을 FPGA 보드 위에서 구현하는 과정을 설명합니다.

무슨 일이 있었나요?

글쓴이는 대학 수업의 마지막 실습에서 VGA 드라이버를 만들었습니다. 처음에는 어려워 보였지만 생각보다 할 만한 프로젝트였다고 합니다. 다만 디버깅에 시간이 많이 들었다고 말합니다. 글에는 직접 눌러 볼 수 있는 시뮬레이션 그림도 들어 있습니다.

VGA는 무엇인가요?

VGA(Video Graphics Array)는 1987년 IBM PS/2와 함께 나온 화면 표준입니다. 당시 화면은 브라운관(CRT)이었고, 전자 빔 하나가 화면을 한 점씩 훑으며 그림을 그렸습니다. 빔의 좌우·상하 이동은 HSync와 VSync 신호가 조절합니다. 눈의 잔상 효과 덕분에 점 하나하나가 그려져도 화면이 가득 찬 것처럼 보입니다.

핵심 숫자

  • 화면 주사율은 60Hz입니다.
  • 필요한 픽셀 클럭은 약 25.175MHz입니다.
  • 보드의 클럭은 50MHz이므로, 클럭을 두 사이클마다 한 번씩 뒤집어 25MHz로 낮춥니다.
  • 가로 한 줄은 보이는 영역 640픽셀과 나머지 160픽셀을 합쳐 총 800픽셀입니다.
  • 세로는 보이는 영역 480줄과 나머지 45줄을 합쳐 총 525줄입니다.

왜 중요한가요?

이 글은 하드웨어 신호를 시간에 맞춰 세는 방법을 실제 예로 보여 줍니다. 클럭을 나누고, 카운터로 화면 위치를 추적하고, 보이는 영역과 보이지 않는 영역을 구분하는 과정은 디지털 회로 설계의 기본입니다. 또한 브라운관 시절의 기술이 어떻게 지금의 설계 원리와 이어지는지도 알려 줍니다.

앞으로 지켜볼 점

  • 글에 나오는 카운터 모듈이 가로와 세로 신호를 어떻게 만드는지 살펴보세요.
  • HSync와 VSync 신호가 언제 낮아지는지 시뮬레이션에서 확인해 보세요.
  • 글의 뒷부분에서 색 신호를 어떻게 연결하는지 이어서 읽어 보세요.

용어 풀이

VGA
Video Graphics Array의 약자로, 1987년에 나온 오래된 화면 표준입니다.
CRT
브라운관이라고 부르는 옛날 화면 기술로, 전자 빔으로 화면에 빛을 냅니다.
HSync
전자 빔이 한 줄을 그린 뒤 다음 줄로 이동하도록 알려 주는 가로 동기 신호입니다.
VSync
전자 빔이 화면 맨 아래에서 맨 위로 돌아가도록 알려 주는 세로 동기 신호입니다.
FPGA
프로그램으로 회로 구조를 바꿀 수 있는 칩으로, 이 글에서는 실습 보드로 쓰였습니다.
SystemVerilog
디지털 회로를 글로 설계하고 시뮬레이션할 때 쓰는 하드웨어 설명 언어입니다.