1

私たちの学校のプロジェクトでは、ハードウェア (7 セグメント) での疑似乱数生成に線形フィードバック シフト レジスタを使用しようとしています。LFSR と 7 セグメント モジュールを作成しましたが、2 つのモジュールを相互に接続するのに問題があります。プロジェクトは合成されますが、HDL ダイアグラムには LFSR と 7 セグメント モジュール間の接続が表示されません。以下はコードです。

//main module
module expo(input clock, reset,
            output a,b,c,d,e,f,g
            );
wire [3:0]connect, clk, a,b,c,d,e,f,g;

LFSR_4_bit lfsr(
    .clock(clock),
    .LFSR(connect)
);

seven_seg seven(
     .in(connect),
     .reset(reset),
     .a(a),
     .b(b),
     .c(c),
     .d(d),
     .e(e),
     .f(f),
     .g(g)
);

endmodule

 //LFSR module
 module LFSR_4_bit(
            input clock,
            output reg[3:0]LFSR = 15  
);

    wire feedback = LFSR[4];

    always @(posedge clock)
       begin
      LFSR[0] <= feedback;
      LFSR[1] <= LFSR[0];
      LFSR[2] <= LFSR[1];
      LFSR[3] <= LFSR[2] ^ feedback;
      LFSR[4] <= LFSR[3];
      end

  endmodule

  //input and output for seven seg module

module sevenseg(
    input reset,
    input[3:0] in,  //the 4 inputs for each display
    output a, b, c, d, e, f, g, //the individual LED output for the seven segment along                           with the digital point
    output [3:0] an   // the 4 bit enable signal
    );

助けてくれてありがとう。

4

1 に答える 1

2

1)インスタンス化しますseven_segが、モジュールが呼び出されmodule sevensegます。これはコンパイル エラーです。

2) LFSR には 0 から 3 までの 4 つのビットがあり、5 番目のビットLFSR[4]が使用されています。これもコンパイル エラーです。

コンパイル エラーのため、現在の合成の結果が表示されているかどうかわかりません。失敗するはずです。接続される前の古い結果を表示している可能性が非常に高いです。

私が変更するその他のこと:
a)定義するとき、wire [3:0]connect, clk, a,b,c,d,e,f,g;それらはすべて 4 ビットです。

ただし、クロック (clk ではない)a,b,c,d,e,f,gはポート リストで定義されているため、既に宣言されています。その行はただの可能性がありますwire [3:0]connect

b)フリップフロップの値を初期化し、リセットを使用しない場合は、初期開始を使用することをお勧めします。これは、リセット信号を使用する必要がある ASIC ではなく、FPGA に有効です。

initial begin
  LFSR = 4'd15;
end
于 2014-05-10T07:13:24.660 に答える