2016-11-12 16 views
0

私はVerilogを初めて使っていますが、なぜ信号のnet(subcounter_of_counter)への不正な参照ですか?私はそれが事前にVerilog、なぜこの不正なネットへの参照ですか?

感謝:)

wire [n-1:0] subcounter_of_counter; 
reg [n-1:0] mask,free;  
always @(*) begin //command or id or mask or free or subcounter_of_counter 
     if (command==increment) begin 
      for (int i = 0; i < n; i=i+1)begin 
       if (i<id) begin 
        subcounter_of_counter[i]=1'b0; 
       end else if (i==id) begin 
        subcounter_of_counter[i]=1'b1; 
       end else begin 
        if((|mask[id+1:i]) || (|free[id+1:i])) begin 
         subcounter_of_counter[i]=1'b0; 
        end else begin 
         subcounter_of_counter[i]=1'b1; 
        end 
       end 
      end 
     end 
     end 

答えて

2

wireはNETTYPEで、NETTYPEがalwaysブロックまたはinitialブロックに割り当てることができない組み合わせ論理だ意味します。
subcounter_of_counterwireからregに変更して問題を解決してください。 regは論理型のキーワードであり、明示的にはそれがレジスタに合成されることを明示的に示すものではありません。

+0

ありがとうございます。私は多くを助けた。 :) –

+0

あなたが同じコードで別の座席を手伝ってもよければ、こちらをご覧ください: http://stackoverflow.com/questions/40578102/verilog-error-range-must-be-bounded-by-constant-expressions –

関連する問題