FPGA vs ASIC: 내부 구조와 차이점, 그리고 산업의 미래

FPGA vs ASIC: 내부 구조와 차이점, 그리고 산업의 미래
Photo by Vishnu Mohanan / Unsplash
FPGA와 ASIC의 내부 구조를 깊이 있게 파헤쳐보고 두 기술의 장단점 및 비즈니스적 의미까지 살펴보겠습니다.
  1. 우리 일상에는 스마트폰, 컴퓨터, 자동차 전자제어장치 등 수없이 많은 반도체 칩이 사용되고 있지만, 정작 그 속에 어떤 원리가 숨어있는지 아는 사람은 드뭅니다.
  2. 전자공학을 전공한 학생이나 임베디드 개발자라도 FPGA 보드를 다뤄본 경험은 많지만, FPGA 내부 구조가 어떻게 생겼는지 자세히 이해하는 경우는 드물죠.
  3. 흔히 이름만 들어본 ASIC은 무엇인지 정확히 모르는 경우도 많습니다.

반도체 칩 설계의 추상화 계층부터 시작하여, FPGA와 ASIC의 구조적 차이, FPGA vs ASIC의 기술·비용·양산 관점 비교, 그리고 "GPU나 CPU도 ASIC에 속할까?"와 같은 흥미로운 질문까지 하나씩 이야기해보겠습니다.

Digital Chip design의 추상화 계층

복잡한 디지털 칩 설계는 여러 추상화 계층으로 이루어져 있습니다. 높은 수준에서는 전체 시스템의 동작을 정의하고, 가장 낮은 수준에서는 원자 단위의 물질적 현상까지 내려가게 됩니다. 이를 단계별로 나눠보면 다음과 같습니다:
Reference: https://www.quora.com/What-should-be-the-best-way-to-learn-VLSI-design
  • System Level:
    • 제품이나 시스템 차원에서 요구되는 기능과 동작을 정의합니다.
    • 예를 들어 스마트폰의 통신 모뎀, 카메라 처리, AI 연산 등 전체적인 구성 요소와 인터페이스를 설계하는 단계입니다.
  • Module Level:
    • 시스템을 구성하는 주요 블록(모듈)들을 설계합니다.
    • CPU 코어, 메모리 컨트롤러, DSP 블록 등 각 기능별 모듈의 내부 구조(마이크로아키텍처)를 결정합니다.
    • 이 단계에서는 각 모듈의 동작을 하드웨어 기술언어(HDL) 등으로 기술합니다.
  • Gate Level:
    • 모듈 설계가 완료되면, 이를 구현하기 위한 게이트들의 연결(netlist)로 추상화합니다. AND, OR, XOR, 플립플롭 등의 논리 게이트 조합으로 각 기능을 구현하며, 여러 게이트가 모여 더 복잡한 컴포넌트(예: ALU, 디코더, 멀티플렉서 등)를 형성합니다.
    • 이 때 사용하는 게이트들은 미리 정의된 Standard Cell(ASIC)이나 LUT Combination (FPGA)으로 표현되죠.
  • Circuit Level:
    • 각 논리 게이트는 결국 트랜지스터들의 조합으로 구현됩니다.
    • 예를 들어 CMOS 회로에서 NAND 게이트 하나는 pMOS와 nMOS 트랜지스터 몇 개로 구성됩니다.
    • 이 단계에서는 트랜지스터 회로도의 동작을 SPICE 시뮬레이션 등으로 검증하기도 합니다[2].
  • Device level:
    • 트랜지스터는 반도체 소자로서 디바이스 물리에 의해 동작합니다.
    • 채널에 전자를 이동시키는 전계효과, 도핑된 실리콘 웨이퍼 상에 산화막과 금속 배선을 쌓는 공정 등이 해당합니다.
    • 이 수준에서는 반도체 공정 기술과 소자 물성이 중요합니다.
  • Silicon level:
    • 가장 근본적으로 들어가면, 도핑된 실리콘의 결정 구조원자 단위에서 전자의 거동까지 고려할 수 있습니다.
    • 이런 물리적 현상이 우리가 설계한 논리가 잘 동작하게 만드는 근본 바탕이 됩니다.

이렇게 시스템 → 모듈 → 게이트 → 트랜지스터 회로 → 소자 공정 → 물질(원자)으로 내려오는 추상화 계층 덕분에, 엔지니어는 자신의 설계 단계에서 세부 복잡도를 추상화하여 다룰 수 있습니다.

