如何在 Verilog 中构建 5 位最大长度 Galois LFSR?
How do I build a 5-bit maximal-length Galois LFSR in Verilog?
我在获取所需输出时遇到问题。
这是我的代码:
module top_module(
input clk,
input reset, // Active-high synchronous reset to 5'h1
output reg [4:0] q
);
wire din3;
assign din3 = q[3] ^ q[0];
always @(posedge clk)
begin
if (reset)
q <= 5'd1;
else
q <= {q[0],din3,q[2],q[1],q[0]};
end
endmodule
这是我的输出与正确输出的时序图。
我也一直收到这个错误:
Warning (13024): Output pins are stuck at VCC or GND
我无法使用 Testbench 代码,因为它是在 HDLBits website.
的幕后完成的
您有接线错误。
module top_module(
input clk,
input reset, // Active-high synchronous reset to 5'h1
output reg [4:0] q
);
always @(posedge clk)
begin
if (reset)
q <= 5'd1;
else
q <= {q[0], q[4], (q[0] ^ q[3]), q[2], q[1]};
end
endmodule
注意:如果您在网站上尝试,您可以看到 HDLBits 解决方案。例如,我输入了合法(但错误)的解决方案:assign q=0;
.
我在获取所需输出时遇到问题。
这是我的代码:
module top_module(
input clk,
input reset, // Active-high synchronous reset to 5'h1
output reg [4:0] q
);
wire din3;
assign din3 = q[3] ^ q[0];
always @(posedge clk)
begin
if (reset)
q <= 5'd1;
else
q <= {q[0],din3,q[2],q[1],q[0]};
end
endmodule
这是我的输出与正确输出的时序图。
我也一直收到这个错误:
Warning (13024): Output pins are stuck at VCC or GND
我无法使用 Testbench 代码,因为它是在 HDLBits website.
的幕后完成的您有接线错误。
module top_module(
input clk,
input reset, // Active-high synchronous reset to 5'h1
output reg [4:0] q
);
always @(posedge clk)
begin
if (reset)
q <= 5'd1;
else
q <= {q[0], q[4], (q[0] ^ q[3]), q[2], q[1]};
end
endmodule
注意:如果您在网站上尝试,您可以看到 HDLBits 解决方案。例如,我输入了合法(但错误)的解决方案:assign q=0;
.