在 Verilog 中我们什么时候需要 wand/wor?

When do we need wand/wor in Verilog?

Verilog 标准明确指出,wire 和 tri 之间没有功能差异。差异化是约定俗成的。线网用于由单个门或连续分配驱动的网络,而三网可用于多个驱动器驱动网络的情况 [$4.6.1]。鉴于这个事实,我有这些问题:

  1. 我们到底需要 tri 做什么?按照惯例,它应该在多个驱动程序驱动网络时使用。但是,如果多个驱动程序正在驱动一个网络,我们应该使用 triand/trior 进行解析,对吧?或者会不会出现这样的情况,多个驱动程序正在驱动一个网络,而我们不想使用 triand/trior 中的任何一个来进行解析,而是使用 tri 来代替?
  2. wand和wor有什么用?如果涉及多个驱动程序,按照惯例,我们应该使用 triand 和 trior。那么它们为什么存在呢?我们什么时候需要它们?

谢谢,

wiretri 关键字旨在记录用户的意图,即信号在某个时间点可能具有三态 Z 值。然而,Verilog 从未实施任何类型的检查来强制执行此用法。所以现在它们只是关键字同义词(与 reglogic 相同,是没有功能差异的同义词)。

Wired-or 或 Wired-and 逻辑是由某些晶体管技术创建的。 (参见 open-collector circuits