FPGA : 이러한 칩과 프로그래밍에 관한 모든 것

FPGA 칩

FPGA는 점점 더 대중화되었습니다 지난번에. 전문 애플리케이션의 경우에도 이러한 칩은 종종 사용되지만, 이것이 의미하는 모든 이점을 갖춘 칩 내부에 개별 회로를 구현하려는 DIY 작업자 및 제조업체에게도 사용됩니다. 레이아웃이나 패턴을 보내고 맞춤형 칩을 제조 할 공장을 찾는 것은 저렴하거나 쉽지 않습니다.

일부 파운드리에서는 웨이퍼 또는 다중 프로젝트 웨이퍼 만들기 개인이나 대학에서 칩을 만들어 테스트 할 수 있습니다. 이러한 유형의 공장은 내가 말했듯이 찾기가 어렵고 일반적으로 해외에 있으며 저렴하지 않습니다. 잠시 후 칩 샘플이 합의 된 주소로 보내지지만 이들은이를 테스트하거나 작동하는지 확인하는 책임이 없습니다. 그것은 모두 당신의 디자인에 달려 있습니다 ...

우나 이에 대한 대안은 FPGA를 구입하는 것입니다. 그리고 칩 내부에 구현하는 데 필요한 모든 것을 프로그래밍하십시오 ...

FPGA 란 무엇입니까?

프로그래밍 가능한 셀

FPGA는 Field Programmable Gate Array를 나타냅니다.. 이들은 거의 모든 것을 구현할 수 있도록 구성 할 수있는 디지털 장치 또는 칩입니다. 즉, "쓰기"할 수있는 빈 칩입니다. 즉, CPU, 메모리, 컨트롤러, 모든 로직 등을 구현하여 매우 빠른 작동을 달성하고 전자 요소가 아닌 칩에 통합되는 모든 이점을 얻을 수 있습니다.

Xilinx의 공동 창립자 인 Ross Freeman과 Bernard Vonderschmitt는 1984 년 FPGA를 발명했습니다. 그들은 당시 CPLD 칩의 발전으로이를 수행했습니다. CPLD 프로그래밍 가능 칩에는 새로운 FPGA 설계를 해결하는 몇 가지 단점이 있었으며 그 이후로 지금까지 발전해 왔습니다.

FPGA 시장은 기업들이 Intel, Xilinx, Altera, Quick Logic, Lattice 등, 그들은 더 나은 FPGA와 임베디드 프로그래밍 환경 또는 IDE를 개발하기 위해 많은 투자를했습니다. 따라서 개발자 또는 제작자의 작업을 용이하게하는 아주 좋은 플랫폼을 제공합니다.

현재 이러한 제조업체는 프로그래밍 가능한 칩을 제공 할뿐만 아니라 수많은 보조 요소 개발자에게 더 많은 가능성을 제공합니다. 예를 들어 플래시 메모리 셀, SDRAM 메모리 셀 등이 포함됩니다.

그들은 무엇을 위해 사용됩니까?

FPGA 프로그래밍을위한 IDE

따라서 FPGA는 ASIC와 유사 할 수 있지만 우리는 선택할 수 있습니다 무엇이 될까. 예를 들어,이를 프로그래밍하는 코드를 생성하여 CPU, GPU, 가산기, 메모리 컨트롤러 또는 단일 칩에 구현 된 기타 논리 회로로 변환 할 수 있습니다.

가능성은 무궁무진합니다. 사실 웹 사이트를 방문하는 것이 좋습니다. opencores.org, 다양한 프로젝트를 제공하는 데 전념하는 사이트 hardware libre. VHDL, Verligo 등에서 코드를 찾을 수 있습니다. RAM, CPU, GPU, 컨트롤러, ALU, FPU, 디코더 및 long 등.

어떻게 프로그래밍됩니까?

FPGA 용 프로그래머

