那测试文件里面的所有wire都是输出?有些wire我只想作为中间连线,不想给它输出来,我之前没写过测试文件,看了几个例子,都是只有一个测试模块的例子,发现reg类型的变量都是输入,wire类型的变量都是输出,并且好像已经没有input,output这类变量了。
追答测试文件的wire类是作为连线来使用的,比如你实例一个模块,它在自己的模块中(被测模块中)是作为输出端口的,可能是wire,也可能是reg型,但是在测试时,它相当于测试的输入,同理,被测模块的输入是测试模块的输出,所以是等价的
由于是测试,所以input、output当然没有了,甚至连端口信号也没有了,
你所看见的reg作为输入,因为它在本模块是输出信号,一般为寄存器的,持续赋值,如clk信号
多有麻烦,决定再加点分,另麻烦再讲解一下,我结合下面这个例子提问:
module t;
reg a, b, sel;
wire out;
mux2_m (out, a, b, sel);
initial begin a=0; b=1; sel=0;
#10 b=0;
#10 $stop;
end
endmodule
一个模块的情况,定义的所有变量都会被显示在波形图上,那么如果有两个以上模块,连接两个模块间的wire会被显示在仿真波形上吗?这样不是不合逻辑?
module t; //测试模块名
reg a, b, sel; //测试的激励输入,一般为reg型
wire out; //被测模块的结果输出
mux2_m (out, a, b, sel); //被测模块的例化,你这是位置对应,out应该是被测模块的输出的
initial begin a=0; b=1; sel=0; //给出初始激励值,这里必须为reg型,在initial块中
#10 b=0; //延迟10,将b赋为0
#10 $stop;//仿真结束
end
endmodule
你若想查看仿真结果是否正确,还得使用$display或$monitor,或者直接看波形图