2012-04-30 9 views
1

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

私は精神的に箱の中にくっついているので、これを終えることができるように助けてくれるアドバイスが必要です。私は教師が常に言うように、ハードウェアで考える必要があります。

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

誰かが色をキーとしてデコーダに変換するように指示しました。出来た。 –

答えて

1

はい、ハードウェアを思考するFPGAをプログラミングする際に行うためのナンバーワンの事です:

ソフトウェアは、このような何かを行ってきました。

あなたのソフトウェア実装では、const charアレイがコンピュータのメモリに格納されます。そのため、FPGAデバイスにメモリを作成してそこに格納することができます。ほとんどのFPGAには、ある種のメモリが内蔵されています(コードを書き込んで自動的にメモリブロックにマップする)か、インスタンス化して(コードを書き込んで特定のメモリブロックタイプを直接使用する)ことができます。しばしば、設定中にプリロードするデータブロックを指定することもできます。

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

0

「コスト」は確かにシンセサイザブルです。だからあなたがなぜあなたのためではないのかわかるように、私たちのコードを伝えなければなりません。

どの構文が使用されているかに応じて、constはほとんどのシンセシスされたVHDLのデコーダ/マルチプレクサとして実装されています。
問題を引き起こしているのは、シンセシスできないかもしれない「char」ですが、タイプ「char」の作成を止めるものは何もありません。

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

関連する問題