Contagem de portas lógicas FPGA


Respostas:


6

Os fabricantes de FPGA não usam mais contagens equivalentes de portas, mesmo nos materiais de marketing mais ondulados. Como linhas de código ou megahertz de velocidade do processador, é uma métrica altamente imprecisa para medir a capacidade do dispositivo, e nos mercados de FPGA os clientes esperavam o suficiente para suprimir seu uso.

Para estimar o tamanho do dispositivo necessário, consulte o resumo na p. 2 da folha de dados que você vinculou. Geralmente, você pode ter uma ideia decente, no início do processo de design, de quantos chinelos, quantas E / Ss e quanto de RAM o seu projeto precisa. Um ou outro desses normalmente é o recurso crítico que determina o tamanho da peça que você precisa.

Se você não tiver restrições de custos, use um dispositivo 2x ou mais maior do que você pensa que precisa. Isso dará a você espaço para o aprimoramento de recursos em seu design e também agilizará o desenvolvimento, porque as ferramentas de design não precisarão trabalhar tanto para ajustar seu design aos recursos disponíveis.

Editar , extrair itens dos comentários,

Você mencionou que seu design é principalmente desclassificado.

O problema é que as ferramentas de design do FPGA dependem do relógio e das restrições de tempo resultantes para impulsionar a otimização do design sintetizado. Se você deseja criar um design sem relógio em um FPGA, é possível, em princípio, mas não receberá muita ajuda das ferramentas (ou fornecedores) e provavelmente precisará encontrar uma comunidade especializada que faça esse tipo de coisa para obtenha qualquer suporte.

Em qualquer caso, você pode consultar o Guia do Usuário do Spartan 6 Configurable Logic Block para ver quais recursos estão disponíveis em cada bloco. Em seguida, mapeie mentalmente seu design para esses recursos para ver quantos blocos você precisa. Isso deve ser o suficiente para permitir que você escolha o dispositivo de tamanho certo.

Por exemplo, você pode ver nesse documento que a peça LX45 contém cerca de 27.000 LUTs de 6 entradas. Cada LUT pode ser usada para implementar uma lógica combinatória arbitrária com até 6 entradas. Se você pode expressar sua lógica em termos desta primitiva, pode estimar se o seu design se encaixa no dispositivo.


Bem, é isso mesmo, ainda não comecei a projetar (e meu design está diretamente na lógica), porque eu ia projetar com base nas minhas ofertas especiais de FPGAs. Sei que precisaria de cerca de 2,5 milhões de portões, então como encontraria algo que pudesse suportar tantos portões?
haneefmubarak

Realmente, não há chinelos?
The Photon

Bem, eu tenho alguns, mas muito poucos são apenas SR e outras, em vez de JK e D.
haneefmubarak

1
Para obter um bom suporte das ferramentas de síntese do FPGA, convém ajustar o seu design para enfatizar os chinelos D - Suponho que existem maneiras de criar outros estilos, mas os conjuntos de ferramentas do FPGA são fortemente orientados ao design de RTL, o que significa muitas Dff's.
The Photon

1
Existem boas razões para que as ferramentas FPGA sejam projetadas para serem usadas com lógica principalmente com clock. Circuitos combinatórios complexos são muito difíceis de projetar em um FPGA. Você provavelmente teria que colocar manualmente todos os recursos, como se o relógio não fosse especificado, os atrasos de roteamento poderiam ser bastante aleatórios entre as execuções de síntese. Se o seu design realmente não se importa com atrasos na propagação, você tem uma chance ... mas se você se importa com esses atrasos, provavelmente terá uma experiência dolorosa e desanimadora.
darron

4

Os FPGAs são mais do que apenas portões (LUTs, FFs, RAM de bloco, multiplicadores, etc.) e tentar descobrir quantos existem é um exercício sem sentido. Os departamentos de marketing da empresa FPGA, no passado, lançaram números como contagem de gate equivalente igual a 1,4x o número de células lógicas, mas acredito que eles pararam essa prática.

Se você está tentando determinar se um determinado design se encaixa em um FPGA, é melhor executar algumas execuções de síntese em seu HDL para FPGAs de vários tamanhos.


Bem, é isso mesmo, ainda não comecei a projetar (e meu design está diretamente na lógica), porque eu iria projetar com base nas minhas ofertas especiais de FPGAs. Sei que precisaria de cerca de 2,5 milhões de portões, então como encontraria algo que pudesse suportar tantos portões?
haneefmubarak

Como você sabe que precisa de portões de 2,5 milhões?
Amoch

Comecei a criar um módulo em um pequeno simulador, multiplicado pelo número de módulos que eu precisava, adicionei um pouco de espaço e arredondado para dois símbolos.
haneefmubarak

Como você conseguiu uma contagem de portões? As ferramentas FPGA fornecerão números de uso em termos de recursos, e não de contagem de portas.
Amoch

1
Como o @The Photon disse, os FPGAs e suas ferramentas são fortemente influenciados pelas técnicas de design síncrono e você obterá resultados ruins fazendo o contrário. No final do dia, se você deseja criar um FPGA, use as ferramentas FPGA, e não outra coisa.
Amoch

2

Venha para o outro lado - soa a partir de outros comentários como se você tivesse um módulo já resolvido. Alimente isso às ferramentas FPGA - mesmo as gratuitas, fornecerão uma estimativa da contagem de LUT / BRAM / FF a partir da síntese. Multiplique isso pela contagem de instâncias, adicione um pouco de folga e você terá uma contagem útil de LUT para dimensionar o FPGA.

Obviamente, você pode ter que fazer isso para cada tipo de FPGA que considerar, pois cada um deles possui arquiteturas um pouco diferentes, em termos do número de entradas que as LUTs possuem e quanto de outros circuitos de suporte na maneira de muxes etc. eles têm. o LUTS. E se o seu circuito pode tirar vantagem disso ...


Bem, eu poderia, se eu pudesse encontrar uma ferramenta FPGA gratuita que me permita simplesmente extrair portas lógicas e depois programar uma FPGA com ela.
21713 haneefmubarak

Se você deseja uma estimativa séria, pode usar o diagrama de portas e transformá-lo em HDL. Você precisará fazer isso de qualquer maneira para realizar qualquer trabalho sério de implementação atualmente. É um projeto de "espaguete" muito grande ou está estruturado hierarquicamente com muita reutilização?
Martin Thompson
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.