1

ベンダーは、一部のコードを生の VHDL にコンパイルするツールを使用しています。彼らは私が生のコードを見ることを望んでおらず、代わりに出力ファイルを暗号化したいと考えています。現時点では、Vivado を使用して EDIF ネットリストに暗号化しています。

これは、デザインを実装する際には問題ありません。これをブラック ボックスとして、I/O のラッパーを使用し、ビットストリームを書き込みます。彼らは、ブラックボックスのデザインが機能することを保証してくれます。リソースの使用率が予想どおりに上がっているのは確かですが、その結果をシミュレートして検証したいと思います。

modelsim でシミュレートしようとすると、もちろん、これらのファイルを復号化する方法がわかりません。ネットリストを VHDL に書き込むと、次のエラーが発生します。

# ** Error: Formatter.vhd(58329): near "AES128-CBC": Unknown session key in protected region

これらのファイルを暗号化する際に、modelsim の暗号化キーを含めるように依頼しましたが、方法がわかりませんでした。

.tcl を使用した大まかなワークフローは次のとおりです。

synth_design -top Formatter
write_edif -force ./Formatteredf

私の質問は、Vivado で EDIF ファイルを生成するときに、modelsim 暗号化キーをどのように含めるのですか?

4

2 に答える 2

1

Modelsim は EDIF をシミュレートできません。EDIF をシミュレートできる形式に変換する必要があります。あなたは Vivado に言及しているので、これらを変換するためにwrite_verilogorを使用します。write_vhdl

暗号化されたサード パーティのネットリストにはアクセスできませんが、暗号化されたザイリンクス IP (具体的には ila_v6) を使用しました。合成後、合成結果を開いて次の操作を行いました。

write_vhdl -mode funcsim -cell test_ila/U0 ila_funcsim.vhd

は、最上位test_ilaで作成したインスタンスで、U0内部の暗号化されたインスタンスです。生成された VHDL は、UNISIM プリミティブの単なるネットリストでした。そして、Modelsim で問題なくコンパイルされました。ネットリストに暗号化された IP がありませんでした。

したがって、次のようなものがあると思います。

component encrypted_ip is
...
end component encrypted_ip;

次に、暗号化された EDIF を追加します。これはブラックボックスとして扱われますが、最終的には合成/インプリメンテーションに取り込まれます。そのため、合成済みまたはインプリメント済みのデザインを開き、 を使用write_vhdlしてコンポーネントをネットリストにダンプします。

于 2016-05-12T15:25:35.073 に答える