Wire
Wire(ワイヤ)はネットをモデル化した変数の一つです。ワイヤは単一のゲートか継続代入文によって接続されます。ワイヤを宣言するためには、以下のように記述します。 wire <[最上位桁: 最下位桁]> ワイヤ名;
ネットの宣言時に、信号を接続することもできます。 wire <[最上位桁: 最下位桁] > ワイヤ名 = 変数;
以下に例を示します。 wire flag; // 1ビットのワイヤ wire [3: 0] counter; // 4ビットのワイヤ wire [3: 0] new_counter = counter; // counterをnew_counterへ代入
RegReg(レグ)はレジスタをモデル化した変数です。レグを用いてフリップフロップやラッチを生成することができます、レグを宣言するためには、以下のように記述します。
reg <[最上位桁: 最下位桁]> レグ名;
以下に例を示します。 reg flag; // 1ビット のレグ
reg [3: 0] counter; // 4ビットのレグ
配列Regやwireなどの変数は配列にすることができます。配列を宣言するためには、以下のように記述します。 reg [最上位桁: 最下位桁] レグ名[最上位桁: 最下位桁]...[最上位桁: 最下位桁];
wire [最上位桁: 最下位桁] ワイヤ名[最上位桁: 最下位桁]...[最上位桁: 最下位桁];
配列の要素へアクセスするためには以下のように記述します。 レグ名[添字]...[添字];
ワイヤ名[添字]...[添字];
以下に例を示します。 reg flag[1: 0]; // 1ビット、深さ2のレグ wire [7: 0] images[319: 0][239: 0] // 8ビット、320x240のワイヤ .... assign image[319][239] = 8'b0; // image[319][239]へ代入
....
always @(posedge clock) begin
...
flag[0] <= 1'b0; // flagの0番目の要素へ代入
flag[1] <= 1'b1; // flagの1番目の要素へ代入
...
end
|