verilog有关wire与reg类型的一道题

指出下面模块中Cin,Cout,C3,C5的类型

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)

不是太理解。。。求高人解释。。。

简单:
Cin是input,只能是Wire类型;
Cout是output,可以是Wire类型,也可以说reg类型。
C3是test内部连接到Cin上的信号,由于激励的加载,因而可以说Wire,也可以说reg类型。
C5是test内部直接连接到Cout上的信号,只能是Wire类型。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-15
wire:线性信号变量
reg为寄存器变量

input A,B,Cin; 可推出 Cin(wire)
output Sum,Cout; 可推出 Cout(wire/reg)

module FADD(A,B,Cin,Sum,Cout);调用如下:
c1->A,c2->b,c3->Cin,c4->sum,c5->count
FADD M(C1,C2,C3,C4,C5);
可推出:c3为input c5 为output
C3(wire) C5(wire)
又因为 为内部调用 所以c3可以为:reg变量
综上:

Cin(wire) Cout(wire/reg) C3(wire/reg) C5(wire)

也请其他高人指点下本回答被提问者采纳

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

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

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

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赋值是没问题的(以上属于个人观点)...

用verilog语言下总是出现这个问题……
reg ready,process_en ...assign process_en=~rd1;这个你定义了process_en是 reg类型,assign 的左边只能用wire类型,不能用reg类型

您好,刚开始接触verilog 请问,是不是reg型信号必须在always块中,而alway...
印象中always块内被赋值的只能是reg型信号。虽然在电平敏感情况下综合出来的器件大都不是触发器。这是verilog的一种语法规则,物理的触发器和程序中的reg有一定区别。reg型信号可以在程序中的任何地方被引用,不限于always块内。

请Verilog高手帮助!wire赋值问题
在实例化中,所有的端口都要求用wire型,跟module中的定义没关系。比如你这里的test模块,虽然模块中b定义的是reg型,但是实例化的时候,仍然要使用wire型,这是规定,不能改变。其实,一个module,就类似于一个小电路模块,在module中定义的,是内部的电路,你定义成reg或者wire都可以,视情况而定;而...

verilog答疑:从模块内部来讲,输出端口可以是线网或reg数据类型
reg类型的变量是需要触发来实现的,用于过程块(always)中,模块内部的输出还是在模块内部,因此reg可以作模块内部的输出。wire就相当于一根线,模块输出到外部当然需要线来连接

【急急急】Verilog的一些基本问题
1,是的,input,output都是默认为wire的。对于output,如果想声明为reg必须单独声明,想用wire的话是可以不声明wire的。2,一个模块使用另一个模块输入或输出信号,可以直接实例化,不用写include。但如果被使用的信号不是输入或输出而是内部信号的话,就要用层次调用 比如你有一个TB模块,下面有A,B两...

verilog中如何将wire类型的变量A 与reg类型的变量B进行比较?
先在always语句定义:reg A 之后直接再语句里面比较:A与B的大小

相似回答