我想知道如果在Verilog代码中声明了一条线,但是没有赋予任何值,Verilog会将其值视为ZERO吗?
例如,我看到一个代码:
wire start;
module_if my_module_if(.clk(in_clk), .start(start));
我可以假设" start"的值会是零吗? 这是Verilog可接受的风格吗?
答案 0 :(得分:1)
没有任务的网(包括电线)将被初始化为'z'(又名高阻抗)。
但是如果你试图将“start”用作某种变量或状态,那么你应该将它声明为“reg”或“logic”(System-Verilog)而不是“wire”(它往往会被使用)更多用于互连)。
样式方面,对于您和代码的读者来说,对于逻辑的初始化来说,它可能不那么容易出错。例如......
logic start;
initial begin
start = 1'b0;
end