求大神!!在verilog语言中线网类型与寄存器类型的区别!!
发布网友
发布时间:2022-04-24 06:41
我来回答
共2个回答
热心网友
时间:2022-06-17 02:16
线网类型wire 只代表连接线,通常用来传递信号,不会保持值;
寄存器类型reg 通常代表锁存器、寄存器,可以保存传递的值。
如:
wire data_o;
reg data_r;
always @ (posedge clk or negedge rst)
if (!rst)
data_r <= 1'b0;
else
data_r <= data_i;
assign data_o = data_r;
data_o是线网类型,作为传递信号
data_r为寄存器类型,它除了在复位信号rst变化会清零以外,只有在时钟上升沿才会变化一次,其他时间都是保存上一个值。
热心网友
时间:2022-06-17 02:17
楼上回答部分合理。
由wire声明的信号的确是只代表连接线,不会保持值。所以赋值的时候叫连续赋值,用assign完成。
但是由reg声明的信号却有两种情况,一种是真正的寄存器,另一种只是声明成reg实际也是不能保持值的。
简单地说,在always块里面:1.如果敏感列表是时钟,则reg所声明的是真正的寄存器;
2.如果敏感列表是信号,则reg所声明的只是线网型信号。