1
我目前正在使用Verilog進行隨機數生成。消息來源指出,使用線性反饋移位寄存器是隨機化MSB的最佳方法之一。所以我決定編寫和測試一個LFSR。片段如下:Verilog:解析錯誤
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 btw
永遠不知道!非常感謝! – Erasmus 2013-02-23 05:28:56
只有最早版本的verilog,IEEE 1364-1995需要使用'或'。後來的版本和SystemVerilog允許使用逗號或'或'。 – 2013-02-23 16:22:08