【问题标题】:Verilog wire is not assigned未分配 Verilog 线
【发布时间】:2018-12-24 21:08:23
【问题描述】:

我想知道,如果在 Verilog 代码中声明了一条线,但没有为其分配任何值,那么 Verilog 是否会将其值视为零?

例如,我看到一个代码:

wire start;

module_if  my_module_if(.clk(in_clk), .start(start));

我可以假设“开始”的值为零吗? 这是 Verilog 可以接受的风格吗?

【问题讨论】:

    标签: verilog variable-assignment


    【解决方案1】:

    没有分配的网络(包括电线)将被初始化为“z”(又名高阻抗)。

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

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

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

    【讨论】:

    • 谢谢。但是我正在阅读其他人的代码,我不再有权访问。而且,他完全按照我描述的方式使用,他正在启动一个基于“开始”的状态机。而且,我仔细看了看,没有其他地方“开始”被赋予任何价值。而且,这就是为什么我认为它应该是零。
    • 从您分享的代码中,我只能说父模块和“my_module_if”是通过“start”网络连接的。父级、'my_module_if' 或其他一些功能/任务甚至其他一些模块可以通过分层引用来驱动'start'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多