1

私は単純な vga コントローラーを書いていますが、同じパターンを何度も繰り返していることに気づきました。どうすればこれを回避できますか。

red_out <= zero(x-106,y-63)&zero(x-106,y-63)&zero(x-106,y63)&zero(x-106,y-63);
green_out <= zero(x-106,y-63)&zero(x-106,y-63)&zero(x-106,y-63)&zero(x-106,y-63);
blue_out <= zero(x-106,y-63)&zero(x-106,y-63)&zero(x-106,y-63)&zero(x-106,y-63);

繰り返しを避けるのに役立つコマンドでしょうか?

4

2 に答える 2

2
  • 式を置き換えるには、関数zero(x-106,y-63)&zero(x-106,y-63)&zero(x-106,y63)&zero(x-106,y-63)を使用します。コードは次のようになります。red_out<=f(zero, x, y);
  • 3 つのステートメントすべてを置き換えるには、プロシージャを使用します。コードは次のようになりますp(red_out, green_out, blue_out, zero, x, y)

構文については、http://www.csee.umbc.edu/portal/help/VHDL/design.htmlを確認してください。

于 2012-05-31T09:57:57.363 に答える
2

ベクトルが同じ単一ビットのコピーを受け取る場合、次のコードがそれを行い、関数に頼るよりも簡単になります。

red_out   <= (others => zero(x-106,y-63));
green_out <= (others => zero(x-106,y-63));
blue_out  <= (others => zero(x-106,y-63));

あるいは

my_bit    <= zero(x-106,y-63);
red_out   <= (others => my_bit);
green_out <= (others => my_bit);
blue_out  <= (others => my_bit);
于 2012-06-05T08:41:10.377 に答える