什么情况下我们必须在systemverilog中使用'net'数据类型?

What is the occasion when we have to use the 'net' data type in systemverilog?

据我所知,如今systemverilog中的'reg'类型可以用于assign语句。

按照旧的方式,assign 语句只使用 'net' 类型。

所以我想知道什么样的信号应该是systemverilog中的'net'类型?

更新1

从这里开始,http://www.testbench.in/IF_01_INTERFACE.html 我可以找到接口声明。

interface intf #(parameter BW = 8)(input clk); 
logic read, enable; 
logic [BW -1 :0] addr,data; 
endinterface :intf 

说到这里,我想知道为什么read和enable以及addr和data信号都是cleared logic数据类型?有什么理由吗?为什么不使用 reg 或 wire?

A net 在一个信号上有多个驱动器时使用,通常与双向端口结合使用,并且用于需要强度才能操作的开关级设计.有关详细信息,请参阅 http://go.mentor.com/wire-vs-reg

关于 net 的使用,Dave 的回答几乎涵盖了它。

来自 IEEE 标准 1800-2012,

The keyword reg does not always accurately describe user intent, as it could be perceived to imply a hardware register. The keyword logic is a more descriptive term. logic and reg denote the same type.

可以在下面的链接中找到有关逻辑使用的更多信息。

1) Morgans answer

2)