always ブロック内でワイヤを使用できますか? たとえば、次のようにします。
wire [3:0]a;
assign a=3;
always @(c)
begin
d=a+c;
end
エラーをスローすることなくコンパイルされました。なんで?
always ブロック内でワイヤを使用できますか? たとえば、次のようにします。
wire [3:0]a;
assign a=3;
always @(c)
begin
d=a+c;
end
エラーをスローすることなくコンパイルされました。なんで?
はい、always ブロック内でワイヤの値を使用できます。always または initial ブロック内のワイヤに値を割り当てることはできません。
wire と reg の唯一の実際の違いは、値を割り当てるための構文です。
上記の例では、d をワイヤとして作成することもできますが、これらは同等です。
reg [3:0] answer_reg;
always @* begin
answer_reg = a + c;
end
wire [3:0] answer_wire;
assign answer_wire = a + c;