1

現在、Verilog を使用して乱数生成に取り組んでいます。ソースは、リニア フィードバック シフト レジスタを使用することが、MSB をランダム化する最良の方法の 1 つであることを示しています。そこで、LFSR のコーディングとテストベンチを行うことにしました。スニペットは以下のとおりです。

module lfsr_counter(clk, reset, ce, lfsr_done);

input clk, reset, ce;
output lfsr_done;

reg lfsr_done;
reg [10:0] lfsr;
initial lfsr_done = 0;
wire d0,lfsr_equal;

xnor(d0,lfsr[10],lfsr[8]);
assign lfsr_equal = (lfsr == 11'h359);

always @(posedge clk,posedge reset) begin
    if(reset) begin
        lfsr <= 0;
        lfsr_done <= 0;
    end
    else begin
        if(ce)
          lfsr <= lfsr_equal ? 11'h0 : {lfsr[9:0],d0};
          lfsr_done <= lfsr_equal;
    end
end
endmodule


module testbench();

reg clk, reset, ce;
wire lfsr_done;

lfsr_counter dut(clk, reset, ce, lfsr_done); // Design Under Test

initial
begin

    reset = 0;
        clk = 1;
    ce = 0;

        #100
    ce = 1;
        #200 $finish;
end

//Generate Clock
always #10 clk = !clk; 

endmodule

しかし、私はこれらの解析エラーを取得し続けます:

ここに画像の説明を入力

よくわかりません。私はVerilogger Proを使用しています

4

1 に答える 1

1

orブロック用語は常にコンマではなく、で区切られていると思います。

always @(posedge clk or posedge reset) begin

于 2013-02-23T05:24:09.663 に答える