Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.4k views
in Technique[技术] by (71.8m points)

list - Assignment one item from two?

I've been studying Verilog for a while and recently came across a kind of statement that I do not understand. Here is an example:

reg s_axis_data_tready_reg = 1'b0, s_axis_data_tready_next;

Looks like a concatenation but doesn't have the curly brackets surrounding the two items separated by a comma. This statement compiles with no error. What does this statement do?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

This statement declares 2 1-bit signals as type reg, and it also initializes one of them to 1'b0 (s_axis_data_tready_reg). The other (s_axis_data_tready_next) has the value x (unknown), which is the default value for a 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

This outputs:

reg=0, next=x

Since it does not use curly braces: {}, it is not a concatenation.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...