[개념]
📌 FPGA
: Field Programmable Gate Array
프로그래밍 가능한 반도체로, 사용자가 회로를 프로그래밍하여 재구성할 수 있으며,
주로 프로토타이핑과 가속화용으로 사용된다.
📌 ASIC
: Application Specific Integrated Circuit
특정 응용 프로그램에 특화된 반도체로, 고유한 기능을 위해 설계되며
생산 비용과 소요 시간이 크지만 요청한 기능에 최적화된 성능을 제공한다.
📌 SoC
: System On Chip
하나의 집적회로(IC)에 모든 시스템 구성 요소를 통합하는 기술로
다양한 IP를 포함하여 시스템을 단일 칩으로 구현하며
모바일 디바이스 및 임베디드 시스템에서 주로 사용된다.
cf) IP란?
: Intellectural Property
재사용 가능한 디자인 블록으로, 반도체나 소프트웨어 개발에서
특정 기능 또는 모듈을 나타낸다. 이러한 IP는 다양한 응용프로그램에서
사용되며, 개발 시간을 단축하고 효율성을 높이는 데 도움을 준다.
[차이점]
📌 FPGA와 ASIC의 차이점
FPGA와 ASIC은 디지털 회로 설계와 제작에 관련된 공통점은 많지만, 중요한 차이점이 몇 가지 존재한다.
먼저, FPGA와 ASIC의 Front-End 설계 방법은 유사하며, VHDL 또는 스키메틱 캡텨와 같은 도구를 사용하여 디지털 로직을 설계하고 시뮬레이션을 통해 회로의 동작을 검증한다. 이러한 과정은 두 기술 모두에서 동일하다.
하지만 FPGA와 ASIC은 Back-End 설계에서 큰 차이를 보인다.
FPGA는 이미 내부에 특정 셀들이 구성되어 있어, 회로 설계를 마치면 회로를 직접 다운로드하여 보드에서 동작시킬 수 있고 이 것은 FPGA로 프로토타입을 개발하는데 많은 시간을 단축시켜 준다.
반면, ASIC은 Back-End 설계에서 웨이퍼에 셀을 배치하고 연결하는 작업이 필요하다.
이 과정에서 각 셀의 위치를 미리 알 수 없으므로 FPGA보다는 타이밍 예측이 어려울 수 있고 ASIC의 제작 비용 및 웨이퍼 생산에 많은 시간과 자금 투자가 필요하기 때문에 실수할 경우 수십 억 원에 이르는 막대한 손실을 가져올 수 있다. 또한 ASIC 설계 소프트웨어는 이러한 복잡성을 다루기 위해 특별한 알고리즘을 사용하며, 이로 인해 소프트웨어 비용이 높아지는 단점을 가지고 있다.
📌 ASIC과 SoC의 차이점
ASIC과 SoC는 반도체 분야에서 중요한 역할을 한다.
ASIC은 응용 프로그램에 특화되며 주문형으로 설계되고 Full/Semi Custom의 두 가지 형태로 나뉜다.
✅ Full Custom
: 이 방식은 모든 기능ㅇ을 수작업으로 제작하는 방식이다.
이를 통해 고도의 기능을 작은 크기로 구현할 수 있지만, 설계와 제작에 많은 시간이 소요된다.
Full-Custom ASIC은 주로 DRAM 및 아날로그 분야에서 사용된다.
✅ Semi Custom
: 이 방식은 라이브러리에서 기본 셀을 사용하여 디지털 로직을 설계한다.
로직 설계 후, Back-End 엔지니어는 웨이퍼 데이터베이스를 생성하여 웨이퍼에
셀을 배치하고 연결한다. 이 방식은 Fumm-Custom에 비해 설계 시간이 적게 들지만,
웨이퍼 상에 공간을 더 많이 차지한다는 단점이 있다.
SoC는 시스템의 모든 구성 요소를 한 개의 집적회로(IC)에 통합하는 개념이다.
SoC는 디지털 로직 뿐만 아니라 메모리, 아날로그 기능, 프로세서(Core IP) 등 다양한 IP를 포함하고
대부분의 반도체 제조 업체에 의해 개발 및 사용되며, 하나의 IC로 시스템을 구축할 수 있도록 돕는다.
따라서 ASIC은 주로 응요프로그램에 특화된 반도체를 설계하고 생산하는 데 사용되며,
SoC는 시스템을 한 개의 IC에 통합하는 기술적인 접근 방식이다.
📌 요약
FPGA와 ASIC은 Front-End 설계에서 유사하지만 Back-End 설계에서 차이를 보인다.
ASIC은 주분형 반도체로 Full/Semi custom 형태로 나뉘며, 설계 및 제작에 많은 비용과 시간이 소요된다.
반면 SoC는 시스템의 모든 구성 요소를 한 IC에 집적시키는 개념으로 다양한 IP를 사용하여
시스템을 구현한다. 이러한 기술들은 반도체 분야에서 각각 중요한 역할을 담당하고 있다.
'# Programming > - FPGA 관련 지식' 카테고리의 다른 글
[FPGA] RTL에서의 저전력 설계 방법(2/2) - Multi Vth, Multi Vdd, DVFS (1) | 2023.12.08 |
---|---|
[FPGA] RTL에서의 저전력 설계 방법(1/2) - Clock Gating, Power Gating (0) | 2023.12.08 |
H/W 통신 프로토콜의 모든 것 Part.1 - UART, SPI, I2C (1) | 2023.12.07 |
[FPGA] Hardware Design의 이해, RTL과 FPGA란? (1) | 2023.09.20 |