1

特に、その単純なマウスカーソル。これをソフトウェアで実装しましたが、ハードウェアで実装するのに問題があります。ソフトウェアでは、ビットマップを定数配列として保存し、それを参照して、vgaを表示するために必要な色情報を取得できます。私はハードウェアで同様のアプローチを試みていましたが、一定の信号は合成ではなくシミュレーションにのみ存在することに気づきました。

私は精神的に箱の中に閉じ込められており、これを終わらせることができるようにそれから抜け出すのを助けるためにいくつかのアドバイスが欲しいです。先生がいつも言うように、私はハードウェアで考える必要があります。

ソフトウェアは次のようになりました。

 const char mouse_data{ 0xff, 0x bb ... };
 color = mouse_data[1];
 vga_write(vga_base, offset, color);
4

2 に答える 2

1

そうです、FPGA をプログラミングするときにハードウェアが一番重要だと考えています。

したがって、ソフトウェアの実装では、const char配列はコンピューターのメモリに格納されます。そのため、FPGA デバイスにメモリを作成してそこに格納することが解決策になる可能性があります。ほとんどの FPGA には何らかの組み込みメモリがあり、推論 (メモリ ブロックに自動的にマップされるようにコードを記述) またはインスタンス化 (特定のメモリ ブロック タイプを直接使用するようにコードを記述) できます。多くの場合、構成中にプリロードするデータのブロックを指定することもできます。

たとえば、ザイリンクス チップでは、新しい IP コアを追加し、ザイリンクス メモリ ジェネレーターを選択して、カーソル データがプリロードされた読み取り専用の BlockRam を生成できます。必ずしも最良の解決策ではありませんが、それは可能性があります。

于 2012-05-01T16:44:35.197 に答える
0

「コスト」は確かに合成可能です。したがって、なぜそれがあなたのためではないのかを知るために、あなたは私たちのためにあなたのコードを与える必要があります。

使用されている構文に応じて、constはほとんどの合成VHDLでデコーダー/マルチプレクサとして実装されます。
問題を引き起こしている可能性があるのは「char」であり、これは合成できない可能性がありますが、「char」型の作成を妨げるものは何もありません。

Nの入力値が信号ではなく0または1に固定されているN:1マルチプレクサを想像してみてください。これは、レジスタ入力へのある種の割り当てとして使用される可能性のある定数です。

于 2012-05-02T07:44:24.397 に答える