SystemVerilog packages提供了對(duì)于許多不同數(shù)據(jù)類型的封裝,包括變量、task、function、assertion等等,以至于可以在多個(gè)module中共享。
簡(jiǎn)單來(lái)說(shuō),package就是一個(gè)命名空間。
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
在上面的例子中,我們聲明了一個(gè)package “myPack” ,其中聲明了一個(gè)struct數(shù)據(jù)類型“cStruct”和一個(gè)function “add.” 在module “top”中,我們使用package中的“cStruct”數(shù)據(jù)類型作為module的輸入輸出。
我們?cè)谝胮ackage中成員使用了:
myPack::**
另外一種方式就是import了,import之后就無(wú)需在引用package中的成員時(shí)使用“myPack::”
審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110074 -
System
+關(guān)注
關(guān)注
0文章
165瀏覽量
36928 -
Package
+關(guān)注
關(guān)注
0文章
26瀏覽量
10485
原文標(biāo)題:SystemVerilog中的package
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論