0

VHDLを使用した画像処理のプロジェクトを行っています。これは、別のキー画像を使用した1つの画像の暗号化プロセスです。

画像のTYPEを次のように作成しました

type image is array (1 to 256,1 to 256) of std_logic_vector(7 downto 0);

ファイル読み取りオプションを使用して画像を読み取りました。元の画像とキー画像の間でexor操作を実行する必要があり、ピクセルのスクランブリングを行う必要があります。

最初に、画像をシグナルとして宣言しました。正しい出力が得られていたにもかかわらず、そのプログラムを実行するとシステムがハングしました。そのため、すべての画像を変数に変換し、ハングの問題なくスムーズに出力を取得しました。

しかし、問題は合成にありました。コードが合成されません。ファイルの読み取り部分と書き込み部分を削除しました。合成を丸一日実行しましたが、結果が得られません。なぜこんなに時間がかかるのですか?そして、この問題を解決する方法は??

4

1 に答える 1

2

この獣を合成しようとしていますか?256x256x8 ビット = 524k ビットのイメージを生成しようとしています。つまり、1 つの画像を格納するだけで 524k レジスタを使用していることになります。多くの FPGA では、これは利用できる以上のものです! チップ上のリソースの使用率について考える必要があります。

画像処理を行うときは、行ごとに処理を行う必要があります。DDR メモリなどのオフチップ ストレージを使用するか、内部ブロック RAM ストレージを慎重に利用しない限り、イメージ全体を一度に保存することはできません。画像を処理するときは、一度に行を読み出して FIFO にバッファリングし、必要な操作を実行して、結果を DDR メモリまたはブロック RAM に書き戻します。

イメージ全体を分散 RAM に保持しようとするのは悪い考えです。

于 2013-10-03T13:57:51.163 に答える