Os FPGAs Spartan 3AN da Xilinx possuem flash interno, o que os torna não voláteis. Sua pergunta é realmente várias perguntas.
1) Os FPGA são voláteis ou não voláteis? A maioria é volátil, exigindo que o fluxo de bits de configuração seja lido no FPGA a partir de um dispositivo de armazenamento externo não volátil a todo momento. Há alguns que não são voláteis. Como o Xilinx S3AN, eu mencionei.
2) Como você protege o fluxo de bits de configuração? Existem várias respostas para esta pergunta.
Você pode criptografar o fluxo de bits; o que significa dizer que o fluxo de bits armazenado no dispositivo de armazenamento não volátil discutido acima é um texto cifrado exclusivo que só pode ser descriptografado pelo fpga único com a chave apropriada. Isso protegerá a funcionalidade do bitstream de ser descoberta por engenharia reversa. Isto é, mesmo que o fluxo de bits codificado possa ser extraído do dispositivo de armazenamento não volátil, seja no local ou mais destrutivo, o sentido não será possível a partir do arquivo extraído, pois ele é criptografado.
Você também pode definir que o fluxo de bits seja proibido de ser lido novamente. A interface JTAG que se usa para programar um FPGA no momento da depuração geralmente pode ser usada para ler o fluxo de bits de configuração do fpga. Definir a opção NO_READBACK proíbe isso.