CPLD의 구조와 비휘발성 프로그래머블 로직 활용

CPLD의 매크로셀과 Switch Matrix 구조, EEPROM·Flash 기반 비휘발성 특성, JTAG 프로그래밍, 제품군별 구성 범위와 FPGA의 차이를 정리한다.

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

전원을 켜자마자 필요한 제어 로직

CPLD(Complex Programmable Logic Device)는 PLD를 프로그래밍해 매크로셀 기반 회로를 구성하는 프로그래머블 로직 디바이스다. 수천~수만 게이트 규모의 디지털 회로를 대상으로 하며, Switch Matrix와 Logic Block이 신호 연결과 논리 처리를 나눠 맡는다.

EEPROM이나 Flash에 설정을 저장하므로 전원이 꺼져도 구성 정보가 남는다. 외부 ROM 없이 즉시 시작할 수 있다는 점은 전원 관리, 시스템 초기화, 간단한 제어 회로에서 CPLD를 구분하는 조건이다. 집적도와 용량은 FPGA보다 낮지만, 고정된 연결 패턴에서 나오는 예측 가능한 지연 시간과 낮은 전력 소비가 필요한 설계에 맞는다.

PLD 계열에서 CPLD가 맡는 범위

프로그래머블 로직은 고정된 조합 논리인 ROM에서 출발해 프로그래밍 가능한 배열과 더 복잡한 회로 구현으로 확장됐다. PLA(Programmable Logic Array)는 AND/OR 배열을, PAL(Programmable Array Logic)은 프로그래머블 AND 배열을 사용한다. PAL, PLA, GAL(Generic Array Logic)을 포함하는 SPLD(Simple Programmable Logic Device)는 수십 게이트 규모의 간단한 로직을 다룬다.

CPLD는 여러 SPLD 블록을 하나의 칩에 통합하고 프로그래머블 인터커넥트로 연결해 더 큰 로직을 단일 칩에서 처리한다. PAL/GAL보다 복잡하고 FPGA보다 단순한 위치에 있으며, FPGA는 대규모 회로와 높은 집적도를 대상으로 한다. 따라서 CPLD는 중간 규모 응용에서 논리 회로를 구성하는 데 쓰인다.

제품군별 구성 범위도 이 위치를 보여 준다. Xilinx(현 AMD)의 CoolRunner-II는 저전력 CPLD로 32512 매크로셀, 1.8V 코어 전압, 마이크로암페어 대기 전류를 제공한다. XC9500 시리즈에서는 XC9500XL이 3.3V 동작, XC9500XV가 2.5V 동작을 지원하며 36288 매크로셀과 5V 입력 톨러런트를 제공한다.

Intel(구 Altera)의 MAX 시리즈는 MAX II, 초저전력 MAX V, CPLD/FPGA 하이브리드 MAX 10으로 구성된다. 2402210 LE(Logic Elements) 규모와 인스턴트온 기능, 내장 Flash 메모리, 아날로그-디지털 혼합 지원이 특징이다. Lattice Semiconductor의 MachXO 계열에는 저전력 MachXO2와 향상된 I/O를 제공하는 MachXO3가 있으며, 2566900 LUT와 SERDES 내장 옵션을 제공한다. ispMACH 4000은 32~512 매크로셀 규모의 범용 CPLD로 인시스템 프로그래밍을 지원한다. Microchip(구 Microsemi)의 PolarFire 계열은 CPLD/FPGA 통합 제품이며 우주급 내방사선 제품, 강화된 보안 기능, 저전력 설계를 포함한다.

PLD진화ROM/PLA(초기)PAL/GAL(단순)CPLD(중간)FPGA(복잡)수천~수만게이트

Switch Matrix와 Logic Block이 회로를 연결하는 방식

Switch Matrix는 Logic Block 사이의 연결 경로를 담당하는 전역 연결 네트워크다. 프로그래밍 과정에서 신호 경로를 정하고 각 Logic Block의 입출력을 연결하며, 신호 분배에도 관여한다. 연결 패턴이 고정돼 있어 지연 시간을 예측하기 쉽다.

Logic Block은 회로를 실제로 구현하는 영역이다. 기본 논리 단위인 매크로셀에는 AND 배열과 OR 배열, 플립플롭이 포함된다. 매크로셀은 조합 논리와 순차 논리를 함께 다루며, Flip-Flop·래치·출력 제어 로직을 통해 부울 함수, 레지스터, 상태 머신을 구현한다.

CPLD구조SwitchMatrixLogicBlock 1LogicBlock 2LogicBlock N매크로셀AND/ORFlip-Flop

비휘발성 구성 정보가 만드는 특성

CPLD는 EEPROM 또는 Flash 기반의 비휘발성 메모리를 사용한다. 전원이 꺼져도 설정이 유지되므로 부팅 시간이 없고, 외부 ROM 없이 즉시 시작할 수 있다. 이 특성은 전원 관리 회로, 부트 로더, 시스템 초기화에 연결된다.