FPGA를 프로그래밍하기 위해 GNU / Linux, Windows 및 MacOS와 같은 선호하는 운영 체제에서 수행 할 수 있지만 Windows 용 개발 환경은 확실히 더 많습니다. 일반적으로 FPGA를 제공하는 동일한 회사는 작업하기에 매우 완벽한 IDE 동일한 소프트웨어 제품군에서 필요한 모든 도구를 찾을 수있는 위치.

당신은 또한 필요합니다 FPGA 칩 또는 보드 및 필요한 케이블 또는 프로그래머 이를 통해 FPGA를 PC에 연결하여 작성된 코드를 FPGA에 전달할 수 있으므로 프로그래밍됩니다. 이는 Arduino 보드로 수행하는 작업과 유사하며 Arduino IDE 프로그램을 마이크로 컨트롤러의 프로그래밍 가능 메모리에 작성합니다.

FPGA의 경우에만 메모리 셀, AND 게이트, OR, NOT, 플립 플롭 등과 같은 기본 구성 요소의 매트릭스 또는 배열이 있습니다. 디지털 전자의 기본 요소 또는 블록 우리가 사용할 수 있습니다. 작성된 프로그램으로 우리가하려는 것은 ALU와 같이 우리가 원하는 작은 회로를 형성하기 위해 이러한 필수 블록이 그룹화되는 방식을 부과하는 것입니다.

즉, IDE에서 가산기를 프로그래밍하면이 가산기를 구현하는 데 필요한 블록이 그들은 연결할 것입니다 FPGA 내부에서 올바른 방식으로 칩이 가산기 역할을합니다. 간단 하지요? 일반적으로 물리적 수준에서이 프로그래밍을 위해 메모리 또는 퓨즈와 같은 몇 가지 방법이 사용되어 영구적 인 링크를 만듭니다.

그들이 작동하는 속도는 클록 주파수 우리가 구입 한 FPGA가 작동합니다. 예를 들어, 가장 기본적인 것들은 일반적으로 50Mhz에서 작동하고 다른 것들은 훨씬 더 높은 주파수에서 작동합니다. 50Mhz FPGA의 경우 이는 초당 50.000.000 회 속도로 작동 함을 의미합니다. 예를 들어 덧셈을 계속하면 XNUMX 초만에 그 합계를 계산할 수 있습니다.

주제로 계속 프로그래밍Arduino IDE 에서처럼 코드를 작성하거나 다른 프로그램을 개발할 수 있다는 것을 알고 하드웨어 수준에서 어떻게 수행되는지 확인하면 실제로 프로그래밍이 아니라고 말할 것입니다. 오히려 하드웨어 설명입니다. 실제로 VHDL, Verilog 등과 같은 하드웨어 설명 언어가 사용됩니다.

그 프로그램은 논리적 수준에서 설명됩니다. 우리가 구현하려는 작은 회로가하는 일입니다. 그리고 나서 FPGA로갑니다. 일부 플랫폼은 C와 같은 프로그래밍 언어로 프로그래밍을 허용하여 FPGA에서 CPU를 구현 한 다음 메모리에로드하고 해당 프로세서에서 처리 할 프로그램을 생성 할 수 있다는 것은 사실입니다.

Arduino와 통합

FPGA 아두이노

FPGA는 일반적으로 개별적으로 사용되지만 시장에 많은 도구와 키트가있어 삶을보다 쉽게 ​​통합 할 수 있습니다. Arduino 플랫폼이있는 FPGA. Arduino를 사용하여 FPGA를 프로젝트에 가져 오는 보드의 예로 MKR Vidor 4000이 있습니다.

MKR 뷰어 4000 10 개의 칩이있는 보드입니다. 그중 하나는 FPGA, 특히 Intel Cyclone XNUMX입니다. Bluetooth LE 또는 저소비 연결 및 WiFi 호환성을위한 다른 칩도 있습니다. Arduino에 연결 기능을 제공하고 FPGA에서 필요한 것을 구현할 수있는 좋은 보완 제품입니다.

그것으로 당신은 맞춤형 하드웨어, 원하는 목적에 맞게 직접 구성합니다. 그것은 무한한 가능성을 제공합니다.


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.