変数
# このページは,学生実験用資料として筑波大学リコンフィギュラブルコンピューティングシステム研究室のwebページで公開されていたものを,許可を得て転載したものです.
wire
wire(ワイヤ)はネットをモデル化した変数の一つです。wireは単一のゲートか継続代入文によって接続されます。wireを宣言するためには、以下のように記述します。
wire <[最上位桁: 最下位桁]> ワイヤ名;
|
以下に例を示します。
wire flag; // 1ビットのワイヤ
wire [3: 0] counter; // 4ビットのワイヤ
wire [3: 0] new_counter = counter; // counterをnew_counterへ代入
|
reg
regはレジスタをモデル化した変数です。regを用いてフリップフロップやラッチを生成することができます、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
|
戻る