真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SystemVerilog中的package怎么在設(shè)計中使用

這篇文章主要介紹“SystemVerilog中的package怎么在設(shè)計中使用”,在日常操作中,相信很多人在SystemVerilog中的package怎么在設(shè)計中使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SystemVerilog中的package怎么在設(shè)計中使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)服務(wù)項目包括芙蓉網(wǎng)站建設(shè)、芙蓉網(wǎng)站制作、芙蓉網(wǎng)頁制作以及芙蓉網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,芙蓉網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到芙蓉省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

SystemVerilog中的packages用于在不同module和interface之間共享parameters、types、tasks和functions。

packages是一個name space,其和top level在同一個層次。

在任何SystemVerilog/Verilog設(shè)計項目中,設(shè)計團隊通常都會共享一些parameters、types、tasks和functions。將這些通用結(jié)構(gòu)放入packages中,就可以在團隊中進行共享。

在packages中指定所有通用結(jié)構(gòu)后,需要先analyze package。然后單獨analyze和elaborate使用該packages中某些parameters、types、tasks和functions的模塊。

無需reanalyze 這個package,當(dāng)共享packages很大時,可以節(jié)省很多運行時間。

但是在使用packages時:

?不允許使用wirereg聲明。

?packages內(nèi)部聲明的tasks和functions需要是automatic的。

?sequence, property和 program將被忽略。

下面的例子中,有三個文件。test1.svtest2.sv文件要訪問pkg1 package中的聲明,使用“::”運算符解析這些type聲明(package_name :: type_name)和function聲明(package_name :: function_name)。

package pkg1;  typedef struct {int a;logic b;} my_struct;  typedef logic [127:0] my_T;  function automatic my_T subtract(my_T one, two);    return(one - two);  endfunction  function automatic my_struct complex_add(my_struct one, two);    complex_add.a = one.a + two.a;    complex_add.b = one.b + two.b;  endfunctionendpackage : pkg1

package.sv—包含兩個types(my_struct,my_T),和兩個functions(subtract
complex_add

module test1 (  input pkg1::my_T in1, in2,  input [127:0]test_vector,  output pkg1::my_T result,  output equal  );  assign result = pkg1::subtract(in1, in2);  assign equal = (in1 == test_vector);endmodule

test1.sv—使用my_T type和subtract function

module test2 (input pkg1::my_struct in1, in2,output pkg1::my_struct result2);assign result2 = pkg1::complex_add(in1, in2);endmodule

 test2.sv—使用my_struct type和complex_add function

我們首先分析package.sv文件以創(chuàng)建臨時pkg1.pvk文件。然后分別再analyze和elaborate test1和test2文件。

# Analyze the package file the first time, it creates pkg1.pvkfileanalyze -format sverilog package.sv

pkg1.pvk無法使用gvim/vim查看。

# Analyze/elaborate the first module, test1, that uses the packageanalyze -format sverilog test1.svelaborate test1# Analyze/elaborate the second module, test2, that uses the packageanalyze -format sverilog test2.svelaborate test2

同樣,也可以直接使用通配符導(dǎo)入package中的所有內(nèi)容,import p::*

到此,關(guān)于“SystemVerilog中的package怎么在設(shè)計中使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
標(biāo)題名稱:SystemVerilog中的package怎么在設(shè)計中使用
標(biāo)題鏈接:http://weahome.cn/article/gseosp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部