4.モジュール
<module>
::=
module <name_of_module> <list_of_ports>? ;
<module_item>*
endmodule
モジュールは基本的な構成単位です。論理合成する場合の合成単位でもあります。また、
インスタンスとして合成可能なモジュールを子供に持ちテストベンチモジュールとすることもあります。
モジュールで重要なのは、論理合成するか否かです。論理合成を前提にする場合はVerilog構文制約以外に論理合成可能な記述にしなければいけません。
文法は、BNFが分かるようになると幅が広がりますが、ほとんど使われない構文も多々ありますので、実際に必要なモジュールのサンプルを見てそれを真似て必要な構文だけ、シミュレータで走らせて見る習得方法でよろしいかと思います。
とりあえず、
モジュールの文法は、
キーワード"module"に始まり
次にモジュール名、入出力のポートの記述がある場合もあって、”;”で終わり、
モジュールアイテムが0回以上あって
キーワード"endmodule”で終わることを示しています。
Veritakインストールパッケージには、サンプルフォルダ、regression_testフォルダのなかにたくさんのサンプルモジュールが入っていますので、それを見てください。