SystemVerilog packages提供了對于許多不同數據類型的封裝,包括變量、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數據類型“cStruct”和一個function “add.” 在module “top”中,我們使用package中的“cStruct”數據類型作為module的輸入輸出。
我們在引用package中成員使用了:
myPack::**
另外一種方式就是import了,import之后就無需在引用package中的成員時使用“myPack::”
審核編輯:湯梓紅
-
Verilog
+關注
關注
28文章
1363瀏覽量
111391 -
System
+關注
關注
0文章
165瀏覽量
37481 -
Package
+關注
關注
0文章
26瀏覽量
10717
原文標題:SystemVerilog中的package
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
SystemVerilog中的“const”類屬性
看一下SystemVerilog中package的使用方法與注意事項

請問Systemverilog中如何使用VHDL的package?
SystemVerilog的斷言手冊
SystemVerilog for Design(Secon
SystemVerilog中$cast的應用
SystemVerilog中的package和`include有什么不同?
SystemVerilog中的Semaphores
Systemverilog中的Driving Strength講解

評論