가장 저렴한 FPGA? [닫은]


44

FPGA는 얼마나 저렴합니까? 필자는 비슷한 기능을 갖춘 마이크로 프로세서보다 비싸다는 것을 알고 있지만 Linux를 실행하는 Microblaze 소프트 코어를 포함 할 수있는 FPGA가 있고 DSP 기능 (예 : 미디어 코덱)을 구현할 수있는 게이트를 즉, Cortex A8 (20 ~ 30 달러 ~ 100 개)입니다.

(내 용어가 비 아이디어식이 아닌 경우 사과합니다. 수정 사항에 대해 의견을 말하거나 직접 수정하십시오.)


(shameless plug) GNU 라디오 (USRP2)는 많은 DSP 블록과 함께 번들로 제공되는 AEMB를 사용합니다. 그것은 소프트웨어 정의 라디오를 정말 잘합니다 -aeste.my/node/29
sybreon

@sybreon 이상하게도 Senior Design 프로젝트에서 USRP2를 사용하고 있습니다-Nice
onaclov2000


답변:


23

저는 최근 FPGA에서 온라인 회의에 참석했습니다. "다음 프로세서가 FPGA 여야합니까?"라는 기조 연설.

FPGA는 기본적으로 고도로 병렬화 가능한 작업 스트림이 필요한 모든 애플리케이션에서 의미가 있습니다. 예를 들어 보행자를 찾기 위해 Full HD 이미지를 분석하는 것이 사용되었습니다.

기억해야 할 것은 전원이 켜질 때마다 FPGA를 초기화해야한다는 것입니다. FPGA의 Xilinx (온칩 ARM 코어가 있음)가 좋은 옵션이지만 아마도 비싸다고 생각합니다. 온칩 플래시로 Actel을 살펴 보는 것도 유용 할 수 있습니다.

성능면에서 BDTI 회사는 병렬 컴퓨팅에서 벤치 마크를 수행하여 FPGA로 약 40 배의 성능 이득을 얻었습니다. 흥미로운 점은 칩을 비슷한 비용으로 비교했다는 것입니다 (23 $ 대 28 $ 믿습니다).

관심있는 링크는 다음과 같습니다.

프로세서 선택에 대한 포켓 가이드

FPGA Conference Archives (무료 등록,이 답변 후 약 6 개월 동안 만 사용 가능)

MIPS 또는 Mhz 통계를 기반으로 한 FPGA 기반 시스템의 성능을 실제로 비교할 수는 없습니다. FPGA가 특정 작업을 처리하는 데 사용되는 방식은 단순히 마이크로 컨트롤러와 다릅니다. FPGA의 펌웨어 설계는 예를 들어 어셈블리와 유사한 VHDL을 사용하여 수행해야합니다. 추상화의 레지스터 전송 레벨 (RTL). 더 많은 추상화를 제공하기 위해 일부 환경이 생산되고 있지만 여전히 벤더마다 다릅니다. Wikipedia에는 ​​FPGA 코드를 프로그래밍하는 데 사용할 수있는 언어에 대한 적절한 개요가 있습니다.

위키 백과 : FPGA 프로그래밍

Wikipedia : 디지털 회로 설계

화상을 입을 돈이 있다면 LabView 시스템을 사용하여 예를 들어 FPGA 기반 실시간 측정 시스템을 구축 할 수 있습니다. 이를 위해 필요한 디바이스는 완전히 다른 가격대 (1500 $ 이상)에 있지만 그래픽 프로그래밍을 통해 훨씬 더 많은 청중에게 FPGA 디자인을 개방합니다.

점점 더 많은 공급 업체가 ARM 칩과 같은 마이크로 컨트롤러를 FPGA와 결합하여 특정 추가 기능과 병렬 처리 성능을 제공하는 보드를 제공하고 있습니다. 그러한 제품의 예는 여기에서 찾을 수 있습니다 : EmbeddedARM : FPGA series


23

