Los FPGA Xilinx Spartan 3AN tienen flash interno que los hace no volátiles. Su pregunta es en realidad múltiples preguntas.
1) ¿Los FPGA son volátiles o no volátiles? La mayoría son volátiles y requieren que la corriente de bits de configuración se lea en el FPGA desde un dispositivo de almacenamiento externo no volátil en cada encendido. Hay algunos que no son volátiles. Como el Xilinx S3AN que menciono.
2) ¿Cómo se protege el flujo de bits de configuración? Hay múltiples respuestas a esta pregunta.
Puedes encriptar el flujo de bits; lo que significa decir que el flujo de bits que se almacena en el dispositivo de almacenamiento no volátil discutido anteriormente es un texto cifrado único que solo puede ser descifrado por el único fpga con la clave apropiada. Esto protegerá la funcionalidad del flujo de bits para que no sea descubierta por ingeniería inversa. Es decir, incluso si el flujo de bits cifrado se puede extraer del dispositivo de almacenamiento no volátil, ya sea in situ o por medios más destructivos, no se podrá obtener sentido del archivo extraído ya que está cifrado.
También puede configurar el flujo de bits para que no se pueda volver a leer. La interfaz JTAG que se usa para programar un FPGA en el momento de depuración generalmente se puede usar para leer el flujo de bits de configuración fuera de la fpga. Establecer la opción NO_READBACK lo prohíbe.