【问题标题】:What is ''_'' in Verilog?Verilog中的''_''是什么?
【发布时间】:2021-07-31 17:51:47
【问题描述】:

我正在查看这段代码 sn-p:

module FD2 (d, cp, cd, q, qn);

  input d, cp, cd;
  output q, qn;

  nand #1   nand_2 (n2, d_, cp_),
            nand_3 (n3, n1, n4),
            nand_7 (q, n5, qn);

// SJM  nand #0   nand_1 (n1, d, cp_, cd),
  nand   nand_1 (n1, d, cp_, cd),
            nand_4 (n4, n2, n3, cd),
            nand_5 (n5, n3, cp),
            nand_6 (n6, n4, cp),
            nand_8 (qn, n6, cd, q);

// SJM not  #0   inv_1 (cp_, cp),
  not   inv_1 (cp_, cp),
            inv_2 (d_, d);

endmodule

“cp_”是什么意思?

找不到答案,所以想在这里发帖。

【问题讨论】:

    标签: verilog system-verilog iverilog


    【解决方案1】:

    下划线“_”是任何标识符的合法字符,没有特殊含义。但是有些人将“_”字符称为“bar”,意思就像你写cp_一样

    __
    cp
    

    表示cp的否定

    【讨论】:

      【解决方案2】:

      在您的代码中,cp_ 是一个信号的名称,就像 cp 是另一个信号的名称一样。下划线在名称中没有特殊含义。这是一个简单标识符的例子。请参阅 IEEE Std 1800-2017,第 5.6 节标识符、关键字和系统名称

      标识符用于给对象一个唯一的名称,以便它可以 参考。标识符要么是简单标识符,要么是转义的 标识符(见 5.6.1)。一个简单的标识符应该是任何序列 字母、数字、美元符号 ($) 和下划线字符 (_)。

      不明确声明信号是合法的,但建议这样做是一种良好的做法。最好使用以下方式声明信号:

      wire cp_;
      

      其他未声明的信号也是如此,如d_n1

      另请参阅第 6.10 节 隐式声明

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        相关资源
        最近更新 更多