에뮬레이션과 FPGA 프로토타이핑이 필요한 이유와 차이
새 공항을 열기 전에는 리허설이 필요합니다. 도면과 계산으로 승객 흐름을 예측하는 방법, 실제 터미널에 모의 승객 수천 명을 투입해 체크인부터 탑승까지 돌려 보는 종합 리허설, 규모를 줄인 시범 구역에서 항공편을 반복해 연습하는 방법이 있습니다.
칩 설계에서 도면 위 예측은 시뮬레이션이고, 종합 리허설은 에뮬레이션이며, 시범 구역 연습은 FPGA 프로토타이핑에 해당합니다. 에뮬레이션과 FPGA 프로토타이핑은 큰 칩의 동작을 실제 속도에 가깝게 돌려 보려는 목적이 같지만, 규모와 비용, 관찰 가능성이 서로 다릅니다.
비유와 다른 점이 있습니다. 칩에서는 리허설의 대상이 건물이 아니라 아직 만들어지지 않은 하드웨어이고, 그 위에서 돌아갈 소프트웨어까지 함께 시험해야 합니다. 이 점이 시뮬레이션만으로는 부족한 이유입니다.
에뮬레이션과 FPGA 프로토타이핑이 필요한 이유, 시뮬레이션의 속도 한계
RTL 시뮬레이션은 소프트웨어가 회로의 동작을 한 사이클씩 계산하는 방식이어서, 설계가 커질수록 실행 속도가 크게 떨어집니다. 대형 SoC 전체를 시뮬레이션하면 실제 칩이 1초에 하는 일을 따라가는 데에만 아주 긴 시간이 걸립니다.
문제는 칩 안에서 운영체제와 드라이버 같은 소프트웨어가 돌아야 하는 경우입니다. 부팅처럼 수십억 사이클이 필요한 작업은 시뮬레이션으로는 현실적인 시간 안에 끝낼 수 없고, 하드웨어 오류와 소프트웨어 오류가 맞물린 문제는 둘을 함께 돌려야 드러납니다.
칩이 나온 뒤에야 소프트웨어를 시험하면 개발 일정이 직렬로 늘어지고, 오류가 발견되어도 칩을 고치려면 마스크를 다시 만들어야 합니다. 그래서 칩이 나오기 전에 소프트웨어를 돌려 볼 수 있는 환경이 필요합니다.
속도 차이를 숫자로 비교해 보기
에뮬레이션과 FPGA 프로토타이핑이 시뮬레이션보다 얼마나 빠른지 가상의 숫자로 계산해 보겠습니다. 운영체제 부팅에 100억 사이클이 필요하다고 가정하고, 환경별 실행 속도도 대략적인 가상 값으로 둡니다.
가상 계산 예시, 100억 사이클을 실행하는 데 걸리는 시간
- RTL 시뮬레이션 1 kHz: 10,000,000초, 약 116일
- 에뮬레이션 1 MHz: 10,000초, 약 2.8시간
- FPGA 프로토타입 10 MHz: 1,000초, 약 17분
- 실제 칩 1 GHz: 10초
실제 속도는 설계의 크기와 구성에 따라 크게 달라지므로 이 값들은 단계별 차이의 자릿수를 보여 주는 예시입니다. 자릿수로 보면 시뮬레이션에서 에뮬레이션으로 가면 약 1,000배, 프로토타입으로 가면 다시 약 10배가 빨라지는 셈입니다.
에뮬레이션, 큰 설계를 전용 장비에 올려 실행하는 방식
에뮬레이션(emulation)은 설계를 전용 하드웨어 장비에 올려 실제 회로처럼 실행하는 방법입니다. 장비 안에는 설계를 매핑하는 전용 칩이나 대용량 FPGA가 들어 있고, 여러 보드를 묶어 매우 큰 설계도 담을 수 있도록 확장됩니다.
가장 큰 장점은 큰 설계를 시뮬레이션보다 훨씬 빠르게 돌리면서도 내부 신호를 폭넓게 관찰할 수 있다는 점입니다. 실패한 시점의 신호를 파형으로 확인할 수 있어 하드웨어 디버깅이 가능합니다.
에뮬레이션의 주된 쓰임
- 운영체제 부팅과 드라이버 시험처럼 하드웨어와 소프트웨어를 함께 돌리는 검증
- 테스트벤치의 일부를 장비로 옮겨 대규모 시뮬레이션을 가속하는 연동
- 전력 분석에 쓸 실제에 가까운 동작 패턴 확보
- 실제 장비와 연결해 시스템 안에서 확인하는 인서킷 에뮬레이션
대신 장비가 매우 비싸고 여러 팀이 시간을 나눠 써야 하며, 설계를 장비에 올릴 수 있는 형태로 컴파일하는 데에도 시간이 걸립니다. 또 실제 칩보다 느려서 속도에 민감한 외부 인터페이스를 직접 연결하려면 속도를 맞춰 주는 중간 장치가 필요합니다.
FPGA 프로토타이핑, 빠르고 저렴한 대신 치르는 것
FPGA 프로토타이핑(FPGA prototyping)은 설계를 상용 FPGA 보드에 올려 실제 하드웨어처럼 돌리는 방법입니다. FPGA는 회로 구성을 다시 쓸 수 있는 칩이어서, ASIC으로 만들 설계를 미리 축소한 환경에서 실행해 볼 수 있습니다.
속도는 세 방법 중 실제 칩에 가장 가깝고, 장비 비용이 에뮬레이터보다 낮아 소프트웨어 팀에 여러 대를 나눠 줄 수 있다는 점이 큰 장점입니다. 실제 PCIe나 이더넷 같은 외부 인터페이스를 연결해 시험하기에도 유리합니다.
치르는 대가도 있습니다. 설계가 FPGA 한 개에 들어가지 않으면 여러 개로 나누어야 하는데, 나눈 조각 사이의 연결선이 모자라 신호를 시분할로 전달하면 속도가 떨어집니다. 내부 신호를 보는 능력도 에뮬레이터보다 제한되어, 보고 싶은 신호를 미리 정해 연결해 두어야 합니다.
ASIC용 설계를 그대로 올릴 수도 없습니다. 클록 게이팅 같은 구조와 ASIC용 메모리, 아날로그 블록은 FPGA에서 쓸 수 있는 대체품으로 바꿔야 하므로 변환 작업이 따릅니다.
설계를 FPGA 프로토타입에 올리는 흐름
FPGA 프로토타입 구축 흐름
- 프로토타입의 목적(소프트웨어 개발, 인터페이스 시험 등)과 목표 속도를 정합니다.
- ASIC 설계를 FPGA용으로 바꿉니다. 메모리와 클록 구조, 아날로그 블록을 FPGA에 맞는 대체품으로 교체합니다.
- 설계가 FPGA 한 개에 들어가지 않으면 여러 개로 나누고(파티셔닝) 조각 사이의 연결 신호를 배정합니다.
- FPGA용 합성과 배치 배선을 수행하고 목표 클록을 맞추도록 타이밍을 정리합니다.
- 보드에 올려 기본 동작을 확인한 뒤 소프트웨어 팀에 배포합니다.
이 과정에서 기능이 바뀌지 않았는지는 별도로 확인해야 합니다. 그래서 프로토타입에서 통과했다는 사실이 ASIC의 모든 동작을 보증하지는 않습니다.
가시성과 타이밍에 대한 흔한 오해
FPGA 프로토타입에서 돌았으니 ASIC에서도 같은 타이밍으로 동작한다는 것은 흔한 오해입니다. FPGA의 지연은 FPGA 내부 구조에서 정해지므로 ASIC의 셀과 배선 지연과 다르고, 이 방법은 기능을 확인하는 도구이지 ASIC의 타이밍을 보증하는 도구가 아닙니다.
에뮬레이션도 마찬가지입니다. 장비에서 실행되는 회로는 RTL이나 합성 결과를 기능적으로 구현한 것이어서, 셋업과 홀드 같은 실제 칩의 타이밍 문제는 정적 타이밍 분석과 사인오프에서 따로 확인합니다.
관찰 능력의 차이도 구분해 두어야 합니다. 시뮬레이션은 모든 신호를 볼 수 있고, 에뮬레이션은 대부분의 신호를 볼 수 있으며, FPGA 프로토타입은 미리 연결해 둔 신호만 볼 수 있습니다. 빠를수록 보이는 것이 줄어드는 경향이라고 정리할 수 있습니다.
단계에 따라 도구를 나눠 쓰는 방법
시프트 레프트(shift-left)는 소프트웨어 개발과 검증을 칩이 나오기 전의 앞 단계로 당기는 흐름을 가리킵니다. 하드웨어 설계가 진행되는 동안 소프트웨어 팀이 같은 설계를 올린 환경에서 개발을 시작하면, 칩이 나왔을 때 곧바로 동작하는 소프트웨어를 갖게 됩니다.
에뮬레이션과 FPGA 프로토타이핑은 이 흐름에서 단계에 따라 나눠 쓰입니다. 설계 초기의 블록 단위 검증은 시뮬레이션, 칩 전체의 부팅과 하드웨어 소프트웨어 통합은 에뮬레이션, 소프트웨어 개발의 반복과 외부 인터페이스 시험은 FPGA 프로토타입이 맡는 식입니다. 어떤 조합을 고를지는 설계 규모와 일정, 예산에 따라 달라집니다.
시뮬레이션과 에뮬레이션과 FPGA 프로토타입 비교 표
| 구분 | RTL 시뮬레이션 | 에뮬레이션 | FPGA 프로토타입 |
|---|---|---|---|
| 실행 속도(자릿수) | kHz 수준 | kHz에서 MHz 수준 | 수 MHz에서 수십 MHz 수준 |
| 수용 규모 | 설계가 커질수록 급격히 느려짐 | 매우 큰 설계도 확장 | FPGA 용량과 분할의 한계 |
| 관찰 능력 | 모든 신호 | 대부분의 신호 | 미리 연결한 신호 |
| 비용 | 낮음 | 매우 높음 | 에뮬레이터보다 낮음 |
| 준비 부담 | 짧음 | 컴파일에 시간 소요 | FPGA용 변환과 분할 작업 |
| 주된 용도 | 블록 단위 기능 검증 | 칩 전체의 하드웨어 소프트웨어 통합 | 소프트웨어 개발과 인터페이스 시험 |
| 놓치기 쉬운 점 | 실행 속도 | 실제 칩의 타이밍 | ASIC과 다른 지연 |
핵심 정리
에뮬레이션과 FPGA 프로토타이핑은 시뮬레이션이 닿지 못하는 속도의 영역을 메워 줍니다. 에뮬레이션은 큰 설계를 폭넓은 관찰 능력과 함께 돌리고, FPGA 프로토타입은 가장 빠르고 저렴하게 소프트웨어 개발 환경을 제공하지만 관찰과 타이밍 면에서 한계를 가집니다.
공항의 비유로 돌아가면 도면 계산은 구조의 오류를, 종합 리허설은 전체 흐름의 막힘을, 시범 구역 연습은 반복 숙련을 담당합니다. 칩에서는 어느 하나가 다른 둘을 대신하지 않으므로 단계별로 목적을 정해 쓰고, 실제 칩의 타이밍은 사인오프에서 확인한다는 점을 기억해 두면 됩니다.
면접 대비 질문
면접 대비 질문에뮬레이션과 FPGA 프로토타이핑이 필요한 이유를 시뮬레이션과 비교해 설명하고, 두 방식의 차이를 말해 보세요.
[답변 포인트] RTL 시뮬레이션은 설계가 커질수록 느려져 운영체제 부팅 같은 수십억 사이클 규모의 소프트웨어 검증이 현실적이지 않다는 점으로 시작합니다. 에뮬레이션은 전용 장비로 큰 설계를 빠르게 돌리면서 내부 신호를 폭넓게 볼 수 있지만 비용이 크고 컴파일 시간이 필요하고, FPGA 프로토타이핑은 가장 빠르고 저렴해 소프트웨어 개발과 외부 인터페이스 시험에 좋지만 분할과 신호 관찰, ASIC과 다른 타이밍이라는 한계가 있다고 대비합니다. 시프트 레프트 관점에서 단계별로 도구를 나눠 쓰고, 실제 칩의 타이밍은 정적 타이밍 분석과 사인오프에서 확인한다는 점까지 덧붙이면 좋습니다.









