SystemVerilog packages提供了對于許多不同數(shù)據(jù)類型的封裝,包括變量、task、function、assertion等等,以至于可以在多個module中共享。
簡單來說,package就是一個命名空間。
package myPack; typedef struct { int i; int j; } cStruct; function cStruct add (cStruct a , b); add.i = a.i + b.i; add.j = a.j + b.j; endfunction endpackage module top ( //referencing package item 'cStruct' of myPack output myPack::cStruct cout, input myPack::cStruct a , b ); //referencing 'add' function of myPack assign cout = myPack::add(a , b); endmodule
在上面的例子中,我們聲明了一個package “myPack” ,其中聲明了一個struct數(shù)據(jù)類型“cStruct”和一個function “add.” 在module “top”中,我們使用package中的“cStruct”數(shù)據(jù)類型作為module的輸入輸出。
我們在引用package中成員使用了:
myPack::**
另外一種方式就是import了,import之后就無需在引用package中的成員時使用“myPack::”
審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110101 -
System
+關(guān)注
關(guān)注
0文章
165瀏覽量
36947 -
Package
+關(guān)注
關(guān)注
0文章
26瀏覽量
10497
原文標題:SystemVerilog中的package
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論