未分配Verilog wire

未分配Verilog wire,verilog,variable-assignment,Verilog,Variable Assignment,我想知道,如果一个wire在Verilog代码中声明,但它没有被赋值,Verilog是否将其值视为零 例如,我看到一个代码,其中: wire start; module_if my_module_if(.clk(in_clk), .start(start)); 我可以假设“start”的值为零吗? 这是Verilog可以接受的风格吗 未分配的网络(包括导线)将初始化为“z”(也称为高阻抗) 但是,如果您试图使用“start”作为某种变量或状态,那么您可能应该将其声明为“reg”或“logi

我想知道,如果一个wire在Verilog代码中声明,但它没有被赋值,Verilog是否将其值视为零

例如,我看到一个代码,其中:

wire start;

module_if  my_module_if(.clk(in_clk), .start(start));
我可以假设“start”的值为零吗? 这是Verilog可以接受的风格吗

未分配的网络(包括导线)将初始化为“z”(也称为高阻抗)

但是,如果您试图使用“start”作为某种变量或状态,那么您可能应该将其声明为“reg”或“logic”(系统Verilog),而不是“wire”(通常用于互连)

就风格而言,对于您和代码读者来说,明确说明逻辑的初始化可能不太容易出错。例如

logic start;
initial begin
  start = 1'b0;
end

谢谢但我正在读别人的代码,我再也无法访问他们了。而且,他使用的正是我描述的方式,他正在启动一个基于“启动”的状态机。而且,我仔细看了看,没有其他地方的“起点”有任何价值。这就是为什么我认为它应该是零。从您共享的代码中,我能告诉您的是,父模块和“我的模块如果”通过“启动”网络连接。父级“my_module_if”或某些其他功能/任务,甚至某些其他模块可以通过分层引用驱动“start”。