마이크로 컨트롤러의 인기가 높아지면서 엔지니어들은 FPGA보다 마이크로 컨트롤러를 더 많이 사용하고 있습니다. 마이크로 컨트롤러가 지배적이되었다 FPGA 때문에 저렴한 비용, 좋은 지원, 쉬운 가용성, 대형 사회, 다양성, 프로그래밍 등의 그러나 마이크로 프로세서 이외는 설정의 지침과 같은 몇 가지 제한을 가지고, 프로그램의 순차적 인 실행 (순차 처리) 유연성 및 재사용 성 부족 등. 그러나 FPGA는 프로그램의 병렬 실행이 있고 유연하고 재사용이 가능하므로 여러 작업에 대해 반복해서 다시 프로그래밍 할 수 있으므로 이러한 한계를 극복 할 수 있습니다.
FPGA 란 무엇이며 마이크로 컨트롤러와 다른 점
필드 - 프로그래머블 게이트 어레이 로직 게이트의 어레이를 가지며, 사용자가 새로운 정의 된 구성으로 기존 구성을 덮어 쓸 수 필드에 자신의 디지털 회로를 만들 수 즉,이 배열은 필드 프로그래밍 될 수있는 집적 회로 실리콘 칩이다. FPGA는 빈 슬레이트로 간주 할 수 있습니다. FPGA는 자체적으로 아무 작업도 수행하지 않지만 FPGA 용 비트 파일 이라고하는 구성 파일을 만드는 것은 설계자에게 달려 있습니다. FPGA는 비트 파일과 함께로드되면 디지털 회로처럼 작동합니다.
마이크로 컨트롤러는 현장에서 마이크로 컨트롤러를 프로그래밍하거나 재구성 할 수 없기 때문에 그렇지 않습니다. 사용자는 기존 구성을 덮어 쓰거나 현장에서 디지털 회로를 만들 수 없습니다. 마이크로 컨트롤러는 프로그래밍하기 쉽고 커뮤니티도 넓습니다. 마이크로 컨트롤러는 IC 형태로 제공되는 맞춤형 미니 컴퓨터이며 FPGA는 전기적으로 다시 배선 할 수있는 로직 블록 만 포함합니다. 또한 마이크로 컨트롤러 측면에서 FPGA보다 전력을 덜 소비합니다. FPGA는 비용이 많이 드는 것으로 알려져 있으며 모든 장치를 구축 할 때 마이크로 컨트롤러보다 더 많은 비용이 필요 합니다. FPGA는 설정에 훨씬 더 많은 시간이 소요되는 반면 마이크로 컨트롤러는 특정 애플리케이션을 위해 쉽게 구축 할 수 있습니다.
FPGA 아키텍처
FPGA는 논리 셀 또는 모듈의 규칙적인 구조와 개발자와 설계자가 완벽하게 제어하는 인터링크를 가지고 있습니다. FPGA는 구성 가능한 논리 블록 (CLB), I / O 블록 또는 패드 및 스위치 매트릭스 / 상호 연결 와이어 와 같은 주로 세 가지 주요 블록으로 구축됩니다. 각 블록은 아래에서 간략하게 설명합니다.
- CLB (Configurable Logic Block): FPGA의 기본 셀입니다. 1 개의 8 비트 함수 발생기, 2 개의 16 비트 함수 발생기, 2 개의 레지스터 (플립 플롭 또는 래치) 및 재 프로그래밍 가능한 라우팅 제어 (멀티플렉서)로 구성됩니다. CLB는 다른 설계된 기능과 매크로를 구현하는 데 적용됩니다. 각 CLB는 논리 매핑 및 분할을위한 유연성을 제공하는 입력을 각 측면에 가지고 있습니다.
- I / O 패드 또는 블록: 입력 / 출력 패드는 외부 주변 장치가 FPGA의 기능에 액세스하는 데 사용되며 I / O 패드를 사용하여 다른 주변 장치를 사용하는 다양한 애플리케이션을 위해 FPGA와 통신 할 수도 있습니다.
- 스위치 매트릭스 / 상호 연결 와이어: 스위치 매트릭스는 FPGA에서 길고 짧은 상호 연결 와이어를 유연한 조합으로 함께 연결하는 데 사용됩니다. 또한 다른 라인 간의 연결을 켜거나 끄는 트랜지스터가 포함되어 있습니다.
FPGA가 필요한 경우
위에서 언급했듯이 마이크로 컨트롤러는 약간의 제한이 있으며 마이크로 컨트롤러와 마이크로 프로세서가 프로그램의 순차적 실행에서 실행되기 때문에 병렬로 작업을 수행하는 데 사용할 수 없습니다.. 또한 마이크로 컨트롤러는 명령과 회로가 함께 제공되기 때문에 제한된 작업을 수행 할 수 있습니다. 프로그래머는 코드를 개발하는 동안 제한 사항을 준수해야합니다. 따라서이 시나리오에서도 FPGA가 이점이 있습니다.
그러나 마이크로 컨트롤러의 경우 프로세서는 한 코드에서 다른 코드로 전환하여 일정 수준의 병렬 처리를 달성합니다. FPGA보다 마이크로 컨트롤러에서 코드를 작성하는 것이 더 쉽습니다. FPGA 의 병렬 처리 기능을 사용하면 FSM (Finite State Machine)을 사용하여 인터럽트를 효과적으로 제어 할 수 있습니다.
마이크로 컨트롤러의 경우 ISR이 중단을 해결하는 데 걸리는 시간을 고려해야합니다. FPGA를 다시 프로그래밍하기 만하면 쉽게 다시 연결할 수 있습니다. FPGA의 구성은 전원이 켜지면 구성 가능한 로직 셀에로드됩니다.
FPGA를 다시 프로그래밍하기 위해 하드웨어를 변경할 필요가 없습니다. FPGA는 병렬 데이터의 고속 처리에 적합하며 높은 수준의 사용자 정의 기능을 제공 합니다. 그러나 프로토 타입 작업의 단점과 구성의 복잡성도 있습니다. 따라서 FPGA는 마이크로 컨트롤러에 비해 이러한 장점으로 선택할 수 있습니다. FPGA 프로그래밍을 시작하고