용량은 수천 게이트 ~ 수만 게이트이며, 일반적으로 32 ~ 512 매크로셀을 사용한다. FPGA 대비 1/10 ~ 1/100 수준이므로 간단한 디지털 회로, 글루 로직, 인터페이스 변환, 상태 머신에 적합하다. 반대로 복잡한 연산과 대용량 데이터 처리에는 제한이 있고 DSP나 이미지 처리에도 어렵다.

낮은 집적도는 칩 면적과 소자 수가 작다는 뜻이기도 하다. 낮은 가격, 낮은 전력 소비, 작은 폼팩터를 얻는 대신 기능과 확장성은 제한된다.

설계와 보드 내 프로그래밍

설계는 HDL 또는 회로도로 회로를 표현하는 데서 시작한다. RTL을 게이트 레벨로 합성한 뒤 매크로셀에 논리를 매핑하고, 피팅 단계에서 Logic Block을 할당한다. 타이밍 분석을 거쳐 비트스트림을 생성하고 JTAG 또는 ISP 방식으로 CPLD에 프로그래밍한다.

-- VHDL 예시
entity counter is
    port (
        clk : in std_logic;
        reset : in std_logic;
        count : out std_logic_vector(3 downto 0)
    );
end counter;

architecture rtl of counter is
    signal cnt : unsigned(3 downto 0);
begin
    process(clk, reset)
    begin
        if reset = '1' then
            cnt <= (others => '0');
        elsif rising_edge(clk) then
            cnt <= cnt + 1;
        end if;
    end process;
    count <= std_logic_vector(cnt);
end rtl;

레지스터는 플립플롭에, 조합 논리는 AND/OR 배열에 대응시켜 할당한다. 이 과정에서 논리를 최적화하고 최소화한다.

JTAG는 IEEE 1149.1 표준 인터페이스로 온칩 프로그래밍과 디버깅을 지원한다. TCK는 테스트 클럭, TMS는 테스트 모드 선택, TDI는 테스트 데이터 입력, TDO는 테스트 데이터 출력에 사용하며 TRST는 선택적인 테스트 리셋 신호다. 경계 스캔 테스트, 인서킷 프로그래밍, 디버깅, 체인 연결에 활용한다.

ISP(In-System Programming)를 사용하면 회로 보드에 장착된 상태에서 프로그래밍할 수 있어 펌웨어 업데이트와 유지보수에 활용할 수 있다. 설정은 EEPROM/Flash에 저장되며 전원 OFF 후에도 유지되고, 수천~수만 회 재프로그래밍할 수 있다.

회로 설계(HDL/회로도)논리 합성매크로셀매핑피팅(Logic Block 할당)타이밍분석프로그래밍(JTAG/ISP)CPLD동작

FPGA와 비교할 때 확인할 조건

구분 CPLD FPGA
게이트 수 수천~수만 수십만~수백만
집적도 낮음 높음
구조 Switch Matrix + Logic Block CLB + Interconnect
메모리 비휘발성 (EEPROM/Flash) 휘발성 (SRAM)
부팅 즉시 (Instant-On) 외부 ROM 필요
지연 시간 예측 가능 경로에 따라 변동
전력 소비 낮음 높음
가격 낮음 높음
적용 분야 간단한 회로, 글루 로직 복잡한 연산, DSP, AI
유연성 제한적 매우 높음

간단한 회로에서 즉시 시작, 저전력, 예측 가능한 지연이 요구되면 CPLD가 맞는다. 복잡한 회로와 고성능, 높은 유연성이 필요하면 FPGA를 선택한다.

제어와 인터페이스에 쓰이는 CPLD

CPLD는 여러 IC 사이의 인터페이스를 잇는 글루 로직으로 사용할 수 있다. 프로토콜 변환과 신호 정합도 이 범위에 속한다.

제어 로직, 시퀀스 제어, 타이밍 제어를 위한 상태 머신도 주요 활용처다. 병렬 ↔ 직렬 변환, 프로토콜 브리지, 레벨 시프터 같은 인터페이스 변환과 시스템 초기화·전원 관리·설정 제어를 위한 부트 로더에도 적용할 수 있다.

카운터와 타이머, 인코더와 디코더, 멀티플렉서처럼 간단한 연산 회로 역시 CPLD의 적용 대상이다.

설계 제약과 장점의 균형

CPLD의 장점은 비휘발성 구성에 따른 즉시 시작, 고정된 지연 시간에 따른 예측 가능성, 낮은 전력 소비와 FPGA 대비 낮은 비용이다. 매크로셀 기반 구조는 비교적 직관적인 설계를 가능하게 하고, 작은 폼팩터에도 유리하다.

대신 수천~수만 게이트라는 제한된 용량과 낮은 집적도 때문에 복잡한 회로 구현에는 맞지 않는다. DSP와 메모리 블록도 부족하며, 대규모 설계로 확장하기 어렵고 FPGA보다 낮은 클록 주파수를 갖는다.

CPLD프로그래머블 로직매크로셀FPGA비휘발성 메모리