1
我有一個關聯數組:隨機化在系統的Verilog
rand uvm_reg_field array_assoc[string];
陣列包含UVM寄存器字段的手柄,用於在DUT中的寄存器,並且由一個字符串索引(字符串是該字段的名稱)。 假設我有2個名稱爲「reg_field_1」和「reg_field_2」的註冊字段。
如上所述,
array_assoc["reg_field_1"]= handle of field 1;
array_assoc["reg_field_2"]= handle of field 2;
我需要隨機化僅其中的一個字段,因此,我選擇性地打開rand_mode關閉中的一個字段,說 「reg_field_1」:
array_assoc["reg_field_1"].rand_mode(0);
現在,如果我隨機化關聯數組,兩個寄存器字段都隨機化。
什麼甚至更令人驚訝的是,如果我聲明一個正常陣列具有整數索引,使得:
rand uvm_reg_field array_normal[2];
array_normal[0]= handle of field 1;
array_normal[1]= handle of field 2;
,然後字段1轉動rand_mode的:
array_normal[0].rand_mode(0);
它工作正常,字段1沒有隨機化。
的問題是:爲什麼寄存器字段「reg_field_1」獲得,即使其rand_mode已關聯數組的情況下被設置爲0隨機?