verilog变量reg和wire问题

2024-12-02 03:23:06
推荐回答(4个)
回答1:

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

你的问题应该是主要讨论下wire型和reg型的应用区别吧
另外,团IDC网上有许多产品团购,便宜有口碑

回答2:

c3是reg型,你这个主函数是个testbench,子函数a,b,cin在testbench里面对应的测试信号是reg型,输出sum,cout是wire型,你的答案是错的,REG C1,C2,C3 ; WIRE C4,C5;

回答3:

你只要记住always里赋值用reg,assign里面赋值用wire

回答4:

输入端口可以由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型的。