예를 들어 RTL 설계자는 게이트나 트랜지스터보다는 모듈의 기능에 집중하고, Physical 설계자는 게이트 배치와 배선에 집중하는 식입니다. 이제 이러한 배경을 바탕으로, 우리가 주로 다루는 FPGAASIC 내부가 각각 어떻게 구성되는지 알아보겠습니다.

FPGA의 구조

Xilinx Spartan®-7 SP701 FPGA Evaluation Kit by AMD Xilinx is one of the popular FPGA kits used in the industry. Source: Mouser Electronics
  1. FPGA(Field Programmable Gate Array)는 제조 후 현장에서 사용자가 하드웨어 동작을 재구성할 수 있는 Programmable Chip입니다.
  2. "Gate Array"라는 이름처럼 내부에 수많은 프로그래머블 논리 블록들이 격자 형태로 배열되어 있고, 이들 사이를 연결하는 프로그래머블 배선망이 존재합니다.
  3. FPGA 사용자는 HDL 코드를 통해 원하는 디지털 회로를 설계한 뒤, 비트스트림(bitstream)이라는 구성 데이터를 FPGA에 로드함으로써 논리 블록의 기능과 배선을 원하는 대로 설정합니다.

-> 결과적으로 FPGA는 설계 변경이 가능한 하드웨어 플랫폼을 제공하며, 빠른 프로토타이핑이나 소량 생산에 널리 활용됩니다.

FPGA 내부 구조를 이해하기 위해 핵심 요소들을 하나씩 살펴보겠습니다:

LUT와 플립플롭 (Logic Cell)

FPGA의 기본 구성 요소는 작은 논리 셀들입니다.

논리 셀은 룩업 테이블(LUT)플립플롭(FF) 등을 포함하는데, FPGA 전체에 이러한 셀이 수천에서 수백만 개까지 배열되어 있습니다.

LUT는 입력 조합에 따른 출력 값을 미리 테이블에 저장해놓는 소형 메모리로서, 임의의 조합논리 함수를 구현하는 데 사용됩니다.

예컨대 4-입력 LUT라면 입력 4비트에 대한 출력 값을 16개의 메모리 셀에 미리 저장해 두고, 입력값을 주소로 하여 해당 셀의 값을 출력하는 구조입니다. 이렇게 하면 복잡한 조합 논리식도 LUT에 알맞게 값만 채워 넣으면 한 사이클 만에 원하는 결과를 얻을 수 있죠.

대부분의 FPGA에서는 4입력, 5입력 또는 6입력 LUT를 사용하며, 6-input LUT의 경우 64개의 SRAM 셀에 진리표를 저장해 두는 식입니다.

또한 Flip flop은 순차논리를 구현하기 위한 1비트 기억소자로서, 각 LUT 출력에 접속되어 레지스터로 활용됩니다.

일반적으로 FPGA의 Configurable Logic Block 또는 Logic Array Block 하나는 여러 개의 LUT와 플립플롭을 포함하는 논리 셀들의 모음으로 구성되며, 예를 들어 Xilinx FPGA의 한 CLB는 두 개의 LUT+FF 쌍이 한 조를 이루는 구조 등으로 설계됩니다.

LUT들은 경우에 따라 서로 연결되어 더 큰 LUT처럼 동작하기도 하고, 내장된 소형 full adder와 조합하여 간단한 덧셈기능을 수행하는 등 모드를 전환할 수도 있습니다.

라우팅 매트릭스와 인터커넥트

FPGA의 또 다른 핵심은 programmable interconnect입니다.
A Tutorial on FPGA Routing, Daniel Gomez-Prado Maciej Ciesielski
  1. 실제 제품이 될만한 복잡한 기능의 논리를 만들려면, Logic Cell들 사이 신호를 주고받는 배선 경로를 구성해야 합니다.
  2. FPGA 칩 내부에는 수평·수직 방향으로 배선 채널이 촘촘하게 깔려 있고, 교차로나 분기점마다 switch matrix 또는 라우팅 스위치들이 존재합니다.
  3. 이들은 일종의 프로그래머블 멀티플렉서/트랜지스터 스위치 조합으로, 원하는 두 신호 선을 연결하거나 끊을 수 있게 해줍니다.

예를 들어 어떤 LUT 출력 신호를 몇 칸 떨어진 다른 LUT 입력까지 전달하려면, 중간중간 스위치들을 폐로(ON)시켜 하나의 연속된 배선 경로를 만들어주는 식입니다.

