入出力ポート

# このページは,学生実験用資料として筑波大学リコンフィギュラブルコンピューティングシステム研究室のwebページで公開されていたものを,許可を得て転載したものです.


モジュールへ接続される入出力ポートの宣言は以下のように行います。

 
module モジュール名(
  入出力ポート, 入出力ポート,..., 入出力ポート
);
input ポート名;
...
output ポート名;
...
inout ポート名;
...

信号の種類 出力ポート名;
...
endmodule
    

入出力ポートの宣言時に使うパラメータを宣言することもできます。

 
module モジュール名 #(
  parameter パラメータ名 = 値,
  parameter パラメータ名 = 値,
...
  parameter パラメータ名 = 値
) (
  input ポート名,
...
  inout ポート名,
...
  output 信号の種類 ポート名
);
// 内部信号や処理の記述
endmodule
    

以下に例を示します。

 
// 入出力ポートの宣言
module Counter (out, in, clk, rst);

// パラメータの宣言
parameter WIDTH_COUNTER = 2;

// 入出力ポートの宣言
input [WIDTH_COUNTER - 1: 0] in;
input clk, rst;
output [WIDTH_COUNTER - 1: 0] out;

// レジスタの宣言
reg [WIDTH_COUNTER - 1: 0] out;
  ...
    

以下にパラメータを同時に指定する例を示します。

 
module Counter #(
  // パラメータの宣言
  parameter WIDTH_COUNTER = 2
) (
  // 入出力ポートの宣言
  output reg [WIDTH_COUNTER - 1: 0] out,
  input [WIDTH_COUNTER - 1: 0] in,
  input rst, clk
);
// 内部信号、処理やサブモジュールの宣言
// 入出力ポートを再宣言する必要はない
    

戻る