77,Verilog-2005标准篇:模块例化(module instantiation)的语法结构

模块module例化时,允许一个模块将另一个模块包含在其内部,但模块定义时则不能嵌套。换句话说,一个模块定义的 module-endmodule 关键字对中不得包含另一个模块定义的相关内容。一个模块通过例化自身的方式来与另一个模块连接,例化的模块会创建一个或多个已定义的模块实例。例如,一个计数器模块可以通过例化D触发器模块,来创建多个D触发器实例。下表给出了模块例化的标准语法结构:

表1:模块例化的语法

通过模块声明的名称连接模块端口时,可以在端口列表中省略未连接的端口,或在括号中不提供表达式 [即.port_name () ]。下面咱们举几个例子说明模块的用法:

例1--下面的示例说明了由波形模块(上层模块)驱动的电路模块(下层模块),其中电路模块被例化在波形模块内:

例2-下面的示例创建了例 1 中定义的触发器模块 ffnand 的两个实例。其中一个实例只连接 q 输出,另一个实例只连接 qbar 输出:

// a waveform description for testing
// the nand flip-flop, without the output ports
module ffnand_wave;
reg in1, in2; //variables to drive the circuit
parameter d = 10;
// make two copies of the circuit ffnand
// ff1 has qbar unconnected, ff2 has q unconnected
ffnand  ff1(out1, , in1, in2),
        ff2(.qbar(out2), .clear(in2), .preset(in1), .q());
//      ff3(.q(out3),.clear(in1),,,); is illegal
// define the waveform to stimulate the circuit
initial begin
#d in1 = 0; in2 = 1;
#d in1 = 1;
#d in2 = 0;
#d in2 = 1;
end
endmodule

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值