sv佇列和動態陣列的區別 sv中的陣列方法

2021-10-13 06:25:38 字數 955 閱讀 1221

陣列型別:

定寬陣列:

⾮非合併陣列:

bit[7:0] un_packed [4];

⾼高位沒⽤用。

合併陣列:

bit [3:0] [7:0] packed;

組成⼀乙個

32bits

。必須是

[msb:lsb]

的形式。

後⾯面跟陣列的話,只能跟合併陣列。

動態陣列:

int dyn;

new分配空間。

基礎型別相同時,可跟定寬陣列相互賦值。

佇列列:

不不需要

new構造。

關聯陣列:

bit[63:0] a_arry[bit[63:0]];

適⽤用於超⼤大容量量的儲存,只為實際寫⼊入的元素分配空間。

元素是係數分布的,

for迴圈不不太適合,適合⽤用

foreach

可⽤用字串串作為索引。

陣列操作:

$size()

返回陣列的寬度。

陣列整個賦值。

陣列⾥裡里的所有元素是否相等。

array.delete()

,刪除所有元素(動態)。

exits();

檢查元素是否存在

關聯佇列列操作:

q.insert(i, j);

在q[i]

之後插⼊入jj

可以是個佇列列。

q.delete(i);

刪除q[i]

q.delete();

刪除整個佇列列。

q = {};

刪除整個佇列列。

q.push_front(), q.push_back();在q

最前或最後插⼊入。

q.pop_front(), q.pop_back();在q

最前或最後彈出,彈出之後元素消失了了。

SV 中巨集的使用

在sv中,養成使用巨集的習慣可以大大提高code 的可閱讀性,讓我們從簡單重複的工作中脫離出來,聚焦技術方法本身或者硬體的理解上,可以有效的提高我們的驗證效率。在我們驗證的過程或多或少的會遇到在tb test中使用巨集的方法,當然我們是看的懂的,但是我們一定要思考這個tb test為什麼要這麼寫,有...

SV中的隨機化

sv搭建testbench的關鍵概念 crt constraint random test 測試集的隨機化。由於物件class由資料和操作組成,所以對資料的隨機化一般放在乙個class內。對環境或環境的配置也可以反映在配置引數的隨機化上 乙個constraint包括兩部分 rand randc變數宣...

subversion的編譯安裝和配置(SVN)

1.編譯安裝 configure prefix usr local svn without berkeley db prefix指定安裝的目錄,without berkeley db表明不使用berkeley資料庫 在這一步有可能不成功,是因為有一些依賴的軟體沒裝,具體見下面 遇到的問題 make ...