【问题标题】:Using wire and assign vs. wire in Verilog在 Verilog 中使用线和分配与线
【发布时间】:2017-12-02 11:49:32
【问题描述】:

有什么区别

wire A = B & C;

wire A;
assign A = B & C;

? 我不这么认为,但我见过使用后者的代码,我想知道这样做是否有原因。

【问题讨论】:

  • 它们是相同的
  • 相同。我会选择后者并通过声明拆分分配。
  • @Serge 我在您发表评论后删除了我的答案。我在综合中遇到的差异是针对SystemVerilog的logic,我搞混了。 :)
  • @ahmedus 对,“逻辑”在这种情况下表现为寄存器,与位和其他整数类型相同。

标签: verilog


【解决方案1】:

在您的示例中,它们在功能上是相同的。在电汇声明中添加延迟时存在细微差别。

wire #5 A = B & C;

wire A;
assign #5 A = B & C;

在第一种形式中,延迟被添加到所有其他网络驱动程序。您也可以使用 SDF 反向注释来修改连线延迟。

在第二种形式中,延迟只适用于那个连续赋值,不能使用SDF回注来修改延迟。

我的观察是大多数人使用 RTL 中的第二种形式来保持声明和功能分开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多