그라운드 임베디드 유튜브 구독

노트 / 디지털 논리

FPGA 맛보기: 하드웨어를 코드로 설계하기

MCU는 명령어를 순서대로 실행하고, FPGA는 회로 자체를 바꿉니다. 둘의 차이와 FPGA가 필요한 순간을 정리했습니다.

GROUND EMBEDDED · 정리 노트디지털 논리 08FPGA 맛보기 1always @(posedge clk) count <= count + …

FPGA(Field Programmable Gate Array) 안에는 작은 논리 블록 수만 개와 그 사이를 잇는 배선 스위치가 들어 있습니다. 설정 파일을 올리면 원하는 디지털 회로가 칩 안에 만들어집니다.

MCU와 무엇이 다른가

MCU FPGA
동작 명령어를 하나씩 순서대로 모든 회로가 동시에
언어 C Verilog, VHDL
강점 개발이 쉽고 싸다 나노초 단위 응답, 대량 병렬 처리
약점 정해진 주변장치만 설계 난이도와 가격

Verilog 한 줄의 의미

always @(posedge clk) count <= count + 1;

C의 count++처럼 보이지만, 이 코드는 "클럭마다 1을 더하는 덧셈기와 레지스터"라는 회로를 만듭니다. 코드가 실행되는 게 아니라 회로가 생기는 것이라는 점이 가장 큰 사고방식 차이입니다.

언제 FPGA를 쓰나

고속 ADC 데이터를 실시간으로 처리할 때, 수십 채널 PWM을 정밀하게 동기화할 때, 카메라 영상 전처리처럼 MCU로는 시간이 모자랄 때입니다. 최근에는 ARM 코어와 FPGA가 한 칩에 들어간 제품(Zynq 등)도 많이 씁니다.