小さな練習をしているVerilogに慣れてきていますが、今では線形フィードバックシフトレジスタを実装しようとしています。単純なVerilog forループのエラー
forループを使ってalwaysブロック内にflipflopチェーンをモデル化しようとしていますが、iverilogはエラーを受け取り続けますlfsrに「i」は不明です。 "i"は反復変数です。 lfsrは私のモジュールです。
always @(posedge clk or negedge res_n) begin
if(res_n == 0) begin
// ... implement reset
end
else begin
flops[0] <= input_wire;
for (i = 0; i <= width-2; i = i+1) begin
flops[i+1] <= flops[i];
end
end
end
誰かが私を助けてくれますか?
ありがとうございました。
それは確かにそれでした。私が読んだVerilogチュートリアルでは、そうするように言わなかったのは不思議です。これはコンパイラに依存しているのでしょうか? – Jersey
@Jerseyコンパイラに依存しているかどうかはわかりません。しかし、Verilogの私の理解のために、不思議で不思議なエラーやバグを作らないためには、すべてのレジスタ、ワイヤ、または変数を可能な限り指定する方がよいでしょう。 –
コンパイラに依存しません。ループ変数を 'for'ループで宣言する必要があります。 –