Verilog HDL支持层级化的硬件描述结构,允许将模块(module)嵌入其他模块中。在高层级的模块内创建低层级模块实例,并通过输入、输出和双向端口与低层级模块实例通信,模块的输入/输出(I/O)端口可以是标量或矢量。
模块定义应包含在关键字module和endmodule之间。关键字module后面的标识符是所定义模块的名称。可选的参数定义指定了模块参数的有序列表。可选的端口或端口声明指定了模块端口的有序列表。在模块实例化时,模块参数列表(module_parameter_port_list)和端口列表(ports_list)中定义参数的顺序可能很重要。该列表中的标识符应在模块定义的input、output和 inout 语句中声明。在端口声明列表中声明的端口不得在模块内部重新声明。
在定义模块时,关键字 macromodule 可以与关键字 module 互换使用。编译器实现时可以选择以不同方式处理以macromodule关键字开头的模块定义。如下表1所示为模块的语法定义:
表1:module的语法定义
点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!