64-битный дизайн LFSR
Я разработал 64-битный lfsr, но я думаю, что он не отображается случайным образом. Своего рода закономерность. Может кто-нибудь проверить мой код и посмотреть, если он правильный. (TAP 64,63,61,60)
module lfsr (out, clk, rst);
output reg [63:0] out;
input clk, rst;
wire feedback1,feedback2,feedback3;
assign feedback1 = ~(out[63] ^ out[62]);
assign feedback2 = ~(out[62] ^ out[60]);
assign feedback3 = ~(out[60] ^ out[59]);
always @(posedge clk, posedge rst)
begin
if (rst)
out = 64'b0;
else
out = {out[60:0],feedback3,feedback2,feedback1};
end
endmodule
1 ответ
Ваши ответвления верны (64,63,61,60) для LFSR максимальной длины, но вы не правильно их подключили. Это то, что вам нужно:
module lfsr (out, clk, rst);
output reg [63:0] out;
input clk, rst;
wire feedback;
assign feedback = ~(out[63] ^ out[62] ^ out[60] ^ out[59]);
always @(posedge clk, posedge rst)
begin
if (rst)
out <= 64'b0;
else
out <= {out[62:0],feedback};
end
endmodule
Посмотрите на эту игровую площадку, которая реализована для LFSR с 6-ю отводами, потому что LFSR с 64-мя отводами займет довольно много времени для моделирования.