FPGA 라우팅 자원은 제한적이기 때문에, FPGA 업체들은 설계가 웬만하면 다 라우팅 될 수 있도록 채널 폭과 스위치 개수를 통계적으로 최적화합니다.

각 FPGA 칩 아키텍처마다 세부적인 라우팅 구조는 다르지만 (대표적으로 “island style” 구조 등), 개념적으로는 배선용 패브릭 전체가 거대한 교환기처럼 동작한다고 볼 수 있습니다.

라우팅 매트릭스의 제어 정보도 비트스트림에 포함되어 있어서, 특정 스위치를 온/오프하여 어떤 논리 셀 출력이 어떤 셀 입력으로 이어질지 결정됩니다.

FPGA에서는 배선 지연과 자원 사용이 성능에 큰 영향을 미치므로, 합성(Synthesis)과 배치-배선(P&R) 툴이 LUT 사용과 배선을 최적으로 하도록 자동 배치를 합니다.

복잡한 회로일수록 LUT 개수뿐만 아니라 배선 채널 수요가 늘어나므로, Routing congestion이 성능 병목이 되지 않도록 하는 것이 FPGA 설계의 관건입니다.

최근 FPGA에는 계층적인 라우팅, 장거리 배선(Line, Bus macros) 등도 도입되어 보다 효율적으로 광범위한 신호 연결을 지원합니다.

I/O Pads

FPGA 칩 가장자리를 따라서는 Chip의 외부와 신호를 주고받는 입출력 블록(I/O Block, IOB)들이 위치해 있습니다.

각 I/O 블록에는 IO 패드와 연결된 버퍼, 트랜시버 등이 있어서 FPGA 내부 논리 신호와 외부 핀을 이어주는 역할을 합니다.

FPGA I/O 블록은 프로그래머블 특성을 살려 다양한 전기적 표준을 지원하는데, 예를 들어 3.3V LVTTL, 1.8V LVCMOS, LVDS, PECL 등 여러 I/O 전압 및 차동신호 모드를 설정할 수 있습니다.

또한 출력 드라이버의 슬루율(slew rate)을 조정하거나, 입력에 슈미트 트리거를 걸거나, 풀업/풀다운 저항을 내장하는 등 유연하게 I/O 특성을 구성할 수 있습니다.

고급 FPGA일수록 고속 트랜시버(SERDES)나 고주파 클럭용 PLL, 오실레이터 드라이버 등이 I/O 주변에 배치되어 있어서, 단순 GPIO 이상의 고속 인터페이스 (예: PCIe, SATA, HDMI 등)도 구현 가능합니다.

I/O 블록 또한 FPGA를 구성하는 비트스트림에 의해 동작 모드가 정해집니다.

비트스트림과 구성 메모리

지금까지 FPGA의 논리 블록(LUT/FF)과 라우팅, I/O 등에 프로그래머블 스위치가 있다고 설명했는데, 이 스위치들을 설정하는 정보의 집합을 비트스트림(bitstream)이라고 부릅니다.

비트스트림은 일종의 바이너리 파일로, FPGA 내부의 구성 메모리(configuration memory)에 로드됩니다. 대부분의 FPGA는 SRAM 기반 구성 메모리를 사용하므로 전원이 끊기면 설정이 사라집니다

따라서 전원 인가 시 외부 플래시나 호스트로부터 비트스트림을 로드해야 하죠. 일부 FPGA (예: Microsemi/Microchip사의 FPGA 등)는 플래시나 반가역적인 안티퓨즈 방식을 사용하여 전원 없이도 구성 유지가 가능하기도 합니다.

비트스트림은 FPGA 벤더의 툴체인을 통해 생성되며, HDL 설계 → 합성 → 구현 단계를 거치면 최종적으로 해당 FPGA 칩에 맞는 비트스트림 파일이 나옵니다.

이 파일을 JTAG 등을 통해 FPGA에 다운로드하면 LUT들의 테이블 값이 지정되고, 각 스위치 매트릭스가 연결 혹은 단절 상태로 설정되며, I/O 전기적 모드도 결정되는 등 FPGA가 사용자가 원하는 회로로 동작하게 됩니다.

필요시 언제든 새로운 비트스트림을 로드하여 재프로그램할 수 있다는 것이 FPGA의 유연성입니다. 이러한 유연성 덕분에 프로토타이핑, 연구개발, 저량 생산 제품 등에 FPGA가 널리 쓰이고 있습니다.

설계 수정이 필요한 경우 보드에 새로운 FPGA bitstream만 올리면 되니, 몇 달과 엄청난 돈이 드는 Silicon Re-spin보다 훨씬 민첩하고 경제적이죠.

