关于元件例化模块中连接到端口的变量类型使用问题

 问题导引:当我们需要在顶层模块中调用子模块时,需进行例化操作,即利用已经写好的module来生成一个模块供顶层模块调用(相当于黑盒子)。然而,对于黑盒子内部,显然我们知道黑盒子内部的输入引脚在定义时一定是wire型,而输出根据是否需要过程中赋值可定义为wire或reg型,当然再次重复这是在写黑盒子这个module时。然而,在顶层调用时,需将黑盒子的输入、输出引脚连接至顶层模块中去,这时在顶层模块中,传入到黑盒子的输入输出引脚的变量类型是怎样的呢?

 

BlackBox内部引脚类型
引脚号变量类型输入or输出
1wire输入
2wire输入
3wire输入
4wire/reg输出
5wire/reg输出
6wire/reg输出
顶层变量连接到例化元件
顶层连线顶层传入的变量的类型
.1(IN_S1)reg/wire
.2(IN_S2)reg/wire
.3(IN_S3)reg/wire
.4(OUT_S1)wire
.5(OUT_S2)wire
.6(OUT_S3)wire

上表直观的列举了传入到黑盒子(例化元件)的变量可取的类型,即对于黑盒子的输入信号,既可以是顶层中wire类型的信号线直接供给,也可以是顶层中存储器(reg)型变量传入。而对于黑盒子(例化元件)的输出而言,这个黑盒子已经对顶层中传入的信号进行处理并输出,想要应用的黑盒子的输出信号,需要直接用wire类型的变量(可以想象成线)将其引出供顶层模块使用,因此,对于黑盒子的输出信号,只能使用顶层模块中的wire变量连接。否则在编程会报错:

Error (10663): Verilog HDL Port Connection error at test.v(20): output or inout port "out" must be connected to a structural net expression

 到此,结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值