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网上有许多产品团购,便宜有口碑
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-12
c3是reg型,你这个主函数是个testbench,子函数a,b,cin在testbench里面对应的测试信号是reg型,输出sum,cout是wire型,你的答案是错的,REG C1,C2,C3 ; WIRE C4,C5;
第2个回答  2011-05-05
你只要记住always里赋值用reg,assign里面赋值用wire追问

已经记住了,这道题还是没有解决

追答

你这个,Cin在FADD里算输入,不用写类型,但如果在Test里对C3赋值,那么就按上面说的来定类型,你这里C3和Cin是对应的,Cout是FADDD的输出,在FADD里按上面说的赋类型,在Test里面对应为C5,是wire类型,表示线连。
调用元件的输出都是wire,输入如果是整个系统的输入,就不用写类型,如果是自己编写的信号,根据上面always或assign来定类型。

第3个回答  2019-06-28
输入端口可以由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型的。

Verilog中的Reg和Wire
在Verilog编程中,reg和wire这两个概念常常引起初学者的疑惑。简单来说,reg和wire的主要区别在于它们在always块中的使用以及编译后的电路实现。官方定义中,reg可以理解为存储单元,它具有记忆功能,能保持上次的输入值,无需持续激励。相比之下,wire更像是物理连线,它需要通过assign指令来赋值,不能在al...

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

小白学习Verilog语法-reg和wire的区别
在学习Verilog语法的过程中,小白认识到reg和wire在编程中的重要区别。这两者在数字电路设计中扮演着传输与存储的角色,就像信号的流动与存储单元。wire通常用于组合逻辑电路,可以作为输入接收表达式的输出,或通过assign赋值。其声明格式为wire [n-1:0] signal_name;相比之下,reg型变量则更像触发器,适...

verilog中reg和wire类型的区别和用法
reg相当于存储单元,wire相当于物理连线 Verilog 中变量的物理数据分为线型和寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。变量的每一位可以是0,1,X,Z。其中x代表一个未被预置初始状态的变量或者是由于由两个或多个驱动装置试图将之设定为不同的值而引起的冲突型线型变量。z代表高阻...

wire和reg的区别
Verilog初学者最常见的问题:『什麼时候该用wire?什麼时候又该用reg?』Introduction 大体上来说,wire和reg都类似於C\/C++的变数,但若此变数要放在begin...end内,该变数就须使用reg,在begin...end之外,则使用wire。另外使用wire时,须搭配assign;reg则不必。input,ouput,inout预设值都是wire。

verilog HDL中wire和reg的区别
在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。根据触发条件的不同,过程赋值语句可以建模不同的硬件结构:如果这个条件是时钟的上升沿或...

Verilog 中定义信号为什么要区分 wire 和 reg 两种类型
这是一个历史遗留问题。在 Verilog 被 Cadence 买下之前(大约上世纪八九十年代的样子),Verilog 只是一个用来做仿真的 HDL,不可综合。在那个年代,仿真器看到 wire 和 reg 会区别处理(实际上至今也是这样)。不知道你有没有发现,reg 类型信号的跳变,是依靠输入和敏感列表的,而且在非阻塞赋值中...

在Verilog中对于一个变量,是选成wire型还是选成reg型,根据什么标准来选 ...
wire属于net型数据类型,相当于硬件电路中的各种物理连接,其特点是输出值紧跟输入值的变化而变化。例如,wire cout=cin; \/\/只要cin变化,cout就变化 reg属于variable型数据类型,必须放在过程语句中,通过过程赋值语句赋值;在过程块内被赋值的信号也必须定义成variable型。也就是说,要在always和initial中...

verilog有关wire与reg类型的一道题
简单:Cin是input,只能是Wire类型;Cout是output,可以是Wire类型,也可以说reg类型。C3是test内部连接到Cin上的信号,由于激励的加载,因而可以说Wire,也可以说reg类型。C5是test内部直接连接到Cout上的信号,只能是Wire类型。

verilog中的reg型变量,wire型变量初值是多少
reg型变量需要赋初值,否则会在reset前是X,具体值要看具体的设计,reg [7:0] a='h0;wire最好不要赋初值,赋值会和assign造成多驱动的问题,从而产生X,就是wire a=0;assign a=b;那么会在b=1的时候a的波形是X。若是后面不用assign赋值是没问题的(以上属于个人观点)...

相似回答