Verilog:reg和wire的区别
关于wire
在Verilog中,wire
可以看作一个导线(或则任意位宽的总线),需要注意的几点是:
wire
可以用于将实例化时的输入输出端口连接到电路的其他地方wire
类型必须被其他东西驱动而不能用于储存其他数据wire
类型在always@
块中不能作为=
和<=
的左值wire
是assign
语句的左值唯一合法的类型wire
只能用于组合逻辑电路
关于reg
reg
和wire
比较类似,但是能够储存信息,类似寄存器,需要注意的几点是:
reg
可以在实例化模块时连接其输入reg
不可以再实例化模块时连接其输出reg
可以在声明模块时作为其输出reg
不可以在声明模块时作为其输入reg
类型时always@
块中作为=
,<=
左值的唯一合法类型reg
不能作为assign
语句的左值reg
类型可以创建寄存器,以用于类似于always@(posedge)
的块reg
可以描述组合逻辑也可以描述时序逻辑
reg
和wire
的共性
- 都可以作为实例化模块时的输入
- 都可以作为
always@
块中=
,<=
的右值以及assign
的右值