정리: FPGA 내부 구조

(a) 다수의 LUT+FF로 구성된 논리 셀 블록들

(b) 이들을 연결하는 프로그래머블 배선망

(c) 다양한 인터페이스를 지원하는 I/O 블록

(d) 이 모두를 구성하는 비트스트림 메모리로 요약될 수 있습니다.

이러한 구조 덕분에 FPGA는 다양한 디지털 회로를 유연하게 구현할 수 있지만, 반대로 말하면 범용적으로 설계되어 있기 때문에 특정 회로를 구현할 때 불필요한 논리와 배선 오버헤드가 많이 들어갑니다.

이로 인해 동작 속도가 ASIC 대비 낮고 전력 효율도 떨어질 수밖에 없습니다. 다음으로 소개할 ASIC은 이러한 오버헤드를 극한으로 줄여 특정 기능에 최적화한 칩이라 할 수 있습니다.

ASIC의 내부 구조

ASIC(Application Specific Integrated Circuit)은 특정 용도나 응용에 맞춰 맞춤 설계된 반도체 칩을 의미합니다. 한번 제조되고 나면 더 이상 내부를 변경할 수 없으며, 오직 그 설계 시 정의한 기능만 수행합니다.

그렇다면 ASIC은 내부를 어떻게 설계하여 구현할까요? 규모나 설계 방법에 따라 차이가 있지만, 현대의 ASIC 대부분은 표준셀(Standard Cell) 기반 설계 기법을 사용합니다. 표준셀 기반 ASIC의 내부 구조와 물리적 설계 요소들을 핵심만 짚어 설명하겠습니다.

Standard cell based design

표준셀은 말 그대로 미리 표준화된 크기의 소형 논리 회로 셀입니다. AND, OR, XOR, 인버터 등의 불 논리 게이트나 플립플롭, 래치 등의 기억 소자 기능을 제공하는 트랜지스터/배선 구조의 그룹을 하나의 셀로 만든 것이죠.

각 표준셀은 내부적으로 수개의 MOSFET 트랜지스터로 구성되며, 셀의 입력/출력 핀, 전원 및 그라운드 핀 위치가 정의되어 있습니다.

모든 셀은 가로 폭은 기능에 따라 다르지만 세로 높이(height)는 동일하게 만들어져 있어서, 마치 레고 블럭처럼 가로로 쭉 붙이면 전원선(power rail)과 접지선(GND rail)이 일직선상에서 서로 맞물리도록 설계됩니다.

즉, 칩 설계 시 표준셀을 쭉 가로로 배치하면 상단의 VDD 선과 하단의 VSS 선이 쭉 이어져 전체 칩 전력망과 연결되지요.

ASIC 설계 시 논리 디자이너는 HDL로 회로를 설계하고 Synthesis 도구를 이용해 그 회로를 구현하는 데 필요한 표준셀들의 넷리스트를 얻습니다.

합성 결과물은 수만에서 수억 개에 이르는 셀 인스턴스들의 리스트와 연결 정보인데, 여기에는 예를 들어 “AND 셀 500개, OR 셀 200개, 플립플롭 100k개…” 이런 식으로 원하는 논리를 실현하기 위한 셀들이 모두 명시됩니다.

이후 배치 배선 도구(P&R)는 이 넷리스트를 입력으로 받아, 칩 면적 내에 표준셀들을 빈틈없이 배치(rows of standard cells)하고 각 셀의 입출력을 서로 배선(routing) 해서 연결합니다.

표준셀은 크기가 균일하므로 셀들을 여러 줄(row)로 쌓아 올려 배치하게 되는데, 이러한 셀 행(row)들이 칩 코어 영역 전체에 빼곡하게 채워지면 그 속에 우리가 원하는 논리가 구현되는 것입니다.

표준셀로 구성된 디지털 회로 외에도, ASIC 내부에는 메모리 매크로(SRAM/ROM), 아날로그 회로(PMIC, PLL 등), I/O 셀 등 특수 블록들이 포함될 수 있습니다.

이러한 블록들은 크기가 표준셀이 아니기 때문에, ASIC 플로어플래닝(floorplanning) 단계에서 적절한 위치에 배치해주고 남은 공간에 표준셀 행을 채워 넣는 방식으로 설계합니다.

예컨대 SoC ASIC이라면 CPU 코어, DSP, 온칩 메모리, IO 물리층(PHY) 같은 큰 블록들을 먼저 배치하고, 나머지 영역에 표준셀 논리들을 메워 넣는 식입니다.

