从两个项目中分配一个项目?

Assignment one item from two?

学习Verilog有段时间了,最​​近遇到一种说法,看不懂。这是一个例子:

reg s_axis_data_tready_reg = 1'b0, s_axis_data_tready_next;

看起来像是串联,但两个项目之间没有用逗号分隔的大括号。该语句编译没有错误。这个语句有什么作用?

该语句将2个1位信号声明为类型reg,并将其中一个初始化为1'b0s_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;