关于verilog实例化的介绍

概念

当咱们完成一个比较完整的系统的时候,一般须要编写一个Testbench来验证本身的设计的功能可否知足设计要求。在这个系统中一般会有一个top模块来链接那些小的模块,verilog经过实例化的方式来完成这些子模块和顶层模块的链接,而后顶层模块能够由此来调用各个子模块。设计

用法

调用模块的端口通常有两种方式,一种是位置关联,一种是名字关联,顺序关联不容易漏掉端口,名字关联容易理解(两个相同的名字确定好理解啊)ci

举例说明

子模块(这里以一个简单的全加器模块说明)描述以下:module

module adder(a,b,cin,s,cout);方法

innput a,b,cin;top

output cout,s;端口

assign {cout,s} = a + b + cin;co

endmodule实例化

下面有一个顶层模块调用全加器模块:实例

module top(A,B,CIN,S,COUT);系统

...

adder ADDER(A,B,CIN,S,COUT);//这里采用位置关联

...

endmodule

若是采用名称关联

adder ADDER(

.a(A),

.b(B),

.cin(CIN),

.cout(COUT)

);

上面两种关联方式有一些共同点:

一、例化中必定会有一个例化名,好比上面的ADDER,就表明着对adder模块的调用,这个例化名能够本身定,没有什么特别要求。

值得一讲的是名称关联,这种方法注意是前面写的是子模块内的端口名称,括号里面的是顶层模块里面的端口名称。通常咱们写模块时都喜欢将两个模块里面的端口名称写成同样的,方便本身理解。

还有就是注意悬空端口的处理。综合时悬空端口会有必定的影响。

相关文章
相关标签/搜索