Verilog HDL-3

来源:互联网 发布:管家婆数据恢复 编辑:程序博客网 时间:2024/06/05 06:37

模块的组成
模块是Verilog HDL设计中的基本功能块,用于描述某个设计的功能或结构,以及它与其他模块进行通信的端口。端口是模块与外部环境交互的接口和通道。

模块定义说明:
1.模块以关键字module开始,并以关键字endmodule结束
2.模块名、端口列表、端口声明和可选的参数声明必须出现在其他部分前面;同样地,为了使模块描述清晰和具有良好的可读性,变量、寄存器、线网和参数等的声明部分必须在使用前出现,放在任何语句的前面。
3.端口是模块和外部环境交互的通道,一个模块可以没有端口
4.模块内部有5个组成部分:变量声明、数据流语句、地层模块实例、行为语句以及任务和函数。
5.对于模块的定义只有关键字module、endmodule和模块名是必须的,其他都是可选的
6.一个Verilog源文件可以包含多个模块,而且对于模块的排列没有要求


模块的端口定义
在模块名的后面紧跟着的就是端口列表,如果模块和外界没有任何交互信号,也可以没有端口列表。

端口列表中的所有端口都必须在模块中进行声明,根据端口的流动方向,端口分为input(输入)、output(输出)和inout(输入/输出双向)三种类型。

所有端口默认的声明为wire型,如果希望输出端口能够保存数据,那就需要显式地将端口声明为reg型;不能将input端口和inout端口设为reg型,因为reg型式用于保存数据的,而输入端口用来反映外界数据的变化,并不可以进行保存。


模块的调用
模块调用语法:
模块名 实例名(端口连接关系表)
·“模块名”是模块定义的(紧接着module关键字)名称
·“实例名”是所调用模块的实例名称
·“端口连接关系表”用于说明该模块实例端口所连接的外部信号,它指明了模块实例和外界的连接关系


更多请查看我的个人博客:https://beatjerome.github.io

原创粉丝点击