표준셀 라이브러리에는 각 셀의 물리 레이아웃, 전기적 특성, 타이밍 특성 등이 포함되어 있어 EDA 도구가 이를 참조하여 배치/배선을 최적화합니다.

이렇게 완성된 레이아웃을 기반으로 마스크(mask)를 만들어 실리콘 웨이퍼에 회로를 구현해내면 비로소 ASIC 칩이 탄생합니다.

요약하면 ASIC 내부 구조는 미리 설계된 표준셀 부품들을 조립하여 만든 맞춤형 회로라고 할 수 있습니다.

FPGA가 범용 논리 블럭+라우팅으로 모든 것을 구성하는 반면, ASIC은 필요한 기능만 회로로 구현하므로 자원 낭비가 거의 없습니다.

이는 곧 더 높은 밀도와 성능, 전력효율로 이어집니다. 다만 그 설계를 처음부터 끝까지 완성하여 한번에 제조해야 하므로 유연성은 희생됩니다.

전력 분배망(Power Grid)과 클럭 트리(Clock Tree)

ASIC 칩 내부에는 수백만~수십억 개의 트랜지스터가 동작하기 때문에, 전체에 안정적인 전원을 공급하고 모든 플립플롭에 동일한 클럭 신호를 전달하는 것이 매우 중요합니다.

이를 담당하는 구조가 PDN: Power Delivery NetworkClock Tree입니다.

전력 분배망은 칩 곳곳에 전원(VDD)과 접지(GND)를 충분히 공급하기 위한 금속 배선 망입니다.

앞서 표준셀을 행으로 배치하면 각 행에 VDD/VSS 선이 일렬로 이어진다고 했는데, 이것만으로는 칩 중앙까지 전원이 충분히 전달되지 않을 수 있습니다.

그래서 상위 금속층들에서 격자 형태의 파워 그리드를 형성하여, 칩 전역에 걸쳐 전원선을 통하게 합니다.

마치 도로망에 고속도로가 있듯, 칩 주변 패드에서 들어온 VDD/GND를 굵은 메탈층으로 X자/Y자 방향으로 분산시키고, 중간중간 하위 메탈로 비아(via)를 통해 표준셀 전원선에 내려줍니다.

이렇게 하면 칩의 모서리부터 중심까지 전압 강하(IR drop)을 최소화하며 전원을 공급할 수 있습니다. 전력 망 설계는 전력 소모가 큰 블록 주변에 보강 메탈을 넣는다든지 하는 PDN 설계 단계의 중요한 부분입니다.

한편 Clock tree는 ASIC 내 모든 플립플롭에 동기화 신호(클럭)를 뿌려주는 배선망입니다. 간단히 나무(tree) 형태로 분배한다고 해서 클럭 트리라 부르지만, 실제로는 지연(skew)을 맞추기 위해 엄청나게 정교한 버퍼 삽입분기 배선 조정이 이뤄집니다.

수천만 개의 플립플롭에 클럭을 동일 타이밍에 전달하려면, 클럭 경로마다 지연을 어느정도 균일하게 해야 합니다.

이를 위해 클럭 소스(PLL 등)에서부터 주요 블록별로 분배 버퍼를 계층적으로 연결하여 트리를 만들고, 최종적으로 각 플립플롭 근처에 이르러서는 로컬 버퍼를 통해 신호를 깨끗하게 다듬어 줍니다.

고성능 ASIC에서는 클럭선만 별도로 메탈 최상층에 H-Tree 형태로 깔고, 그 아래로 분기하여 들어가는 방법도 씁니다.

클럭 트리는 칩에서 가장 빠르게 스위칭하는 신호망이라서 동적 전력 소모도 큰 부분인데, 그렇기에 트리 설계 시 불필요한 부하를 줄이고 지연을 최소화하는 CTS(Clock Tree Synthesis) 최적화가 핵심입니다.

전력망과 클럭 트리는 FPGA보다 ASIC에서 훨씬 중요하게 다뤄집니다.

FPGA는 이미 내부에 어느 정도 규격화된 전원/클럭 분배 구조가 있으나, ASIC은 설계자가 원하는 대로 배치할 수 있는 자유도 대신 직접 전원 계획(power planning)클럭 수합을 해줘야 하지요.

덕분에 ASIC은 칩 규모에 맞게 전원과 클럭을 최적화하여 성능을 극대화할 수 있습니다.

배선(Routing)과 물리적 구현

