分配 nettype 结构的单个元素

Assign a single element of a nettype struct

由 typedef 结构定义的 Systemverilog 网络的通常赋值样式,例如

typedef struct {
real V;
real I;
real R;
}  SVAstruct;
// resolution function ommitted
nettype SVAstruct SVAnet with res_SVA;

inout SVAnet P;
assign P = '{Vout,0,0};

所以网络结构的所有元素的赋值是同时完成的。像

这样的作业
P.R = 100;

报错。有没有做个人作业的方法?

你不能那样做。一旦您创建了具有特定数据类型的网络类型,每个驱动程序都需要所有类型字段才能执行其解析功能。

想象一下,如果您想要一个信号来表示物理对象上的力。力是具有大小和方向的矢量。如果该信号上的每个驱动器都代表一个力矢量,则无法在不知道大小的情况下驱动一个方向。

您可以创建一个与网络类型相同的变量,然后您可以对该变量的字段进行单独赋值。

inout SVAnet P;
...
SVAstruct S
assign P = S;
...
S.R = 100;