Na minha empresa, projetamos anteriormente algumas placas FPGA personalizadas e recentemente começamos a usar placas FPGA comerciais ("COTS") comerciais com placas-filha FMC personalizadas.
Estágio do protótipo
Se você ainda está na fase inicial de definição do projeto, planeje comprar pelo menos uma placa COTS FPGA para prototipagem. Você pode conectar um de seus sensores aos cabeçalhos de E / S e fazer uma rápida prova de conceito. Isso dá uma idéia de como o projeto pode ser executado quando dimensionado para muitos sensores e estimar quantos você pode suportar com um determinado FPGA.
Se o FPGA é muito pequeno ou muito lento ou as ferramentas são inadequadas para o trabalho, é fácil trocar por outro FPGA do COTS nesse estágio. (Bem, não é fácil, mas pelo menos gerenciável ...)
Se o firmware não funcionar nesta fase, é claramente devido a um problema de firmware, não a um erro de design de PCB personalizado. Com firmware personalizado e PCB personalizado, às vezes é difícil dizer de que lado há uma falha em um problema.
Placa FPGA personalizada versus placa FPGA comercial não comercial
Projetar uma placa FPGA personalizada faz sentido se o projeto tiver um ciclo de vida curto, alto volume ou exigir um fator de forma menor do que você pode obter com a placa COTS FPGA e as placas complementares PMOD ou FMC.
Se o ciclo de vida do projeto exceder a vida útil do produto de um chip de memória DDR (alguns anos), o design de uma placa-filha FMC personalizada pode ser uma alternativa melhor.
O custo é um fator nesta decisão. A maioria das placas COTS FPGA é de uso geral, projetada para máxima flexibilidade. Se você está fabricando um produto de alto volume e sensível ao custo, provavelmente vale a pena fazer um design personalizado; mas para volume baixo, provavelmente é melhor você se concentrar em fazer um cartão de filha.
Independentemente de qual abordagem você escolher, existem certas interfaces que requerem documentação clara e mestre: na interface entre os pinos de E / S de nível superior do FPGA e o restante da placa, e na interface do conector entre as placas. Esses são os locais onde os locais dos pinos, nomes internos da rede e nomes externos da rede às vezes são incompatíveis e trocados. Uma tabela é documentação suficiente; certifique-se de manter esta tabela de interface com versão e sob controle de origem. Antes de enviar arquivos PCB para a fabricação, imprima uma cópia desta tabela de interface, uma cópia do esquema e uma cópia do relatório de pinos / blocos FPGA. Arraste um marca-texto pelos papéis para marcar cada conexão de sinal onde deveria.
Para conectores, aprendi da maneira mais difícil de fornecer um "desenho do sistema" mecânico que mostra as placas e os conectores correspondentes em um único desenho dimensionado. Fui queimado pela primeira vez por um sistema de conectores VME em que o pino "A1" em um conector não era mapeado para o pino "A1" no outro conector. Também vi designers esquecerem que um par de conectores em ângulo reto resulta em uma conexão de imagem espelhada (90 graus + 90 graus = 180 graus). Isso foi um problema quando eu era responsável pela placa-mãe e vários outros gerentes de projeto foram responsáveis por várias placas-filha.
Dicas personalizadas da placa FPGA
Comece com o "design de referência" do fornecedor do FPGA e, em seguida, omita as peças que não são necessárias para o seu aplicativo. Não remova nenhum capacitor de desvio do FPGA e não tente usar menos camadas de PCB. Preste atenção à pilha de camadas (geralmente encontrada ao lado do desenho da broca); os componentes de passo fino normalmente usam 0,5 oz de cobre em vez da espessura padrão da folha de cobre de 1 onça.
O pacote BGA é uma dor de se trabalhar. O rendimento nunca é tão bom quanto nos pacotes TQFP ou TQFN, e retrabalhar um BGA é quase impossível. Mesmo a inspeção de problemas de montagem requer um gerador de imagens de raio-X. Certifique-se de usar um provedor de serviços de fabricação por contrato em que confia.
As fontes de alimentação são sempre complicadas ao trabalhar com placas FPGA. Os requisitos reais de energia do FPGA dependem muito fortemente do fluxo de bits da configuração. O Xilinx fornece uma ferramenta "estimador de energia", mas a estimativa é válida apenas se o firmware estiver completo. Há um risco ao fazer uma alteração de firmware de última hora, que os requisitos de energia sejam maiores que o esperado. Planeje deixar alguma margem atual de fornecimento. Se a estimativa inicial de energia indicar que você precisa de 560mA, vá em frente e use um regulador de 1000mA. A corrente de saída extra disponível não causa danos, mas ter corrente de saída insuficiente resultará em um comportamento aberrante do sistema.
Se houver pinos FPGA não confirmados, coloque o máximo possível em um cabeçalho. Quando há um problema, esses pinos não confirmados se tornam um recurso valioso de diagnóstico para a detecção de sinais dentro do FPGA.