Os FPGAs baseados em SRAM precisam carregar o fluxo de bits novamente após o desligamento. Enquanto isso, o não volátil não precisa disso.
Eu me pergunto, por que mais experimentos e pesquisas de segurança são feitos no SRAM FPGA do que no NVM, parece que a tecnologia volátil é mais usada independentemente de seus limites de segurança (quando se trata de garantir uma inicialização segura).
(PS: Não tenho estatísticas, é uma observação pessoal)
Respostas:
O principal driver é o fato de a SRAM ser altamente compatível com o mesmo processo físico que é usado para implementar a lógica real. De fato, a maioria dos FPGAs hoje em dia são baseados em LUTs (tabelas de pesquisa), que são na verdade apenas pequenos bits de RAM.
Por outro lado, o processo necessário para construir EEPROM (memória não volátil) requer etapas extras - para criar portas flutuantes com espessura de óxido especial, etc. Este processo NÃO é diretamente compatível com o processo lógico / SRAM. Isso significa que FPGAs não voláteis são um pouco comprometidos em ambas as áreas.
fonte
Além da resposta de Dave Tweed sobre os processos de fabricação envolvidos, a maioria dos FPGAs baseados em flash ainda usam a SRAM para direcionar sua malha. O fluxo de bits é carregado na SRAM pelo flash, como em um FPGA mais convencional, a única diferença é que o flash é interno. Essa arquitetura é evidente quando você olha para suas folhas de dados e notas de aplicativo. Em particular, alguns dispositivos como o Lattice MachXO2 / 3 suportam a reprogramação do flash enquanto o dispositivo está em execução, o que só é possível porque o dispositivo realmente executa a partir da SRAM em vez de diretamente a partir do flash. Portanto, um FPGA "baseado em flash" precisa do flash além da SRAM, o que significa que precisa de mais área da matriz.
Em relação à segurança, você tem razão em apontar que o processo de inicialização do FPGA pode ser um ponto fraco em termos de permitir que o fluxo de bits seja capturado. Para ajudar a preencher essa lacuna, muitos FPGAs agora incorporam suporte à criptografia de fluxo de bits, que se baseia em uma chave segura armazenada na memória dedicada dentro do FPGA. Uma imagem de fluxo de bits é criptografada com essa chave, carregada na memória de configuração e, quando o FPGA é inicializado, lê o fluxo de bits criptografado e descriptografa-o à medida que o carrega (alguns microcontroladores que exigem memória externa têm recursos semelhantes e os princípios são basicamente os mesmos.)
fonte
Mais do que tudo, depende de suas necessidades. Embora tamanho, peso e potência (SWaP) sejam os principais drivers para ICs em geral, se você não for obrigado a desenvolver um ASIC por causa desses requisitos, o desempenho é sua próxima consideração, o que pode levar você de volta a um ASIC de qualquer maneira, mas, você poderá usar um FPGA se puder pagar as compensações do SWaP.
Os FPGAs baseados em FLASH (Actel, agora Microsemi), tradicionalmente, não tinham a densidade ou o desempenho que se poderia obter com os FPGAs baseados em SRAM; portanto, se o desempenho fosse o fator determinante, você escolheria Xilinx ou Altera (agora Intel) ou talvez Malha.
Essencialmente, você é orientado pelos requisitos do seu sistema e do seu IC especificamente. Desde o início, você atende a esses requisitos e realiza um estudo comercial dos diferentes FPGAs (planilha). SWaP e desempenho, seguidos de custos recorrentes, são as principais considerações sobre as quais você deseja interagir com sua equipe (sistemas, CCA, talvez até SW), que é realimentada pelo engenheiro / gerente-chefe do projeto. Outras preocupações, como confiabilidade, capacidade de fabricação, etc. geralmente são fornecidas por outros membros da equipe dessas organizações, mas geralmente não significam muito sem o seu comércio inicial e geralmente não impedem sua escolha.
Existem artigos na Web se você pesquisar "SRAM vs FLASH FPGAs", mas provavelmente aprenderá mais com um estudo comercial sobre seus requisitos usando as folhas de dados do que com qualquer outra coisa.
fonte
Para abordar o aspecto de segurança, os FPGAs da SRAM mais modernos podem ser configurados com um fluxo criptografado , geralmente com padrões modernos de criptografia, como o AES de 256 bits. Pode-se argumentar que é tão seguro quanto armazenar a configuração internamente: um attacher dedicado capaz de extrair a chave privada de um chip decapado também poderá ler o flash interno.
Normalmente, os FPGAs baseados em flash são usados quando a implementação é bastante simples (portanto, não é necessário um FPGA SRAM grande) ou quando é necessária uma inicialização instantânea.
fonte