정밀 PCB 제조, 고주파 PCB, 고속 PCB, 표준 PCB, 다중 계층 PCB 및 PCB 조립.
가장 신뢰할 수 있는 PCB 및 PCBA 맞춤형 서비스 팩토리
PCB 블로그

PCB 블로그 - FPGA 및 마이크로컨트롤러

PCB 블로그

PCB 블로그 - FPGA 및 마이크로컨트롤러

FPGA 및 마이크로컨트롤러

2023-11-17
View:758
Author:iPCB

FPGA는 주로 디지털 회로로 구성된 통합 칩으로 프로그래밍 가능한 논리 부품 (PLD) 의 일종입니다.전용 집적회로(ASIC) 분야의 반맞춤형 회로로 등장한 FPGA는 맞춤형 회로의 단점을 해결할 뿐만 아니라 원래 프로그래밍 가능 부품에서 프로그래밍 가능한 문 회로 수의 제한을 극복했다.유연성과 재구성성이 특징이며 통신, 디지털 신호 처리 및 임베디드 시스템 등에 널리 사용됩니다.프로그래밍 가능한 논리 유닛과 프로그래밍 가능한 상호 연결 자원으로 구성된 프로그래밍 가능한 논리 유닛입니다.


FPGA

마이크로컨트롤러는 중앙처리장치(CPU), 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 각종 I/O 포트와 인터럽트 시스템 등 데이터 처리 능력을 실리콘 칩에 집적하는 초대형 집적회로 기술을 이용해 타이머/카운터(디스플레이 구동회로, 펄스폭 변조회로, 아날로그 멀티플렉터, A/D 동글 등) 등 소형 컴퓨터 기능으로 구성된 종합 제어 시스템이다.


FPGA와 마이크로컨트롤러의 차이점(마이크로컨트롤러 vs FPGA)

1) 성능 표현

FPGA와 마이크로컨트롤러의 성능을 비교할 때 이들이 수행하도록 설계된 작업의 성격을 고려할 필요가 있다. FPGA는 작업을 병렬로 처리하는 데 능하지만 마이크로컨트롤러는 순차적 처리에 최적화돼 있다.


FPGA는 동시에 여러 작업을 수행할 수 있습니다.이러한 병렬성을 통해 FPGA는 디지털 신호 처리, 이미지 처리 및 암호학과 같은 병렬 처리가 필요한 애플리케이션에서 고성능을 구현할 수 있습니다.예를 들어, FPGA는 여러 데이터 스트림을 병렬로 처리하여 고대역폭 신호 또는 고해상도 이미지를 실시간으로 처리할 수 있습니다.


마이크로컨트롤러는 순차적으로 작업을 처리하도록 설계되었습니다.이러한 성능은 CPU 클럭 속도, 스키마 및 명령 세트 등에 따라 달라집니다.


2) 에너지 소비

전력 소비량은 시스템의 전반적인 효율성, 배터리 수명 및 열 관리에 영향을 미치기 때문에 FPGA 및 마이크로컨트롤러를 비교할 때 고려해야 할 핵심 요소입니다.


FPGA는 일반적으로 마이크로컨트롤러보다 더 많은 전력을 소비합니다.FPGA의 전력 소비량은 활성 논리 구성 요소의 수, 연결된 스위치 빈도 및 I/O 활동 등에 따라 달라집니다.고성능 병렬 처리가 필요한 애플리케이션에서 FPGA가 제공하는 성능 이점은 전력 소비량을 증가시킬 수 있습니다.


마이크로컨트롤러는 일반적으로 FPGA보다 더 적은 전력을 소비합니다.이러한 전력 소비량은 CPU 클럭 속도, 주변 장치 작업 및 장치의 전력 관리 기능 등에 따라 달라집니다.많은 마이크로컨트롤러에는 절전 모드 및 동적 전압 조절과 같은 고급 전원 관리 기능이 포함되어 있어 저활성 시간대의 전력 소비량을 더욱 줄일 수 있습니다.


3) 유연성 및 사용자 정의

FPGA는 프로그래밍 가능한 아키텍처로 인해 설계자가 특정 요구 사항에 따라 맞춤형 디지털 회로를 만들 수 있는 유연성과 사용자 정의성이 뛰어납니다.FPGA 내의 논리 블록, 상호 연결 및 I/O 블록은 간단한 논리 게이트에서 복잡한 디지털 신호 처리 알고리즘에 이르기까지 다양한 디지털 기능을 구현하도록 구성 될 수 있습니다.


4) 개발 시간 및 복잡성

FPGA 개발은 더욱 복잡하고 시간이 많이 걸립니다.FPGA의 개발 과정은 일반적으로 VHDL 또는 Verilog와 같은 하드웨어 설명 언어 (HDL) 를 사용하여 코드를 작성하는 것과 관련이 있습니다.


