如何解决从两项中分配一项?
我一直在研究 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
因为它不使用花括号:{}
,所以它不是连接。
你的单行也可以写成两行:
reg s_axis_data_tready_reg = 1'b0;
reg s_axis_data_tready_next;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。