Verilog程序中如何调用子模块?

Verilog程序中如何调用子模块?,第1张

verilog在调用模块的时候(也称模块实例化),信号端口可以通过位置或名称关联,其形式如下面的例子:\x0d\x0a\x0d\x0amodule and (C,A,B);\x0d\x0ainput A,B;\x0d\x0aoutput C;\x0d\x0a... \x0d\x0aendmodule\x0d\x0a\x0d\x0aand A1 (T3, A1, B 1)//A1为调用and这个模块的一个加法器,在对A1进行实例化时采用位置关联,T3对应输出端口C,A对应A1,B对应B1。\x0d\x0aand A2(.C(T3),.A(A2),.B(B2));//在对A2实例化时采用名字关联,C是and 器件的端口,其与信号T3相连,A对应A2,B对应B2

verilog中函数(function)都是有返回值的,在定义函数时如果你不声明返回值的类型和宽度,则默认为1个1位的reg型变量。

verilog中调用函数和C语言类似,格式为:函数名(实参1,实参2...)

例如你定义了一个函数die,此函数中声明为input的端口为a,b,实际调用时用到的变量为aa,bb,假设要把返回值赋给q,则调用语句为:

q=die(aa,bb)

需要注意的是不能把die(aa,bb)作为一条完整的语句,它实际相当于一个 *** 作数。

——Medied.Lee

例化。

比如:模块1

module A(

input a,

input b,

output c);

assign c = a &b;

endmodule

模块2调用模块1:

module(

input d,

input e,

output f

);

wire c1

A A_inst(

.a(d),

.b(e),

.c(c1)

)

assign f = c1 + 'b1

endmodule


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11560075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存