Xilinx Spartan 3AN FPGAs verfügen über einen internen Flash, der sie nichtflüchtig macht. Ihre Frage besteht eigentlich aus mehreren Fragen.
1) Sind FPGAs flüchtig oder nicht flüchtig? Die meisten sind flüchtig und erfordern, dass der Konfigurationsbitstrom bei jedem Einschalten von einem externen nichtflüchtigen Speichergerät in das FPGA eingelesen wird. Es gibt einige, die nichtflüchtig sind. Wie der Xilinx S3AN erwähne ich.
2) Wie schützen Sie den Konfigurationsbitstream? Auf diese Frage gibt es mehrere Antworten.
Sie können den Bitstrom verschlüsseln. Dies bedeutet, dass der Bitstrom, der auf dem oben diskutierten nichtflüchtigen Speichergerät gespeichert ist, ein eindeutiger Chiffretext ist, der nur von der einzelnen fpga mit dem entsprechenden Schlüssel entschlüsselt werden kann. Dies schützt die Funktionalität des Bitstreams davor, durch Reverse Engineering entdeckt zu werden. Das heißt, selbst wenn der verschlüsselte Bitstrom in der Lage ist, aus der nichtflüchtigen Speichervorrichtung entweder vor Ort oder auf destruktivere Weise extrahiert zu werden, kann aus der extrahierten Datei kein Sinn gemacht werden, da er verschlüsselt ist.
Sie können auch festlegen, dass der Bitstrom nicht zurückgelesen werden darf. Die JTAG-Schnittstelle, die zum Programmieren eines FPGA zur Debug-Zeit verwendet wird, kann im Allgemeinen verwendet werden, um den Konfigurationsbitstrom aus dem fpga zurückzulesen. Das Setzen der Option NO_READBACK verhindert dies.