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)注
29文章
1367瀏覽量
112234 -
System
+關(guān)注
關(guān)注
0文章
166瀏覽量
37782 -
Package
+關(guān)注
關(guān)注
0文章
26瀏覽量
10891
原文標題:SystemVerilog中的package
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
SystemVerilog中的Virtual Methods
SystemVerilog中的“const”類屬性
看一下SystemVerilog中package的使用方法與注意事項

請問Systemverilog中如何使用VHDL的package?
SystemVerilog的斷言手冊
SystemVerilog for Design(Secon
SystemVerilog中$cast的應(yīng)用
SystemVerilog中可以嵌套的數(shù)據(jù)結(jié)構(gòu)
SystemVerilog中的package和`include有什么不同?
SystemVerilog中的Semaphores
Systemverilog中的Driving Strength講解

評論