FPGA의 재구성 구조와 하드웨어 가속 활용

FPGA의 CLB·인터커넥션·I/O Cell 구조와 SRAM 기반 구성 방식, ASIC·CPLD·SoC·DSP와의 차이, 병렬 하드웨어 가속 활용을 정리한다.

2026-08-14 · 최초 발행 2025-12-30

회로를 현장에서 다시 정하는 FPGA

FPGA(Field-Programmable Gate Array)는 작업과 IT 환경에 맞춰 하드웨어 구성을 바꿀 수 있는 프로그래머블 로직 디바이스다. 수백만 게이트 규모의 디지털 회로를 구현하며, 범용 프로세서의 유연성과 특정 용도로 설계한 ASIC의 성능 특성을 함께 겨냥한다.

소프트웨어를 바꾸는 방식이 아니라 Configuration을 통해 회로 자체를 설정한다는 점이 핵심이다. 기능을 다시 정의할 수 있으면서도 하드웨어 가속을 사용할 수 있어, 복잡한 병렬 처리에 적합하다.

범용 프로세서는 소프트웨어로 기능을 바꿀 수 있고 여러 용도로 재사용하기 쉬우며 초기 비용이 낮다. ASIC은 특정 작업에 맞춰 높은 성능과 낮은 전력을 제공하지만, 초기 비용이 높고 설계 변경이 어렵다. FPGA는 프로그래밍 가능성, 하드웨어 가속, 작업별 적응성, ASIC보다 낮고 프로세서보다 높은 비용이라는 중간 지점을 갖는다.

논리 블록과 연결 자원이 만드는 회로

FPGA는 CLB(Configurable Logic Block), Interconnection Resource, I/O Cell로 구성된다.

CLB는 실제 논리 기능을 구현하는 블록이다. 4-input LUT(Look-Up Table), DFF(D Flip-Flop), MUX(Multiplexer)를 조합해 산술 연산, AND·OR·XOR 같은 논리 연산, 레지스터와 FIFO, 상태 머신을 구성할 수 있다.

LUT는 진리표를 저장해 논리를 구현한다. 4-input LUT는 2^4 = 16개 항목의 진리표를 사용하며, 임의의 4입력 부울 함수를 구현한다. SRAM 기반 메모리라는 특성도 Configuration 방식과 연결된다. DFF는 클록에 동기화된 레지스터로서 상태를 저장하고 순차 논리를 구현한다. MUX는 조합 논리와 순차 논리의 선택, 출력 경로 제어에 쓰인다.

Interconnection Resource는 CLB 사이를 연결하고 신호를 라우팅한다. 프로그래머블 스위치로 이루어진 스위치 매트릭스, 수평·수직 라우팅 채널, 전역 클록 분배용 클록 네트워크가 여기에 포함된다. SRAM 기반 스위치를 Configuration 비트로 제어해 필요한 연결 경로를 만든다.

I/O Cell은 외부 신호의 입출력과 전압 레벨 변환, 신호 정합을 담당한다. 입력 버퍼, 출력 드라이버, 3-State 제어, Pull-Up/Pull-Down 기능을 제공하며 LVTTL, LVCMOS, LVDS, HSTL, DDR 인터페이스를 지원한다.

SRAM Configuration이 갖는 특성

SRAM 기반 FPGA는 전원이 꺼지면 설정을 잃는다. 따라서 Configuration 데이터를 저장할 PROM 또는 Flash가 필요하며, 전원이 켜지면 SPI Flash나 EEPROM 등에서 데이터를 읽어 FPGA SRAM에 로드한다.

부팅은 전원 ON, PROM의 Configuration 데이터 읽기, FPGA SRAM 로드, FPGA 동작 시작 순서로 진행된다. 이 방식은 빠른 재구성과 무한 재프로그래밍, 설계 변경의 용이성을 제공한다. 반면 부팅에 수십~수백 ms가 필요하고 외부 ROM이 필요해 비용이 증가할 수 있다.

Configuration 과정에서는 PROM에서 비트스트림을 읽고, CLB의 LUT에 진리표를 적재한다. 이어 Interconnection 스위치와 I/O Cell을 설정하면 하드웨어 회로가 형성되어 동작을 시작한다. 전원 재부팅 외에도 Partial Reconfiguration과 동적 재구성을 적용할 수 있다.

순차 논리는 DFF에 상태를 남긴다

순차 논리는 클록 동기화, 상태 저장, 피드백 경로를 바탕으로 동작한다. FPGA에서는 DFF를 레지스터, 카운터, 상태 머신에 활용한다.

다음 4비트 카운터는 이러한 순차 논리의 예다.

module counter(
    input clk,
    input reset,
    output reg [3:0] count
);

always @(posedge clk or posedge reset) begin
    if (reset)
        count <= 4'b0000;
    else
        count <= count + 1;
end

endmodule

이 회로는 DFF 4개를 사용하고, LUT로 증가 로직을 구현해 CLB에 매핑할 수 있다.

대규모 병렬 처리에 맞는 이유

