FPGAs mais baratos? [fechadas]


44

Qual é o preço dos FPGAs? Eu sei que eles são mais caros do que os microprocessadores de capacidade comparável, mas me pergunto se existem FPGAs que poderiam conter um núcleo leve Microblaze executando Linux, deixando portas disponíveis para implementar a funcionalidade DSP (codecs de mídia, por exemplo) a um custo competitivo com digamos, um Cortex A8 (US $ 20-30 em quantidade ~ 100).

(Desculpe se minha terminologia não é idiomática, isto é, incorreta. Por favor, comente com correções ou edite diretamente.)


(plugue descarado) o rádio GNU (USRP2) usa um AEMB empacotado com vários blocos DSP. Ele faz rádio definido por software muito bem - aeste.my/node/29
sybreon

@sybreon Por incrível que pareça, estou usando USRP2 no meu projeto de Design sênior - Nice
onaclov2000


Respostas:


23

Recentemente, participei de uma conferência on-line sobre FPGAs com a palestra "O seu próximo processador deve ser um FPGA".

O FPGA basicamente faz sentido em qualquer aplicativo que exija fluxos de trabalho altamente paralelizáveis, um exemplo sendo usado foi a análise de imagens em Full HD para encontrar pedestres, por exemplo.

O que você deve se lembrar é que você precisa inicializar seu FPGA toda vez que ele liga, acho que o Xilinx do FPGA vem (que tem um núcleo ARM no chip) é uma boa opção, mas provavelmente é caro. Olhar para os da Actel com flash no chip também pode ser útil.

Quanto ao desempenho, a empresa BDTI fez uma referência em cálculos altamente paralelos, onde observou um ganho de desempenho de cerca de 40x ao mudar para um FPGA. O interessante é que eles compararam chips com custos semelhantes (23 $ vs 28 $, eu acredito).

Aqui estão os links que podem lhe interessar:

Guia de bolso para seleção de processador

Arquivos da conferência FPGA (registro gratuito, mas disponível apenas por cerca de 6 meses após esta resposta)

Você realmente não pode comparar o desempenho de sistemas baseados em FPGA com base nas estatísticas MIPS ou Mhz. A maneira como um FPGA é usado para processar determinadas tarefas é simplesmente muito diferente de um microcontrolador. O design do firmware de um FPGA é algo que você deve fazer usando o VHDL, por exemplo, semelhante ao Assembly. Um nível de transferência de registro (RTL) da abstração. Alguns ambientes estão sendo produzidos para fornecer mais abstração, mas ainda são frequentemente específicos do fornecedor. A Wikipedia possui uma visão geral decente dos idiomas disponíveis para programar o código FPGA:

Wikipedia: Programação FPGA

Wikipedia: Projeto de circuitos digitais

Se você tem dinheiro para gastar, pode usar os sistemas LabView para criar sistemas de medição em tempo real baseados em FPGA, por exemplo. Esses dispositivos necessários para isso estão em uma faixa completamente diferente (US $ 1.500 ou mais), mas abrem o design do FPGA para um público muito mais amplo com programação gráfica.

Cada vez mais fornecedores estão fornecendo placas que combinam microcontroladores, como um chip ARM e um FPGA, para fornecer recursos adicionais específicos e poder de processamento paralelo. Um exemplo desses produtos pode ser encontrado aqui: EmbeddedARM: FPGA series


23

Qual é o preço dos FPGAs? Segundo Newark, os FPGAs mais baratos custam cerca de US $ 10 (o Altera Cyclone mais baixo e o Xilinx Spartan mais baixo). Eles podem ter capacidade suficiente para executar uma CPU de 8 bits simples.

Como seria de esperar, mesmo as CPUs simples de 32 bits (ou seja, sem uma MMU) requerem cerca de 4 vezes os recursos FPGA de uma CPU de 8 bits. FPGAs com recursos insuficientes para executar uma CPU tão simples de 32 bits custam cerca de US $ 14. Meu entendimento é que o uCLinux foi portado para algumas dessas CPUs programáveis ​​por FPGA (como o NIOS II / e) - você pode achar que o uClinux é adequado para seus propósitos.

O Linux completo requer uma CPU com uma MMU (como o NIOS II / f). Uma CPU de 32 bits com uma MMU requer cerca de 4 vezes os recursos FPGA de uma CPU de 32 bits sem uma MMU - as razões para isso não são tão óbvias.

Até onde eu sei, na página Xilinx Microblaze , a CPU suave Microblaze é executada apenas em FPGAs Xilinx.

