# このページは,学生実験用資料として筑波大学リコンフィギュラブルコンピューティングシステム研究室の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 ); // 内部信号、処理やサブモジュールの宣言 // 入出力ポートを再宣言する必要はない