uvm中關聯陣列的註冊

2021-10-05 07:10:37 字數 935 閱讀 1989

在編寫uvm驗證環境時,xaction中時常會使用到關聯陣列.為了方便copy、compare,會使用uvm_field_aa_*相關的巨集定義來完成註冊.

1.巨集定義簡介

聯合陣列有兩大識別標誌,一是索引的型別,二是儲存資料的型別.在巨集定義中第乙個出現的型別是儲存資料的型別,第二個是索引型別.例如uvm_field_aa_string_int,它宣告了儲存資料的型別是string,索引型別是int.

2.巨集定義

uvm_filed_aa_int_string uvm_field_aa_object_string

uvm_field_aa_int_int uvm_field_aa_int_int_unsigned uvm_field_aa_int_integer等等

3.使用說明

在註冊關聯陣列時,需要注意型別要匹配.

例如bit [2:0] m_data_as[bit [2:0]],用uvm_field_aa_int_int註冊便會報如下的錯誤.

用uvm_field_aa_int_int_unsigned註冊就ok.

例如int [2:0] m_data_as[bit [2:0]],用uvm_field_aa_int_int註冊會上報同樣的錯誤.

用uvm_field_aa_int_int_unsigned註冊就ok.

分析出現的錯誤,查閱資料知道在system verilog中bit型別是無符號整數,而int是有符號整數,型別不匹配的原因應該在這裡;個人認為第乙個型別用來儲存資料所以其型別的匹配要求不高,而第二個是索引匹配要求很高,型別不對會報錯.

1215 關聯陣列

一 陣列變數的限制 在前面講的陣列變數中,可以通過下標訪問其中的元素。例如,下列語句訪問陣列 array 的第三個元素 scalar array 2 雖然陣列很有用,但它們有乙個顯著缺陷,即很難記住哪個元素存貯的什麼內容。假如我們來寫乙個程式計算某檔案中首字母大寫的單詞出現的次數,用陣列來實現就比較...

9 3 關聯陣列

關聯陣列是bash 4.0新增的乙個特性。關聯陣列將值與索引連線 關聯 到一起,所以我們可以將元資料與實際資料關聯起來。使用這種方式可以將 家與他的樂器聯絡起來。關聯陣列必須以大寫的declare a命令來進行宣告。cat musicians.sh bin bash declare a beatle...

JS 關聯陣列

使用方式 var arr arr key1 value1 arr key2 value2 通常的陣列在填充時會隱式或者顯示指定陣列下標,但js中陣列可以以名字的形式為元素賦值,這就形成了關聯陣列,如 var arr new array arr china beijing,niaoling,hulan...