O Linux já foi portado para várias outras CPUs flexíveis. Se você deseja executar o Linux em FPGAs de outras empresas, consulte as portas Linux listadas em "Soft CPU Cores for FPGA" .

Várias dessas CPUs flexíveis - incluindo uma MMU - caberão no Xilinx Spartan XC3S400A (US $ 17 da Avnet).

Ouvi dizer que algumas CPUs macias de 32 bits - incluindo uma MMU - são muito fáceis de configurar como "dual core" em um chip FPGA de US $ 20. Aqueles que seguem "Jan's Razor" podem tentar espremer uma dúzia de CPUs de 8 bits no mesmo chip.


1
Existem implementações de software livre do Microblaze (como aeMB - opencores.org/project,aemb ) que devem ser portadas para outros FPGAs (não Xilinx).
mrkj

(plug descarado) a AEMB é conhecido para executar uC / OS-II da Altera também FPGAs - aeste.my/node/7
sybreon

11

Geralmente, o FPGA custa muito mais do que o mesmo dispositivo implementado em silício, porque há muita sobrecarga devido à reconfigurabilidade. Portanto, não, você não encontrará um FPGA por US $ 20-30 que tenha o mesmo poder que um CPU ARM que seja US $ 20-30. Agora, você pode encontrar um FPGA por US $ 20-30 que pode executar tarefas específicas muito mais rapidamente do que o US $ 20-30 ARM, mas não poderá vencê-lo em tarefas gerais de computação.

É por isso que é comum ver pessoas colocando um microcontrolador e um FPGA na mesma placa. ARM e PPC são os dois mais comumente combinados com um FPGA.


4
Entendo que não encontrarei um FPGA que supere um micro em custo e desempenho, mas parece que pode existir um FPGA que supere o custo de micro + FPGA, enquanto fornece desempenho semelhante, tudo em um único chip. Isso faz sentido?
pingswept

10

Ao comprar um FPGA, não se esqueça de levar em consideração o custo da memória Flash que mantém o programa FPGA. Isso é fácil de esquecer.

Como projetista de PCBs, os FPGAs são um milhão de vezes mais fáceis de organizar, porque você pode reorganizar a pinagem da maneira que desejar, mesmo após a montagem da placa. Há uma economia de custos potencial associada ao menor número de camadas necessárias para rotear um FPGA.

Para os outros que cocô no desempenho do FPGA vs. CPU, eu concordo até certo ponto. Um processador real será mais rápido em executar tarefas do processador real do que um FPGA programado para agir como um processador.

Isso não é realmente justo para um FPGA, no entanto. CPUs são "limitadas no tempo"; se você quiser trabalhar mais, precisará de mais tempo ou de um processador mais rápido. FPGAs geralmente são "limitados à área"; se você quiser trabalhar mais, precisará de um FPGA maior.

Por exemplo, digamos que você faça um analisador espectral que lide com um sinal de áudio mono. Digamos que leva 70% do tempo da CPU e você já é o mais rápido possível. Você não pode adicionar suporte estéreo, porque a CPU não é rápida o suficiente para executar o segundo canal antes de precisar manipular o primeiro canal novamente. Mas se você estiver usando 70% do FPGA, poderá comprar um FPGA maior e inserir o segundo canal. Ele não precisa ir mais rápido.

Agora, se você portou o problema no domínio do Design Digital, usando Máquinas de Estado Finito e Datapaths em vez de uma CPU, eu apostaria dólares em pesos que o FPGA esmagaria a CPU, às custas da complexidade crescente no design.


1
Existem também FPGAs baseados em flash (ACTEL) e alguns baseados em SRAM com flash embutido (Xilinx Spartan3AN, LatticeXP).
sybreon

Você também pode comprar uma CPU mais rápida e inserir o segundo canal. Não é uma boa comparação.
user253751

@immibis O que você está dizendo é realmente o mesmo que o ponto de ajs410: um FPGA não precisa ser mais rápido , precisa ser maior . Se você quiser usar CPUs, o que você pode fazer é trazer uma segunda CPU, desde que a natureza do processamento seja paralelizável.
Johan Boulé

7

A Xilinx recentemente fez um acordo com o ARM, o que lhes permitirá colocar núcleos de ARM nos FPGAs. Infelizmente, eles estarão disponíveis apenas para os dispositivos Virtex de primeira linha.


3
Muito interessante
pingswept