ASIC의 배선은 FPGA의 프로그래머블 인터커넥트와 대비되는 개념으로, 한 번 포토 리소그래피로 실리콘에 구현되면 변경할 수 없는 고정 배선입니다.

P&R 도구는 수많은 표준셀들의 입력과 출력을 연결하기 위해 다층 메탈 배선을 활용하여 최단 경로로 선을 긋습니다.

배선층은 일반적으로 낮은 메탈층은 좁고 짧은 신호용, 위로 갈수록 두껍고 전원/클럭용으로 쓰이는 식의 역할 분리가 있으며, 설계 규칙에 따라 비아를 통해 층간 연결을 합니다.

최종 배선이 완료되면 DRC/LSVS 검사를 통과해야 하고, 타이밍 분석을 통해 모든 경로가 원하는 속도를 만족하는지 검증합니다.

이는 FPGA 설계에서도 하는 일이지만, ASIC에서는 한번 테이프아웃하면 수정이 어려우므로 훨씬 엄격하게 진행됩니다.

ASIC의 배선 완료 후에는 패키지 I/O 배치, 전원 패드 연결, ESD 보호 회로 등의 추가 작업도 이뤄집니다. 결국 하나의 ASIC 칩은 이렇게 완성되며, 더 이상 바뀌지 않을 하나의 고정된 하드웨어 구현이 됩니다.

FPGA와 비교하여 ASIC 내부 구조의 특징을 요약하면 다음과 같습니다:

  • 필요한 논리만 포함하여 여분이 없는 최적화된 구조 (표준셀/커스텀 설계)
  • 효율적인 전력/클럭 분배로 대규모 동작에도 높은 성능 유지
  • 고정 배선으로 불필요한 지연 최소화, 설계된 대로만 동작
  • 그러나 한번 제작하면 수정 불가, 유연성 제로

이러한 ASIC의 특성 덕분에 성능, 전력, 면적 면에서 FPGA보다 훨씬 유리합니다. 다음 절에서는 FPGA와 ASIC을 기술적·비즈니스적 측면에서 직접 비교해보겠습니다.

FPGA vs ASIC: 기술, 비용, 양산성 비교

