FPGA 아키텍처와 설계 흐름: 재구성 가능한 하드웨어의 활용
FPGA의 로직 블록, BRAM, DSP, 고속 트랜시버 구조와 HDL 기반 설계 흐름, ASIC·GPU·CPU와의 차이를 정리한다.
2026-08-14 · 최초 발행 2026-01-12
제조 뒤에도 회로를 바꿀 수 있는 하드웨어
FPGA(Field Programmable Gate Array)는 제조가 끝난 뒤 사용자가 원하는 디지털 회로를 구성할 수 있는 반도체 디바이스다. 로직 셀, 블록 RAM, DSP 블록, 고속 직렬 트랜시버 같은 하드웨어 리소스를 내장하고 있으며, HDL(Hardware Description Language)로 복잡한 디지털 시스템을 구현한다.
ASIC에 필요한 개발 비용과 시간을 줄이면서 하드웨어 수준의 병렬 처리를 제공하는 점이 특징이다. 통신, AI 가속, 데이터센터, 임베디드 시스템처럼 데이터 경로를 목적에 맞게 구성해야 하는 영역에서 사용된다.
1985년 Xilinx가 최초 FPGA인 XC2064를 출시했고, 1992년에는 Altera의 FLEX 8000 시리즈가 나왔다. 2000년대에는 고속 트랜시버와 블록 RAM이 통합됐으며, 2010년대에는 SoC FPGA와 HBM 통합이 이어졌다. 현재는 AI 가속과 클라우드 FPGA에도 활용 범위가 넓어졌다.
재구성성은 현장 업데이트, 런타임 부분 재구성, 프로토타이핑을 가능하게 한다. 하드웨어 수준의 병렬성은 다중 연산과 파이프라인 처리를 동시에 수행하며 결정적인 지연 시간을 다룰 수 있게 한다. 인터페이스와 데이터 경로를 맞춤형으로 구성할 수 있다는 점도 FPGA의 유연성에 포함된다.
타일 안에 배치되는 로직과 전용 리소스
FPGA는 로직 블록(CLB/LAB), 블록 RAM(BRAM), DSP 블록, 클럭 관리 타일(CMT), I/O 블록, 라우팅 리소스로 구성된다. 이 리소스들은 타일 기반 구조 안에서 조합된다.
+-------+-------+-------+-------+
| CLB | BRAM | CLB | CLB |
+-------+-------+-------+-------+
| CLB | DSP | CLB | CLB |
+-------+-------+-------+-------+
| CLB | BRAM | CLB | CLB |
+-------+-------+-------+-------+
| I/O | I/O | I/O | I/O |
+-------+-------+-------+-------+
LUT와 플립플롭이 만드는 로직
CLB 또는 LAB에는 조합 로직을 구현하는 LUT(Look-Up Table), 순차 로직을 위한 플립플롭, 산술 연산을 가속하는 캐리 체인, 신호를 선택하는 멀티플렉서가 포함된다.
LUT는 입력 조합에 대한 진리표를 SRAM에 저장하는 방식으로 동작한다. 4-LUT는 4입력 진리표를 위한 16비트 SRAM, 5-LUT는 5입력 진리표를 위한 32비트 SRAM, 6-LUT는 6입력 진리표를 위한 64비트 SRAM을 사용한다. 필요에 따라 두 개의 소형 LUT로 분할해 사용할 수도 있다.
BRAM과 DSP 블록의 역할
BRAM은 분산 메모리보다 효율적으로 사용할 수 있으며, 듀얼 포트와 다양한 폭·깊이 구성, 동기식 읽기·쓰기를 지원한다. FIFO 버퍼, 이중 버퍼링, 룩업 테이블, 명령어 메모리로 활용된다.
| 구성 | 폭 x 깊이 | 용도 |
|---|---|---|
| 36K | 36 x 1024 | 넓은 데이터 버스 |
| 18K | 18 x 2048 | 표준 메모리 |
| 9K | 9 x 4096 | 깊은 FIFO |
| ROM | 다양 | 상수 테이블 |
DSP 블록은 프리-애더(Pre-adder), 곱셈기(18x18 또는 27x18), 가산·누적용 ALU, 파이프라인 레지스터로 구성된다. MAC, FIR 필터, FFT, 부동소수점 연산을 전용 자원으로 처리한다.
클럭과 외부 인터페이스
CMT(Clock Management Tile)는 PLL(Phase-Locked Loop)과 MMCM(Mixed-Mode Clock Manager)을 포함한다. 주파수 합성, 위상 조정, 클럭 체배·분주, 지터 감소, 클럭 도메인 교차, 저전력 클럭 게이팅을 담당한다.
I/O 블록은 LVTTL·LVCMOS 같은 범용 표준, LVDS 차동 신호, HSTL·SSTL 기반 DDR 메모리, LVPECL 고속 클럭을 지원한다. 프로그래머블 드라이브 강도, 내부 종단 저항, 지연 조정, SerDes 통합도 제공한다.
GTX/GTH/GTY 트랜시버는 수 Gbps~수십 Gbps의 링크를 다룬다. CDR(Clock Data Recovery), 채널 등화, 프리엠퍼시스와 디엠퍼시스를 사용하며 PCIe Gen3/Gen4/Gen5, 10/25/100G Ethernet, SATA/SAS, Interlaken 프로토콜을 지원한다.
HDL에서 비트스트림까지 이어지는 구현 과정
설계 입력은 Verilog/SystemVerilog, VHDL, 혼합 언어 기반의 모듈 계층 구조로 작성할 수 있다. HLS(High-Level Synthesis)에서는 C/C++, SystemC, OpenCL을 사용하며 빠른 개발 주기를 지원한다. 벤더 제공 IP, 서드파티 IP, 사용자 정의 IP를 IP 카탈로그로 통합하는 방식도 사용된다.
합성은 HDL을 네트리스트로 변환하고, 기술 매핑과 면적·속도 최적화, 리소스 추정을 수행하는 단계다. 설계 의도는 지시문으로 전달할 수 있다.
// 속도 최적화
(* keep = "true" *) reg pipeline_reg;
// 레지스터 복제
(* max_fanout = 50 *) reg control_signal;
// RAM 추론
(* ram_style = "block" *) reg [31:0] memory [0:1023];
배치에서는 로직을 물리적 위치에 할당하면서 타이밍, 밀집도, 열 분산을 고려한다. 라우팅에서는 신호 경로와 클럭 트리를 구성하고 타이밍 최적화 및 혼잡도 관리를 수행한다.
| 전략 | 초점 | 런타임 |
|---|---|---|
| Performance | 타이밍 최적화 | 길음 |
| Area | 리소스 최소화 | 중간 |
| Power | 전력 절감 | 중간 |
| Quick | 빠른 컴파일 | 짧음 |
정적 타이밍 분석(STA)은 모든 경로를 대상으로 셋업·홀드를 검사하고, 클럭 도메인 교차와 슬랙을 확인한다. 타이밍 제약은 구현 결과를 판단하는 기준이 된다.
# 클럭 정의
create_clock -period 10.0 [get_ports clk]
# 입력 지연
set_input_delay -clock clk 2.0 [get_ports data_in]
# 출력 지연
set_output_delay -clock clk 1.5 [get_ports data_out]
# 거짓 경로
set_false_path -from [get_clocks clk_a] -to [get_clocks clk_b]
비트스트림에는 FPGA 설정 데이터, SRAM 셀 초기값, 라우팅 스위치 설정이 담기며 암호화와 인증 옵션을 적용할 수 있다.
제품군별로 달라지는 통합 기능
AMD(구 Xilinx)의 Versal 시리즈는 AI 엔진을 통합하며, Versal Prime은 범용, Versal AI Core는 AI 가속, Versal Premium은 고대역폭을 대상으로 한다. UltraScale+에는 최고 성능의 Virtex UltraScale+, 고성능·가격비를 위한 Kintex UltraScale+, SoC FPGA인 Zynq UltraScale+, 데이터센터 가속 카드인 Alveo가 포함된다. 7 시리즈에서는 Artix-7이 저전력·저비용, Kintex-7이 중급, Virtex-7이 고성능 제품군이다.
Intel(구 Altera)의 Agilex 시리즈에서는 Agilex 7이 범용 고성능, Agilex 5가 중급 제품군에 해당하며 CXL/PCIe Gen5와 HBM2e를 지원한다. Stratix 10은 하이퍼플렉스 아키텍처, SoC 옵션, 고속 트랜시버를 제공한다. Cyclone V는 저비용 SoC, Cyclone 10은 저전력, MAX 10은 CPLD/FPGA 하이브리드다.
Lattice Semiconductor의 Nexus 플랫폼은 중급 성능의 CertusPro-NX, 저전력 Certus-NX, 브리징용 CrossLink-NX를 포함한다. 에지 AI, 저전력 임베디드, 5G 인프라가 특화 영역이다.
Microchip(구 Microsemi)의 PolarFire 시리즈는 저전력 중급 FPGA로, 내방사선 옵션, SoC 버전, 보안 기능을 제공한다.
병렬 데이터 경로가 필요한 곳
통신과 네트워킹에서는 5G 기지국의 대규모 MIMO 처리, 빔포밍, 채널 코딩·디코딩, 프론트홀 인터페이스에 FPGA를 적용한다. 데이터센터에서는 100G/400G 이더넷, 스마트 NIC, 네트워크 가상화, 프로토콜 오프로드에 사용된다.
AI/ML 영역에서는 저지연 추론, INT8/INT4 양자화, 맞춤형 데이터플로우, 배치 처리가 활용 대상이다. 훈련 쪽에서는 희소 행렬 연산, 분산 훈련, 메모리 대역폭 최적화, 혼합 정밀도를 다룬다.
금융 서비스의 고빈도 트레이딩은 나노초 지연, 시장 데이터 처리, 리스크 계산, 주문 매칭을 대상으로 한다. 결정적 지연, 하드웨어 타임스탬프, 울트라 저지연이 이 영역에서 요구된다.
과학 연구에서는 입자 물리학의 트리거 시스템, 데이터 수집, 실시간 분석과 천문학의 신호 처리, 상관기, 빔포밍에 사용된다. 자동차에서는 ADAS의 센서 퓨전, 이미지 처리, 레이더·라이다 처리, 기능 안전과 인포테인먼트의 비디오 처리, 디스플레이 인터페이스, 오디오 DSP를 구현할 수 있다.
ASIC·GPU·CPU 사이에서 FPGA를 고르는 기준
ASIC와 비교하면 FPGA는 NRE 비용이 낮고 개발 기간이 짧으며 유연성이 높다. 반면 대량 생산 단가는 높고, 성능과 전력 효율에서는 ASIC이 우위다.
| 항목 | FPGA | ASIC |
|---|---|---|
| NRE 비용 | 낮음 | 매우 높음 |
| 단가 (대량) | 높음 | 낮음 |
| 개발 기간 | 짧음 | 길음 |
| 성능 | 높음 | 최고 |
| 전력 효율 | 중간 | 높음 |
| 유연성 | 높음 | 없음 |
GPU는 매우 높은 처리량을 제공하지만, FPGA는 매우 낮은 지연과 높은 전력 효율, HDL 기반의 높은 유연성을 제공한다.
| 항목 | FPGA | GPU |
|---|---|---|
| 지연 | 매우 낮음 | 높음 |
| 처리량 | 높음 | 매우 높음 |
| 전력 효율 | 높음 | 중간 |
| 프로그래밍 | HDL | CUDA/OpenCL |
| 유연성 | 매우 높음 | 높음 |
CPU와 비교하면 FPGA는 대규모 병렬성과 결정적 지연, 하드웨어 수준의 유연성을 제공한다. 대신 개발 난이도는 높다.
| 항목 | FPGA | CPU |
|---|---|---|
| 병렬성 | 대규모 | 제한적 |
| 지연 | 결정적 | 가변적 |
| 유연성 | 하드웨어 | 소프트웨어 |
| 개발 용이성 | 어려움 | 쉬움 |
| 전력 효율 | 높음 | 중간 |