例3:使用原语的三态驱动器。
module trist2(out,in,enable); //三态启动器模块端口声明
output out; //端口说明
input in, enable;
bufif1 mybuf(out,in,enable); //实例化宏模块bufif1
endmodule
这个例子描述了一个名为trist2的三态驱动器。程序通过调用一个在Verilog语言库中现存的三态驱动器实例元件bufif1来实现其功能。
例4:自行设计的三态驱动器。
module trist1(out,in,enable); //三态启动器模块端口声明
output out; //端口说明
input in, enable;
mytri tri_inst(out,in,enable);//实例化由mytri模块定义的实例元件tri_inst
endmodule
module mytri(out,in,enable); //三态启动器模块端口声明
output out; //端口说明
input in, enable;
assign out = enable? in : 'bz; //三态启动器算法描述
endmodule
这个例子通过另一种方法描述了一个三态门。在这个例子中存在着两个模块。模块trist1调用由模块mytri定义的实例元件tri_inst。模块trist1是顶层模块。模块mytri则被称为子模块。
通过上面的例子可以看到。
模块的内容包括I/O声明、I/O说明、内部信号声明和功能定义。
模块的端口声明了模块的输入输出端口,其格式如下:
Module 模块名(端口1,端口2,端口3,端口4, …);
I/O说明的格式如下:
本文关键字:模型 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制