FPGA와 ASIC은 그 태생부터 지향점이 다르기 때문에 여러 측면에서 뚜렷한 장단점이 있습니다. 주요 항목들을 중심으로 두 접근의 차이를 비교하면 다음과 같습니다:

  • 성능 및 전력 효율: ASIC은 특정 목적에 맞게 회로를 직접 설계하므로 동작 속도가 빠르고 소비 전력이 낮습니다. 불필요한 논리 소자가 없고 배선도 최적화되어 있어, 동일한 기능을 수행할 때 FPGA보다 높은 클럭 속도와 낮은 전력을 달성합니다[22]. FPGA는 LUT, 프로그래머블 스위치 등으로 인한 논리/배선 지연 때문에 일반적으로 ASIC 대비 성능은 한 등급 낮고 전력 소모는 높습니다. 대략적인 예로, FPGA는 ASIC에 비해 수십 MHz ~ 몇백 MHz 정도 낮은 최대 클럭을 갖고, 동일 연산을 수행하는 데 몇 배 이상의 전력을 사용할 수 있습니다. 물론 최신 FPGA는 DSP 블록, 메모리 등 하드 IP를 내장하여 격차를 줄였지만, 전반적인 효율 면에서는 ASIC 우위가 명확합니다[18].
  • 유연성과 개발 기간: FPGA는 재프로그램 가능하다는 최대 강점이 있습니다. 설계를 수정하거나 기능을 변경하고 싶을 때 곧바로 HDL을 고쳐 새로운 비트스트림만 올리면 됩니다. 덕분에 개발 기간이 크게 단축되고, 프로젝트 초기에 프로토타입을 만들어 시험해보기 좋습니다[24]. 또한 한 번 고객사에 납품한 뒤에도 현장에서 펌웨어 업데이트 하듯 하드웨어 기능 업그레이드를 할 수 있습니다. 반면 ASIC은 설계 → 검증 → 제조에 몇 달에서 1~2년까지 걸릴 수 있고, 한번 생산되면 하드웨어 기능을 변경할 수 없습니다[25]. 중간에 버그가 발견되면 칩을 리비전하여 다시 만들어야 하므로 리드타임이 매우 깁니다. 따라서 시장 요구 변화에 기민하게 대응하려면 FPGA쪽이 유리하고, ASIC은 초기 기획 단계에서 완벽에 가깝게 구현해야 합니다.
  • 개발 비용(NRE) 및 단가: ASIC 개발에는 회로 설계 인건비, EDA 툴 사용료, 포토마스크 제작비 등 막대한 초기 투자비용(NRE)이 듭니다. 최첨단 공정일수록 마스크 셋 비용이 수백억 원에 달하기도 하므로, 웬만한 물량이 아니면 투자 회수가 어렵습니다[26]. 이에 비해 FPGA는 기성품 칩을 그대로 쓰는 것이므로 NRE 비용이 거의 0에 가깝습니다. 대신 FPGA는 칩 한 개 단가가 높습니다. 반도체 기업이 아닌 일반 소비자는 FPGA 칩을 몇만원~수십만원 주고 사야 하지만, ASIC은 대량 생산 시 칩 한 개당 몇 천 원, 심지어 몇 백 원까지 단가를 낮출 수 있습니다[27]. 요약하면 FPGA는 소량일 때 저렴하고, ASIC은 대량일 때 압도적으로 저렴합니다. 예를 들어 100개 필요한 특수 장비를 FPGA로 구현하면 ASIC으로 굳이 만들 필요가 없지만, 1억 개 팔리는 스마트폰용 칩이라면 초기 100억을 투자해 ASIC화하는 것이 결과적으로는 훨씬 경제적입니다.
  • 양산성과 신뢰성: FPGA는 반제품 상태의 범용 칩을 이용하므로, 제품 양산 시 공급망에서 동일 FPGA 확보가 중요합니다. 반대로 ASIC은 아예 그 제품만을 위한 칩을 찍어내므로 필요한 만큼 생산하면 됩니다. 다만 수율(yield) 이슈가 있을 수 있어 초기엔 수율 개선 노력이 필요합니다. 신뢰성 측면에서 FPGA는 검증된 IP들이 모인 것이므로 초기에 리스크가 적고, ASIC은 새로 설계한 만큼 설계 결함으로 인한 실패 가능성을 잘 관리해야 합니다. 따라서 대기업이 아닌 소규모 스타트업에서는 처음부터 ASIC에 도전하기보다 FPGA로 프로토타입을 만들고 시장을 테스트한 후, 확신이 들면 ASIC으로 전환하는 전략을 많이 취합니다. 엔지니어링 관점에서도 FPGA로 먼저 검증한 논리를 ASIC화하면 비교적 안전하게 칩을 만들 수 있습니다. 실제로 많은 제품 개발 과정에서 "FPGA로 프로토타입 → ASIC 양산" 단계가 하나의 정석처럼 여겨집니다[28].
  • 기능 통합도 및 기타: ASIC은 설계 목표에 따라 여러 기능을 한 칩에 통합(SoC)하거나 아날로그/RF회로까지 넣을 수 있습니다. FPGA도 SoC FPGA라고 해서 ARM 프로세서 등을 내장한 제품이 있지만, 전체 시스템 통합도 면에서는 커스텀 ASIC이 훨씬 융통성이 높습니다. 또한 ASIC은 IP 보호 측면에서 복잡한 회로를 하드와이어로 구현하므로 역공학이 상대적으로 어려워 보안에 유리하다는 장점도 언급됩니다[29].

이 표에서 보듯, 기술적 요구사항과 비즈니스 상황에 따라 FPGA를 선택할지 ASIC으로 갈지 결정하게 됩니다.

GPU와 CPU도 ASIC일까?

한 가지 흥미로운 질문: GPUCPU처럼 우리에게 익숙한 프로세서 칩들도 ASIC에 속하는 걸까요?

답은 “넓은 의미에서는 그렇다” 입니다.

결국 GPU든 CPU든 특정 목적을 위한 전용 집적회로임에는 틀림없습니다.

예를 들어 NVIDIA의 최신 GPU를 보면 그래픽 및 병렬 연산에 특화된 수만 개의 코어와 고속 메모리 인터페이스 등으로 구성된, 그래픽/AI 응용 전용 아키텍처입니다.

즉, 범용 CPU에 비해 응용 특화가 되어 있으므로, GPU를 "그래픽 및 병렬연산용 ASIC"이라고 부를 수도 있습니다.

마찬가지로, PC나 스마트폰용 CPU도 범용 프로세서이긴 하지만 그 자체가 하나의 커스텀하게 설계된 칩이므로 ASIC 설계 기법으로 만들어집니다.

그러므로, NVIDIA의 물리적 설계 엔지니어가 QTI로 가든, QTI RTL 엔지니어가 NVIDIA로 가든 매우 자연스러운 상황입니다.

