Verilog例化(调用)模块注意事项

在verilog中调用模块主要有两种写法:

1,第一种需要将模块变量与所调用的模块的端口顺序摆放一致。

本文引用自 https://blog.csdn.net/llxxyy507/article/details/81047723

   一个简单的全加器模块描述如下:

module adder(a,b,cin,s,cout);
   input a,b,cin;
   output cout,s;
   assign {cout,s} = a + b + cin;
endmodule

  若一个模块temp需要调用adder模块时,temp中的与adder想连的端口需要与adder中声明的端口顺序一致。端口的介绍,可以参阅点击打开链接。 调用首先写被调用模块的名称(adder)  ,随后的是实例名(add,用户自己定义),然后按adder中端口的顺序写下实例的端口名即可。

module temp(B,A,COUT,CIN,Sum);
...
    adder  add(A,B,CIN,Sum,Cout);
...
endmodule

  若不需要全部的端口则如下调用: 

adder add(A , , CIN , , COUT);

 此实例中没有引用adder中的b,s两个端口,故省略,但逗号一定要保留。

2,第二种调用端口顺序可以随意摆放,同样以调用adder模块为例。

module temp(B,A,COUT,CIN,Sum);
...
...
 adder  add(.a(A), .s(Sum), .b(B), .cout(Cout), .cin(CIN));
...
endmodule

当不需要调用所有端口时,可如下调用:

 adder  add(.a(A), .s(), .b(), .cout(Cout), .cin(CIN));

此实例中没有引用adder中的b,s两个端口.

良好的coding style推荐使用第二种模块调用方式

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值