Li em algum lugar que um código VHDL ruim pode levar a danos no FPGA.
É possível danificar um FPGA com código VHDL? Que tipo de condições causaria isso e quais são os piores cenários?
Li em algum lugar que um código VHDL ruim pode levar a danos no FPGA.
É possível danificar um FPGA com código VHDL? Que tipo de condições causaria isso e quais são os piores cenários?
Respostas:
Adicionando à resposta do @ Anonymous, existem projetos que você pode criar que podem danificar a estrutura de um FPGA.
Para iniciantes, se você criar um projeto muito grande, consistindo em grandes quantidades de registros (por exemplo, 70% do FPGA) com freqüência aproximada da frequência máxima dos FPGAs, é possível aquecer o silício consideravelmente. Sem refrigeração suficiente, isso pode causar danos físicos. Perdemos um FPGA de US $ 13.000 porque superaqueceu devido ao kit dev ter um péssimo sistema de refrigeração.
Outro caso mais simples pode ser loops combinacionais. Por exemplo, se você instanciar três portas não ligadas em um anel e desativar ou ignorar os avisos dos sintetizadores sobre essa estrutura, você pode formar algo que é muito ruim para um FPGA. Neste exemplo, você faria um oscilador multi-GHz que poderia produzir muito calor em uma área muito pequena, provavelmente danificando o ALM e a lógica circundante.
Código não é a palavra certa nesse contexto. Enquanto Verilog ou VHDL parecem programa, a saída do compilador é uma configuração que é carregada no chip FPGA que forma o circuito eletrônico dentro dele.
Dois tipos me vêm à mente:
A configuração incorreta de um bloco de pinos de entrada como saídas pode fazê-lo se qualquer outra coisa que os estiver dirigindo for suficientemente rígido.
Não sei se a configuração de alguns pinos para LVDS ou um dos padrões LVCMOS enquanto o banco de E / S é alimentado por uma tensão excessivamente alta (energia de 3,3V com um padrão de IO de 1,8V, por exemplo, ou o oposto em uma entrada) faria isto?
Obviamente, problemas térmicos podem ser uma possibilidade, fazendo algo tolo como instanciar muitos, muitos, osciladores de anel.
Os FPGAs podem ser reconfigurados em tempo de execução com um novo fluxo de bits (parcial). Normalmente, esse fluxo é carregado de uma fonte externa, mas você também pode criá-lo no FPGA (por exemplo, por uma CPU softcore incorporada). O uso dessa solução para, por exemplo, realocar dinamicamente sub-designs, não fornece todas as verificações de consistência, como são feitas pelas ferramentas do fornecedor. Portanto, se seu algoritmo estiver quebrado, você poderá ativar os transistores de caminho falso em um FPGA e gravá-los.
Você também pode escolher modos de operações falsas para primitivas de FPGA, como PLLs ou transceptores.
A reconfiguração dinâmica é como código auto-modificável no software.