1

我目前正在使用 Verilog 生成随机数。消息来源表明,使用线性反馈移位寄存器是随机化 MSB 的最佳方法之一。所以我决定编写一个 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 回答