能举个例子说明下么,怎么一个只能wire另一个两个都可以?

module FADD(A,B,Cin,Sum,Cout);
input A,B,Cin;
output Sum,Cout;
...
endmodule

module Test;
...
FADD M(C1,C2,C3,C4,C5);
...
endmodule

答案是Cin(wire) Cout(wire/reg) C3(wire/reg) C5(wire)

泛舟湖上清波郎朗
浏览 84回答 2
2回答

守着星空守着你

verilog里一般不声明输出类型的话 默认是wire型的如果你想在输出处寄存一下:比如使用always语句,则必须声明为reg类型wire是线网,就是相当于实际中的连接线,你想assign的话就是直接连接,就是用wire型,他的值是随时变化的。比如你想寄存一下,让他在时钟边沿才变化就需要reg类型了

一只斗牛犬

c3是reg型,你这个主函数是个testbench,子函数a,b,cin在testbench里面对应的测试信号是reg型,输出sum,cout是wire型,你的答案是错的,REG C1,C2,C3 ; WIRE C4,C5;
打开App,查看更多内容
随时随地看视频慕课网APP