子模块到顶层模块——例化与调用

在Verilog程序中,不可能将所有的代码放在一个文件里面,不同功能的模块封装在一个文件里面,但最终我们要生成最终的系统电路,必须将这些子模块生成一个顶层模块,那么如何生成这样的顶层模块呢?

给出一个实例,

 

 

 

 

上图中提出了这样一个问题:如何将三个子模块接成一个顶层模块。这三个子模块分别完成了:与,或,加 三种运算,现在需要做的是将三个子模块综合成一个顶层模块,在此我们需要将我们设计的子模块例化成被调用的子模块。关于例化,讨论两个问题:

1.不要手打,要用ISE环境中自己例化的结果:

点击该文件,在下面的窗口中出现view HDL instantiation Template!!双击,即可生成对应的模板,如图:

这样生成的例化模板,首先在格式上不会出错,其次,比较简单,不用手动输入端口,要注意变量前面有小数点!!!!

2.如何将分离的模块产生联系??

上述三个模块是分离的,将其组合成一个模块的时候,注意到,模块1与模块 ,模块2或模块,都与模块3有联系。具体的联系是:将与模块和或模块的输出接到了相加模块的输入

那么如何表示这种逻辑关系呢?

在这里是组合逻辑电路,上述的逻辑联系本质上是一种线连接,因此采用定义相应的变量为wire,并采用assign的赋值方式,即可完成赋值,如下图:

得到得到综合电路结果如下图:

图示完成了完整的顶层模块构架。再次总结以下3个观点:

1 各个子模块的设计可以相互独立

2 例化子模块的时候,不要手打,采用“view HDL instantiaion Template”!例化更为方便。

3  线端子进行连接的时候,定义wire ,采用assign赋值的方式即可完成!!!

 

 

 

 

view HDL instantiation Template

转载于:https://www.cnblogs.com/shaonianpi/p/9004856.html

  • 14
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值