제조된 이후에도 사용자가 현장에서(Field) 직접 하드웨어 동작을 재구성(Programmable) 할 수 있는 반도체 칩(Gate Array), 바로 FPGA입니다.
소프트웨어처럼 하드웨어를 바꿀 수 있다는 것이 가장 큰 특징입니다.
즉, FPGA = 하드웨어를 소프트웨어처럼 바꿀 수 있는 칩입니다.
CPU처럼 순차적으로 명령을 실행하는 게 아니라, 회로 자체를 원하는 구조로 바꿔서 동작합니다.
구성 요소
| 구성 | 역할 | 예시 |
|---|---|---|
| Logic Block (CLB) | 기본 연산과 레지스터 구현 | LUT, 플립플롭 |
| Interconnect | 블록 간 연결 경로 | 프로그래머블 배선 |
| I/O Block (IOB) | 외부 입출력 처리 | LVDS, LVCMOS |
| 구분 | FPGA | CPU | ASIC |
|---|---|---|---|
| 동작 방식 | 회로 변경 가능 | 명령어 실행 | 회로 고정 |
| 성능 | 병렬 처리 강점 | 순차 처리 | 최적화 최고 |
| 유연성 | 매우 높음 | 소프트웨어 변경 | 없음 |
| 전력 효율 | 낮음~중간 | 중간 | 높음 |
| 개발 비용 | 중간 | 낮음 | 높음 |
장점
단점
[요구사항 분석]
↓
[HDL 설계] (Verilog/VHDL)
↓
[시뮬레이션] (ModelSim, QuestaSim)
↓
[합성] (Vivado, Quartus)
↓
[배치·배선]
↓
[비트스트림 생성]
↓
[FPGA 다운로드 & 검증]
💡 정리
FPGA는 ASIC의 고정성과 CPU의 범용성 사이에서,
맞춤형 고속 하드웨어 처리가 필요한 분야에 최적의 솔루션입니다.