2016-10-19 14 views
0

私は64ビットlfsrを設計しましたが、ランダムではないと思います。その種類の規則的なパターン。誰でも私のコードをチェックし、正しいかどうか確認してください。 (TAP 64,63,61,60)は64ビットLFSRデザイン

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

alwaysブロックでノンブロッキング割り当て( '<=')を使用します。 – toolic

答えて

1

あなたのタップは、最大長LFSRのための(64,63,61,60)が正しいですが、あなたはそれらを正しく接続していません。これは、何が必要です:

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 

は、64タップLFSRではなくシミュレートするのに長い時間がかかるだろうので、6タップLFSRのために実装され、this playgroundを参照してください。

関連する問題