从两个项目中分配一个项目?
Assignment one item from two?
学习Verilog有段时间了,最近遇到一种说法,看不懂。这是一个例子:
reg s_axis_data_tready_reg = 1'b0, s_axis_data_tready_next;
看起来像是串联,但两个项目之间没有用逗号分隔的大括号。该语句编译没有错误。这个语句有什么作用?
该语句将2个1位信号声明为类型reg
,并将其中一个初始化为1'b0
(s_axis_data_tready_reg
)。另一个 (s_axis_data_tready_next
) 的值为 x
(未知),这是 reg
.
的默认值
module tb;
reg s_axis_data_tready_reg = 1'b0, s_axis_data_tready_next;
initial begin
#1 $display("reg=%b, next=%b", s_axis_data_tready_reg, s_axis_data_tready_next);
end
endmodule
这输出:
reg=0, next=x
因为没有使用大括号:{}
,所以不是连接。
你的单行也可以写成2行:
reg s_axis_data_tready_reg = 1'b0;
reg s_axis_data_tready_next;
学习Verilog有段时间了,最近遇到一种说法,看不懂。这是一个例子:
reg s_axis_data_tready_reg = 1'b0, s_axis_data_tready_next;
看起来像是串联,但两个项目之间没有用逗号分隔的大括号。该语句编译没有错误。这个语句有什么作用?
该语句将2个1位信号声明为类型reg
,并将其中一个初始化为1'b0
(s_axis_data_tready_reg
)。另一个 (s_axis_data_tready_next
) 的值为 x
(未知),这是 reg
.
module tb;
reg s_axis_data_tready_reg = 1'b0, s_axis_data_tready_next;
initial begin
#1 $display("reg=%b, next=%b", s_axis_data_tready_reg, s_axis_data_tready_next);
end
endmodule
这输出:
reg=0, next=x
因为没有使用大括号:{}
,所以不是连接。
你的单行也可以写成2行:
reg s_axis_data_tready_reg = 1'b0;
reg s_axis_data_tready_next;