verilog变量reg和wire问题

verilog变量reg和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)
能举个例子说明下么,百度知道那个说得不清楚c3是对应Cin的,怎么一个只能wire另一个两个都可以
verilog里一般不声明输出类清纤型的话 默认是wire型的
如果你想在输出处寄存一下:比如使用always语句,则必须声明为reg类型
wire是线网,就是相当于实际中的连接线,你想assign的话就是直接连接,就是用wire型,他的值是随时变化的。比如你想寄存一下,让他纯凳在时钟边沿才变化就需要reg类型了

你的问题应该是主要讨论下wire型和reg型的答裤仿应用区别吧
另外,团IDC网上有许多产品团购,便宜有口碑
c3是顷亮reg型,你这个主函数是个testbench,子函数a,b,cin在没握testbench里面对应的测试雀察宽信号是reg型,输出sum,cout是wire型,你的答案是错的,REG C1,C2,C3 ; WIRE C4,C5;
你只要记住always里赋值用reg,assign里面赋值用wire
输入端口可以由wire/reg驱动,但输入端口只能是绝氏wire;输出端口可以使wire/reg类型,输出端口只能驱动wire。
1.A,B,Cin是输入,只能是wire型的。
2.Sum、Cout是输出。如果这个加法器,里面用门电路搭建,用assign直接写逻辑函数,那么输出就是wire型的。如果这是个用always@(仔和A or B orCin)写的,其实就是只有输入变化输出才重新计算,那么就是说输入都不变念宏盯化的时候是要保持之前的值的,所以需要用reg型。
3. 输入端口A,B,Cin只能是wire型,但是在电路中他们是被前端其他信号C1,C2,C3驱动的。那么是可以由wire或者reg信号驱动的。举个例子,如果Cin前面连接个开关(C3),就是wire型的,如果他连接的是一个寄存器的输出(例如加法器输出为reg时的级联),那就是reg型的。
← 上一篇: 下一篇: →