다만 일반적으로 업계에서는 CPU나 GPU는 워낙 범용 프로그래머블 프로세서의 성격이 강하기 때문에 ASIC이라고 지칭하지 않고 그냥 CPU, GPU로 부르고, ASIC이라는 용어는 주로 특정 응용만 수행하는 비프로그램형 칩을 가리키는 데 씁니다.

예를 들어 비트코인 채굴기용 ASIC이나 자율주행 AI 가속 ASIC처럼, 한 가지 기능에만 몰두하도록 설계된 칩들을 ASIC이라고 부르는 것이죠.

조금 더 구분하자면,

CPU/GPU = 범용 프로세서, ASIC = 특정 기능 전용 칩으로 언어습관상 구별하지만, 기술적으로 보면 CPU나 GPU도 표준셀 기반의 맞춤 설계 칩이라 넓은 범주의 ASIC에 포함된다고 볼 수 있습니다.

참고로 FPGA 제조사들도 종종 FPGA를 "프로그래머블 ASIC"이라고 표현하기도 하는데, 이는 FPGA가 여러 번 재구성 가능하다는 점만 빼면 논리적으로 하나의 ASIC처럼 동작하기 때문입니다.

결론적으로 GPU나 CPU는 엄밀히 말하면 ASIC의 하위분류이지만, 일반 회화에서는 구분해서 부른다는 정도로 이해하면 되겠습니다.

결론: 산업은 결국 ASIC으로 향한다

FPGA와 ASIC의 내부 구조와 특성, 그리고 장단점을 비교해보았습니다. FPGA는 유연성과 짧은 개발 주기로 전자공학도와 엔지니어에게 훌륭한 도구가 되어 주었고, 앞으로도 프로토타이핑이나 저용량 특수 분야에서 중요한 역할을 할 것입니다.

반면 ASIC은 한층 높은 성능과 효율, 대량 생산에 따른 비용 우위 때문에 대규모 산업에서는 궁극적인 선택이 됩니다.

우리가 매일 쓰는 스마트폰의 SoC, PC의 CPU/GPU, 데이터센터의 AI 가속기 칩, 자동차의 ADAS 칩 등은 모두 수백억 개의 트랜지스터로 이루어진 ASIC들입니다.

특히 최근 AI 붐을 계기로, GPU로 처리하던 딥러닝 연산을 보다 효율적으로 하기 위한 NPU/TPU 같은 ASIC 개발이 폭발적으로 늘고 있습니다. 이는 미래 기술의 방향성이 범용 프로세서 → 특화된 ASIC 가속기로 옮겨가고 있음을 보여주는 대목입니다.

FPGA는 개발 용이성 덕분에 스타트업이나 연구 단계에서 빛을 발하지만, 제품이 성공하여 전 세계 수백만 명이 쓰게 될 단계에 이르면 결국 ASIC으로 전환하는 경향이 있습니다.

ASIC은 초기 투자와 시간이 많이 들지만, 한 번 완성되면 해당 응용분야에서 타의 추종을 불허하는 성능/비용 경쟁력을 발휘하기 때문입니다.

요즘은 반도체 설계 전문 인력이 부족해 ASIC 개발의 문턱이 높다는 얘기도 나오지만, 동시에 클라우드 FPGA 서비스, 고수준 합성(HLS) 등으로 FPGA 활용이 늘면서 검증된 디자인을 ASIC으로 빠르게 이식하는 흐름도 커지고 있습니다.

"산업은 ASIC으로 간다"는 말은, 최종적으로 대량의 사용자에게 가치를 전달하는 것은 맞춤형 ASIC 칩이라는 의미입니다.

FPGA로 시작된 혁신이라도 시장이 커지면 ASIC으로 구현되어 더 큰 효율과 경제성을 이루게 됩니다.

앞으로도 반도체 산업은 이러한 FPGA와 ASIC의 상호보완적 관계 속에서 발전해 나갈 것이며, 궁극적으로 고성능·저전력·저비용을 향한 ASIC 중심의 진화가 지속될 것으로 전망합니다.

반도체 산업의 최종 방향은 결국 ASIC으로 향합니다.

Enjoyed this article?

Get deep-dive semiconductor analysis and career insights delivered weekly. Free forever — no paywall, no upsell. Funded by sponsorships with a strict editorial firewall (Editorial Standards).

Work with me

Consulting · Collaboration · Support

Paid 1:1 technical consulting, speaker invitations, collaboration proposals, or just want to say thanks — all welcome.

View options →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
Support