例化module时端口的类型
时间:10-02
整理:3721RD
点击:
module tb_XX;
reg A;
reg B;
wire C;
aa inst_aa(
.a(A),
.b(B),
.c(C)
);
其中
module aa(
input a,
input b,
output c
);
tb中例化module aa时三个引脚的类型有固定要求吗?记得好像没有要求,reg和wire都行,但是仿真报错。
将连接input port的变量定义为reg型,连接output port的变量定义为wire型,compile和simulation都通过了。
想知道大家有关注这个问题吗?
reg A;
reg B;
wire C;
aa inst_aa(
.a(A),
.b(B),
.c(C)
);
其中
module aa(
input a,
input b,
output c
);
tb中例化module aa时三个引脚的类型有固定要求吗?记得好像没有要求,reg和wire都行,但是仿真报错。
将连接input port的变量定义为reg型,连接output port的变量定义为wire型,compile和simulation都通过了。
想知道大家有关注这个问题吗?
在initial语句中需要使用reg型
楼上说的没错,注意你写的是用于simulation的。你的A和B如果是在initial语句中产生,或者always语句中产生,就定义为reg;C一定是wire。
tb就reg,反正是仿真,没啥影响
C为何必须是wire型?记得output port也可以接reg型
在module aa中,C是wire 或reg都行,根据逻辑而定
但在tb中,C作为观测对象,使用wire,因为module aa的输出C连接tb中的C,reg可以连wire,wire也可以连wire,reg怎么能连reg?
在tb和dut中 reg和wire是配套定义的。
正解,3Q