FPGA는 얼마나 저렴합니까? Newark에 따르면 가장 저렴한 FPGA는 약 10 달러 (최저 급 Altera Cyclone 및 최저 급 Xilinx Spartan)입니다. 간단한 8 비트 CPU를 실행하기에 충분한 용량이있을 수 있습니다.

예상 할 수 있듯이 단순 (예 : MMU가없는) 32 비트 CPU는 8 비트 CPU의 FPGA 리소스의 약 4 배가 필요합니다. 이러한 간단한 32 비트 CPU를 실행하기에 리소스가 거의없는 FPGA는 약 $ 14입니다. 내 이해는 uCLinux가 이러한 일부 FPGA 소프트 CPU (예 : NIOS II / e)로 포팅되었다는 것입니다. uClinux는 사용자의 목적에 적합 할 수 있습니다.

본격적인 Linux에는 MMU가있는 CPU (예 : NIOS II / f)가 필요합니다. MMU가있는 32 비트 CPU에는 MMU가없는 32 비트 CPU의 FPGA 리소스의 약 4 배가 필요합니다. 그 이유는 분명하지 않습니다.

Xilinx Microblaze 페이지 에서 알 수 있는 한 Microblaze 소프트 CPU는 Xilinx FPGA에서만 실행됩니다.

리눅스는 이미 몇 가지 다른 소프트 CPU로 포팅되었습니다. 다른 회사의 FPGA에서 Linux를 실행하려면 "Soft FPGA Cores for FPGA"에 나열된 Linux 포트를 확인하십시오 .

MMU를 포함한 이러한 소프트 CPU 중 일부는 Xilinx Spartan XC3S400A (Avnet에서 $ 17)에 적합합니다.

MMU를 포함한 일부 32 비트 소프트 CPU는 20 달러짜리 FPGA 칩에서 "듀얼 코어"로 설정하기가 쉽다고 들었습니다. "Jan 's Razor"를 따르는 사람들은 같은 칩에있는 12 비트 정도의 8 비트 CPU를 쥐어 짜려고 시도 할 수 있습니다.


1
자일링스 이외의 다른 FPGA로 포팅 해야하는 오픈 소스 Microblaze 구현 (예 : aeMB-opencores.org/project,aemb )이 있습니다.
mrkj

(shameless plug) AEMB는 Altera FPGA에서도 uC / OS-II를 실행하는 것으로 알려져 있습니다 -aeste.my/node/7
sybreon

11

재구성 가능성으로 인해 많은 오버 헤드가 있기 때문에 일반적으로 FPGA는 실리콘으로 구현 된 동일한 디바이스보다 훨씬 많은 비용이 듭니다. 따라서 20-30 달러짜리 FPGA는 20-30 달러짜리 ARM CPU와 동일한 성능을 갖습니다. 이제 20-30 달러짜리 FPGA가 20-30 달러짜리 ARM보다 훨씬 빠른 특정 작업을 수행 할 수 있지만 일반적인 컴퓨팅 작업에서는 이길 수는 없습니다.

이것이 사람들이 같은 보드에 마이크로 컨트롤러와 FPGA를 고수하는 것을 흔히 보는 이유입니다. ARM과 PPC는 FPGA와 가장 일반적으로 결합 된 두 가지입니다.


4
필자는 비용과 성능면에서 마이크로를 능가하는 FPGA를 찾을 수 없지만 마이크로 + FPGA의 비용을 능가하는 유사한 FPGA를 제공하는 동시에 하나의 칩에서 유사한 성능을 제공하는 것으로 보입니다. 말이 돼?
pingswept

10

FPGA를 구입할 때 FPGA 프로그램을 보유한 플래시 메모리 비용을 고려해야합니다. 잊기 쉽습니다.

PCB 설계자 인 FPGA는 보드를 만든 후에도 원하는대로 핀 배치를 재 배열 할 수 있기 때문에 레이아웃이 백만 배 더 쉽다. FPGA를 라우팅하는 데 필요한 더 적은 수의 레이어와 관련하여 잠재적 인 비용 절감이 있습니다.

