私が調べた限りでは、FPGA の電源がオフになると、再度プログラムする必要があります。しかし、Verilog を使用して FPGA ベースのセキュリティ システムを実装しようとしています。その中で、システムのパスワードを永続的に保存したいと考えています。つまり、電源がオフになってもパスワードを消去してはいけません。プログラムも保存できると良いですね。FPGA初心者です。ですから、これを行う方法を教えてください。デバイスは XC3S400 Spartan 3 ファミリです。
2 に答える
Spartan 3 のような SRAM ベースの FPGA を使用している場合は、電源を入れるたびにプログラムする必要があります。これは、設定を保存する SRAM が揮発性であり、電源を切るとプログラムされた設定が失われるためです。
Spartan 3 AN は、ある程度の量の内部フラッシュ メモリを提供する数少ないザイリンクス FPGA の 1 つですが、この機能を自分で使用したことがないため、詳細を説明することはできません。
または、不揮発性構成ストレージを提供する純粋なフラッシュベースの FPGA があります。つまり、FPGA の電源を入れるたびに構成ファイルを読み込む必要はありません。一度設定する必要がありますが、電源を切っても設定が保持されます。次回の電源投入時には、すでに構成されており、動作する準備が整っています。
すべては、FPGA 内に不揮発性メモリがあるかどうかにかかっています。それ以外の場合は、外部 IC を使用する必要があります。
カスタム パスワードの代替ソリューションとして: 多くのベンダーが、コンフィギュレーション ビットストリームを暗号化するためのツール サポートを提供しています。FPGA に組み込まれたコンフィギュレーション ロジックは、コンフィギュレーション中にオンザフライでビットストリームを復号化できます。誰でもコンフィギュレーション PROM からビットストリームを読み取ることができますが、暗号化されているためほとんど役に立ちません。
通常、FPGA は電源を入れるたびにある種のフラッシュ メモリから再度ロードされますが、ロードされたビットストリームは安全ではありません。
ただし、一部のFPGA は、たとえば、ビットストリームを暗号化できる固有の暗号化書き込み専用キーを内部に持つことによって保護できます。その後、Verilog コード内にパスワードをプログラムし、入力時に確認できます。
キーまたはパスワードが頻繁に変更されるか、デバイスのコピーごとに異なる必要がある場合は、FPGA 内の永久秘密キーによって提供される暗号化を使用して、外部 FLASH/EEPROM メモリに保存する必要があります。