FPGA의 게이트 수는 수십만~수백만 게이트 수준이며, 최신 FPGA는 1,000만 게이트 이상을 제공한다. CPLD와 비교하면 100-1000배 규모다. CPU 코어(ARM, RISC-V), DSP 블록, 메모리 컨트롤러, 네트워크 프로토콜 스택처럼 복잡한 회로를 구현할 수 있다.

Xilinx Virtex UltraScale+는 수백만 Logic Cell을, Intel Stratix 10은 500만 Logic Element를 제공한다.

7nm, 5nm 공정과 높은 트랜지스터 밀도는 작은 칩 면적에 많은 기능을 넣는 기반이 된다. 대규모 시스템 통합과 SoC 수준 통합, 공간 절약이 가능하며, 수백 MHz ~ GHz 수준의 고속 동작과 병렬 처리로 높은 처리량을 목표로 한다.

CPU가 제어 로직과 순차 처리를 맡고 FPGA가 데이터 집약적 병렬 처리를 맡는 이종 컴퓨팅 구성도 가능하다. 수많은 CLB가 동시에 동작하고 파이프라인과 데이터 병렬성을 구성할 수 있어, 암호화에서는 10-100배, 이미지 처리에서는 수십 배, 머신러닝 추론에서는 수배~수십 배의 성능 향상 예시가 제시된다.

네트워크부터 AI 추론까지

네트워크에서는 고속 패킷 필터링, 라우팅 테이블 검색, 프로토콜 처리에 FPGA를 활용할 수 있다. SDN(Software-Defined Network), NFV(Network Function Virtualization) 환경에서는 유연한 네트워크 기능 구현에 쓰이며, 100G/400G 이더넷 스위치, 방화벽, IDS/IPS, 로드 밸런서가 예시다.

이미지 인식에서는 실시간 이미지 처리, 특징 추출, 객체 검출을 수행할 수 있다. CNN(Convolutional Neural Network)의 컨볼루션 연산을 병렬화해 실시간 추론에 활용하며, 자율주행 카메라, 의료 영상 분석, 보안 카메라가 적용 대상이다.

자연어 처리에서는 Transformer 모델과 BERT, GPT 추론, 텍스트 분석을 가속한다. 행렬 연산 병렬화, 저지연 추론, 에너지 효율이 관련 특성이다.

머신러닝에서는 신경망 가속, 양자화 모델, 실시간 추론에 사용된다. 데이터센터 활용 사례로 Microsoft Catapult의 Bing 검색, Amazon F1 인스턴스, Google TPU 대안이 있으며, 엣지 컴퓨팅에서는 저전력 AI 추론, IoT 기기, 실시간 처리에 적용된다.

ASIC, SoC, DSP와 선택 기준

ASIC(Application-Specific Integrated Circuit)은 FPGA에서 동작을 확인한 뒤 회로와 게이트를 정리해 더 작은 면적의 웨이퍼로 구현하는 방식과 연결된다. 프로그램할 수 없는 마스크 타입이며 최고 성능과 최저 전력, 대량 생산 시 낮은 비용이 장점이다. 마스크 제작에 따른 높은 초기 비용, 설계 변경 불가, 긴 개발 기간은 제약이다. FPGA로 프로토타입을 검증한 뒤 ASIC을 제작해 양산 단계로 옮길 수 있다.

SoC(System on Chip)는 ASIC과 유사하지만 아날로그 기능이 크게 강화된 형태다. 코일과 대용량 콘덴서를 포함할 수 있으며, 칩 한 개에 제품에 필요한 모든 기능을 탑재한다. MP3 SoC는 디코더, DAC, 앰프, 전원 관리를 포함하고, DNA 칩은 생체 센서를 통합하며, CMOS 칩은 이미지 센서와 ISP를 결합한다. 고도 통합, 작은 크기, 낮은 전력이 장점이다.

DSP(Digital Signal Processor)는 디지털 신호와 고속 아날로그 처리를 위한 특화 마이크로프로세서다. 고속 곱셈/누산(MAC), 파이프라인 구조, 고정 소수점·부동 소수점 특성을 가지며 오디오 처리, 비디오 인코딩, 모뎀·기지국 같은 통신, 레이더와 소나에 활용된다.

CPLD와 ASIC 사이의 FPGA

구분 CPLD FPGA ASIC
게이트 수 수천~수만 수십만~수백만 무제한
메모리 비휘발성 (EEPROM) 휘발성 (SRAM) 고정
부팅 즉시 외부 ROM 필요 즉시
재구성 가능 가능 불가능
구조 Switch Matrix + Logic Block CLB + Interconnect 고정 회로
전력 낮음 중간 매우 낮음
성능 중간 높음 최고
개발 비용 낮음 중간 매우 높음
양산 비용 중간 높음 낮음 (대량 생산 시)
적용 간단한 회로 복잡한 회로, 프로토타입 대량 양산 제품
FPGA재구성 가능 로직하드웨어 가속디지털 회로ASIC