poo-poo FPGA 대 CPU 성능을 가진 다른 사람들에게는 어느 정도 동의합니다. 실제 프로세서는 프로세서처럼 작동하도록 프로그래밍 된 FPGA보다 실제 프로세서 속도가 더 빠릅니다.

그래도 FPGA에는 공평하지 않습니다. CPU는 "시간 제한"입니다. 더 많은 일을하고 싶다면 더 많은 시간이나 더 빠른 프로세서가 필요합니다. FPGA는 일반적으로 "영역 제한"입니다. 더 많은 일을하고 싶다면 더 큰 FPGA가 필요합니다.

예를 들어 모노 오디오 신호를 처리하는 스펙트럼 분석기를 만든다고 가정 해 봅시다. CPU 시간의 70 %가 걸리고 CPU 속도가 이미 빠르다고 가정 해 봅시다. CPU는 첫 번째 채널을 다시 처리하기 전에 두 번째 채널을 수행하기에 충분히 빠르지 않기 때문에 스테레오 지원을 추가 할 수 없습니다. 그러나 FPGA의 70 %를 사용하는 경우 더 큰 FPGA를 구매하고 두 번째 채널을 넣을 수 있습니다. 더 빨리 갈 필요는 없습니다.

이제 CPU 대신 Finite State Machines 및 Datapaths를 사용하여 문제를 Digital Design 도메인에 이식했다면 FPGA가 CPU 를 분쇄 할 수있는 페소에 돈을 걸고 디자인의 복잡성이 증가합니다.


1
플래시 기반 FPGA (ACTEL)와 내장 플래시 (Xilinx Spartan3AN, LatticeXP)가있는 일부 SRAM 기반 제품도 있습니다.
sybreon

더 빠른 CPU를 구입하고 두 번째 채널을 넣을 수도 있습니다. 좋은 비교는 아닙니다.
user253751 2018 년

@immibis 당신이 말하는 것은 실제로 ajs410의 요점과 같습니다. FPGA는 더 빠를 필요가 없으며 더 커야 합니다. CPU를 사용하려면 처리의 특성이 병렬화 가능한 한 두 번째 CPU를 가져 오십시오.
Johan Boulé

7

자일링스는 최근 ARM과 의 거래 를 통해 ARM 코어를 FPGA에 배치 할 수있게되었다. 불행히도, 그들은 최고급 버텍스 장치에서만 사용할 수 있습니다.


3
매우 흥미 롭습니다.
pingswept

2
Virtex 장치에만 나타나는 ARM 코어에 대해 잘못 알고 있다고 생각합니다. 보도 자료는 그다지 말하지 않으며 PPC 코어가 V2P, V4FX 및 V5FXT 부품에만 나타납니다. Xilinx의 웹 사이트는 "성능, 비용 및 전력"에 최적화 된 장치를 언급합니다 ( xilinx.com/technology/roadmap/processing-platform.htm 참조 ). 비용은 버텍스 시리즈에 대한 최적화 벡터가 아닙니다.
mrkj

1
또한 ARM은 7 시리즈 FPGA 발표 ( xilinx.com/technology/roadmap/7-series-fpgas.htm )에 언급되지 않았 으며 PPC와 함께 V6 또는 V7 부품이 없습니다. 이 모든 것에 대한 나의 취지는 고성능 부품의 임베디드 프로세서에서 멀어지고 있다는 것입니다.
mrkj

3
나는이 거래의 결과가 Zynq 라고 생각한다 .
Janus Troelsen

4

FPGA 가격은 이상하다-일단 프랜차이즈 된 disti와 대화를 나눈 후에 Digikey, Mouser 등에서 인용 된 가격이 얻을 수있는 가격보다 몇 배 더 높을 수 있다는 것을 알게된다. 내가 아는 가장 저렴한 것은 QFP100의 Lattice EC1이며 트레이 수량이 GBP3 미만인 경우입니다. SPI 플래시 메모리에 GBP0.40 정도를 추가하십시오.

