System verilog 一个变量如何决定它';s值,不带它';在systemverilog中初始化?

System verilog 一个变量如何决定它';s值,不带它';在systemverilog中初始化?,system-verilog,System Verilog,现在我正试图挖掘systemverilog,如下所示 denaliCdn_ahbTransaction burst1; task sendTransfers;   burst1= new;        burst1.Direction = DENALI_CDN_AHB_DIRECTION_WRITE; burst1.FirstAddress = 32'h4020;//16416 M3 and M0 to S1 burst1.Kind = DENALI_CDN_AHB_BURSTKI

现在我正试图挖掘systemverilog,如下所示

denaliCdn_ahbTransaction burst1;

task sendTransfers;
      
burst1= new;       
burst1.Direction = DENALI_CDN_AHB_DIRECTION_WRITE;
burst1.FirstAddress = 32'h4020;//16416 M3 and M0 to S1
burst1.Kind = DENALI_CDN_AHB_BURSTKIND_INCR4;
burst1.Size = DENALI_CDN_AHB_TRANSFERSIZE_HALFWORD;
burst1.Data = new [8];

foreach (burst1.Data[ii])
burst1.Data[ii] = ii;

void'(activeMaster1.transAdd(burst1,0));
....
endtask
特别是,从这里开始,在没有初始化的情况下,如何确定ii的值

foreach (burst1.Data[ii])
burst1.Data[ii] = ii;

如果变量没有在systemverilog中初始化,如何确定它的值?

对于您的问题,有一个一般答案和一个具体答案

一般的答案是,系统Verilog中的所有类型都初始化为特定值:

int    0
real   0.0
string ""
logic  1'bx
但是,您的问题的具体答案是,您具体标识的代码

foreach (burst1.Data[ii])
  burst1.Data[ii] = ii;
实际上是执行初始化,而不是依赖它。动态数组
burst1.data
由行中的8个元素构成

burst1.Data = new [8];
线路

foreach (burst1.Data[ii])
迭代该数组,循环8次,每个元素一次。变量
ii
取数组中每个元素的索引值,即0到7。线路

  burst1.Data[ii] = ii;

将数组的元素
ii
设置为值
ii
,初始化数组也是如此。

谢谢。那么,跟这个一样吗??对于(int ii=0;iiYes),它在本例中的作用完全相同。