2
Acho que você está enganado com o fato de os núcleos ARM aparecerem apenas nos dispositivos Virtex. O comunicado de imprensa não diz muito, e acho que você não pode deduzir isso do fato de que os núcleos PPC aparecem apenas nas partes V2P, V4FX e V5FXT. O site da Xilinx menciona os dispositivos que estão sendo otimizados para "desempenho, custo e energia" (consulte xilinx.com/technology/roadmap/processing-platform.htm ); você notará que o custo nunca é um vetor de otimização para a série Virtex.
mrkj

1
Além disso, o ARM nunca é mencionado no anúncio dos FPGAs da série 7 ( xilinx.com/technology/roadmap/7-series-fpgas.htm ), e não há partes V6 ou V7 com um PPC. Minha opinião sobre tudo isso é que eles estão se afastando dos processadores embarcados nas peças de alto desempenho.
mrkj

3
Eu acho que o resultado desse acordo é o Zynq ?
Janus Troelsen

4

Os preços do FPGA são ímpares - quando você conversa com uma empresa franqueada, descobre que os preços cotados na Digikey, Mouser etc. podem ser várias vezes mais altos do que o que eles podem obter. O mais barato que eu conheço é o Lattice EC1 no QFP100 por um pouco menos de GBP3 em qtd de bandeja. Adicione GBP0,40 ou mais para uma memória flash SPI.

A colocação de CPUs na malha FPGA geralmente não é um bom valor em termos de custo de silício, mas outros fatores como acoplamento rígido entre CPU e FPGA e número reduzido de pacotes podem alterar a troca ideal contra o uso de uma CPU separada.


2
Ponto extremamente bom. Veja também este post [ element14.com/community/thread/2434] de um funcionário da Farnell, sugerindo que os chips Altera Cyclone IV estão disponíveis por apenas US $ 3, enquanto o preço mais baixo da Farnell na página da Web para eles está mais próximo de US $ 20. Agora, claramente a maioria das pessoas não compra em quantidades de 250.000, mas presumivelmente esses distribuidores o fazem e podem estar dispostos a trocar por um pouco menos de uma margem de 566% ...
Jules

3

Meu melhor palpite até agora é algo como um Xilinx XC3S400A, que custa cerca de US $ 16, mas não tenho certeza de que ele possa lidar com um MicroBlaze.


3
De uma rápida olhada online, um núcleo de microblaze usaria cerca de metade das células lógicas em um XC3S400A. Além disso, o Cortex A8 rodava de 600 MHz a 800 MHz, enquanto o micro-labirinto no FPGA rodava de 200 MHz a 300 MHz.
davr

Portanto, seria ~ 3x mais lento (supondo que seu sistema seja vinculado ao processador), mas com custo comparável, deixando as portas em excesso para outra coisa.
pingswept

1
Isso é apenas comparar a frequência, a maneira mais básica de comparar a velocidade real de processamento. Eu não tenho conhecimento suficiente sobre isso, mas é possível, por exemplo, que na mesma velocidade de relógio, um ARM é duas vezes mais rápido como um Microblaze
davr

1
Sim, é justo. Uma primeira aproximação, eu acho.
pingswept

3

Depende muito da sua aplicação. A aplicação ideal aqui consistiria em uma pequena parte de controle (que se encaixa em um microblaze / NIOS), mas uma parte computacional que pode se beneficiar do enorme paralelismo do hardware personalizado. Nesses casos, mesmo um FPGA de tamanho modesto (espartano ou equivalente) pode facilmente superar qualquer CPU de uso geral. Mas esse é o melhor caso (embora muito viável em muitos aplicativos do mundo real), se seu aplicativo tiver uma parte significativa de controle ou não for facilmente mapeado para o hardware, gastar seu dinheiro em hardware fixo (por exemplo, um ARM) é provavelmente melhor.



0

Como muitos CPLDs atuais da Altera são FPGAs com memória de configuração integrada, você pode obtê-los em http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp


0

Antes de tudo, você deseja executar o Linux em um núcleo. Que tal executá-lo em um ARM, como algumas outras sugestões neste tópico. O MCU é bom em executar o sistema operacional, mas é um desperdício de recursos do FPGA criando um MCU. As MCUs podem caber em uma área de silício muito menor quando projetadas para isso e, portanto, podem ser produzidas com menor custo. Depois, há outras explicações sobre os FPGAs serem realmente bons no processamento paralelo - tipo verdade, embora as operações lógicas não pareçam exatamente processar. Como você aponta, os poderosos FPGAs ficam caros e com muita fome de energia. Portanto, uma plataforma de baixo custo que pode rodar linux e DSP, necessitando dos benefícios do paralelismo para E / S rápidas, etc. Dê uma olhada no processador paralelo XMOS

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.