0

他の入力に依存するパラメーター値を定義する必要があります。次の方法を試しましたが、うまくいきません。他の代替方法はありますか?

 module (...)
...
input sel ;
..
case (sel)
0: parameter data1 =5;
1: parameter data1 =5;
endcase
...

ありがとう

4

1 に答える 1

3

パラメータは定数であるため、実行時に変更することはできず、動的構造では機能しません。

実行中に変化する入力に基づいて値を設定する必要があり、正しい幅のワイヤまたはレジスタを定義する必要がある場合。

または、定数の場合、値を渡す階層パラメータを使用できますが、それらはすべてパラメータまたは定数に基づいている必要があります。

module top();
  localparam DATA_WIDTH = 32;

  middle #(
    .DATA_WIDTH( DATA_WIDTH )
  ) middle_0();

endmodule

module middle #(
  parameter DATA_WIDTH = -1

  //DO NOT MODIFY
  parameter DATA_OUT_WIDTH = DATA_WIDTH + 10;
)(
  output [DATA_OUT_WIDTH-1:0] data_tx
);
endmodule

あなたの場合:

module (...)
...
input sel ;
..
  reg [3:0] data1;
  always @*
    case (sel)
      0: data1 =5;
      1: data1 =5;
    endcase
  end

endmodule
于 2013-02-26T12:08:14.360 に答える