CPU를 FPGA 패브릭에 배치하는 것은 일반적으로 실리콘 비용 측면에서 좋은 가치는 아니지만 CPU와 FPGA 간의 밀접한 결합 및 패키지 수 감소와 같은 다른 요소는 별도의 CPU를 사용하는 것에 대한 최적의 절충안을 바꿀 수 있습니다.


2
매우 좋은 지적입니다. Farnell 직원 의이 게시물 [ element14.com/community/thread/2434] 을 참조 하면 Altera Cyclone IV 칩은 3 달러에 불과하지만 Farnell의 웹 페이지에서 가장 저렴한 가격은 20 달러에 가깝습니다. 이제, 대부분의 사람들은 250,000의 수량으로 구매하지 않을 것이지만, 그 유통업자는 아마도 566 %보다 약간 적은 가격으로 거래 할 의사가있을 것입니다 ...
Jules

3

지금까지 가장 좋은 추측은 약 16 달러 정도의 Xilinx XC3S400A와 비슷하지만 MicroBlaze를 처리 할 수 ​​있을지 확실하지 않습니다.


3
온라인에서 간단히 살펴보면 마이크로 블레이즈 코어는 XC3S400A에서 로직 셀의 약 절반을 사용합니다. 또한 Cortex A8은 600MHz-800MHz에서 실행되며 FPGA의 microblaze는 200MHz-300MHz에서 실행됩니다.
davr

따라서 시스템이 프로세서에 종속되어 있다고 가정 할 때 ~ 3 배 더 느리지 만 비슷한 비용이 들지만 다른 게이트는 남게됩니다.
pingswept

1
그것은 실제 처리 속도를 비교하는 가장 기본적인 방법 인 주파수를 비교하는 것입니다. 나는 그것에 대해 충분한 지식이 없지만, 예를 들어 같은 클럭 속도에서 ARM은 Microblaze보다 두 배 빠릅니다.
davr

1
예, 충분합니다. 첫 번째 근사치입니다.
pingswept

3

응용 프로그램에 따라 다릅니다. 여기서 이상적인 응용 분야는 작은 제어 부품 (마이크로 블레이즈 / NIOS에 적합)이지만 사용자 지정 하드웨어의 큰 병렬 처리로 이익을 얻을 수있는 계산 부품으로 구성됩니다. 이 경우, 적당한 크기의 FPGA (Spartan 또는 동급)도 범용 CPU보다 성능이 뛰어납니다. 그러나 앱이 중요한 제어 부분을 가지고 있거나 하드웨어에 쉽게 매핑되지 않는 경우 고정 하드웨어 (예 : ARM)에 돈을 소비하는 것이 가장 좋은 경우입니다 (많은 실제 응용 프로그램에서 달성 할 수는 있지만) 아마 더 좋을 것입니다.



0

많은 Altera의 현재 CPLD는 구성 메모리가 내장 된 FPGA이므로 http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp


0

우선 코어에서 리눅스를 실행하고 싶습니다. 이 스레드의 다른 제안과 같이 ARM에서 실행하는 방법은 무엇입니까 ? MCU는 OS를 실행하는 데 능숙하지만 MCU를 구축하는 FPGA 리소스가 낭비됩니다. MCU는 맞춤형으로 설계 할 때 훨씬 작은 실리콘 영역에 맞출 수있어보다 저렴하게 생산할 수 있습니다. 로직 처리가 정확하게 처리하는 것처럼 느껴지지는 않지만 FPGA가 병렬 처리에 실제로 우수하다는 다른 설명이 있습니다. 당신이 지적한 것처럼 강력한 FPGA는 비싸고 실제로 전력은 배고프다. 따라서 빠른 IO 등을 위해 병렬 처리의 이점이 필요한 Linux 및 DSP를 실행할 수있는 저비용 플랫폼입니다. XMOS 병렬 프로세서를 살펴보십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.