다양한 마이크로컨트롤러가 있으며 각 제품은 특정 목적에 맞게 최적화되어 기업의 비용 절감에 도움이 됩니다.예를 들어, 아날로그 동글 (ADC), USB 포트 2 개, GPIO (General I/O) 핀 최소 30 개가 필요한 경우 이러한 요구 사항을 완벽하게 충족하는 마이크로 컨트롤러를 선택할 수 있습니다.USB 인터페이스가 하나만 필요한 경우 이 사양에 맞는 다른 마이크로컨트롤러를 사용할 수 있습니다.이러한 다기능성을 통해 조직은 불필요한 기능에 대한 비용 없이 가장 저렴한 마이크로컨트롤러를 선택하여 비용을 절감할 수 있습니다.


이에 비해 FPGA의 범용성은 훨씬 높다.단일 FPGA를 사용하면 USB 인터페이스가 없는 ADC 인터페이스 5개 또는 ADC 인터페이스가 없는 USB 인터페이스 3개를 구성할 수 있습니다.FPGA는 백지처럼 다양한 애플리케이션 요구를 지원하기 위한 내부 라인 (즉, 노선) 이 많지만 비용과 복잡성을 증가시킨다.대부분의 경우 조직은 사용하지 않는 추가 기능과 유연성에 대해 비용을 지불할 필요가 없습니다.


수량도 원가의 관건적인 요소이다.1000만 개의 마이크로컨트롤러를 구매하는 비용은 10만 개의 FPGA 구매 비용보다 훨씬 낮으며, 이는 소비자 전자 제품에서 흔히 볼 수 있는 현상이다.FPGA의 생산 및 판매 수량은 일반적으로 작기 때문에 단가가 높다.이는 FPGA의 수량이 증가하면 가격이 하락할 수 있지만 수량의 증가는 가격이 하락해야 한다는 순환을 구성한다.그렇다면 FPGA의 비용이 마이크로컨트롤러의 비용과 비슷하다면 더 많은 FPGA를 사용할 것인가?가능하지만 FPGA의 사용난이도가 훨씬 높아 FPGA의 보급에 불리하다.


마이크로컨트롤러는 특정한 목적을 위해 설계되었기 때문에 비교적 쉽게 설정할 수 있으며 보통 몇 시간 내에 설정하고 실행할 수 있다.반면 FPGA는 모든 내부 구성 요소를 프로그래밍해야 하기 때문에 시간이 많이 걸린다.일부 하드 IP 모듈을 사용할 수 있지만 대부분의 장치는 내부적으로 설계해야 하는 프로그래밍 가능한 논리입니다.Verilog 또는 VHDL로 코드를 작성하는 것은 C보다 시간이 더 많이 걸립니다. C는 일반적으로 더 높은 수준에서 코드를 작성할 수 있기 때문에 마이크로 컨트롤러 프로그램을 작성하는 데 가장 선호하는 언어입니다. 코드 중 한 줄은 더 많은 기능을 구현할 수 있습니다.이에 비해 Verilog 및 VHDL을 사용하는 저급 프로그래밍은 별도의 도어 회로와 케이블을 수동으로 생성해야 하므로 복잡성과 비용이 증가합니다.엔지니어들은 일반적으로 가장 간단한 솔루션을 선택하는 경향이 있으며, 대부분의 경우 마이크로컨트롤러가 FPGA보다 더 간단하다.


또한 장치 전력 소비량도 고려해야 할 요소입니다.많은 전자 장치는 배터리 전원에 의존하므로 사용 시간을 늘리기 위해 장치의 전력 소비량을 줄이는 것이 중요합니다.전력 소비량이 높을수록 사용자가 원하지 않는 배터리 교체 빈도가 높아집니다.마이크로컨트롤러는 특정 용도로 설계되므로 전력 소비량이 매우 적도록 최적화할 수 있습니다.예를 들어, AAA 배터리 한 개는 Bluetooth 마우스에 몇 달 동안 전원을 공급할 수 있습니다.반면에 FPGA는 마이크로컨트롤러와 일치하지 않는 전력 소비량을 가진 모든 리소스 간에 라우팅해야 합니다.이것은 FPGA가 배터리 전력 공급 응용에 사용할 수 없다는 것을 의미하지는 않지만, 마이크로 컨트롤러는 전력 소비량에서 일반적으로 우위를 가지고 있다.


마이크로컨트롤러는 일반적으로 소프트웨어 개발자가 더 잘 알고 있는 고급 프로그래밍 언어와 개발 환경을 사용하여 프로그래밍할 수 있기 때문에 더 간단하고 빠른 개발 프로세스를 가지고 있다.고급 언어, 라이브러리 및 프레임워크를 사용하면 개발 프로세스를 단순화하고 기능을 구현하고 테스트하는 데 필요한 시간을 줄일 수 있습니다.


FPGA는 하드웨어 수준에서 프로그래밍을 통해 사용자 정의 디지털 회로를 만들 수 있는 매우 일반적인 통합 회로입니다.빠른 프로토타입과 재구성이 필요한 복잡한 어플리케이션에 적합한 유연성을 제공합니다.반면 마이크로컨트롤러는 프로세서 코어, 메모리 및 다양한 주변 장치를 단일 칩에 조합하는 컴팩트 집적 회로입니다.특정 작업을 위해 설계되었으며 중간 정도의 복잡한 어플리케이션을 위한 경제적인 솔루션을 제공합니다.