91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SystemVerilog中的package怎么在設計中使用

發布時間:2021-12-17 16:35:11 來源:億速云 閱讀:366 作者:iii 欄目:互聯網科技

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

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

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

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

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

無需reanalyze 這個package,當共享packages很大時,可以節省很多運行時間。

但是在使用packages時:

?不允許使用wirereg聲明。

?packages內部聲明的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_structmy_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文件以創建臨時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

同樣,也可以直接使用通配符導入package中的所有內容,import p::*

到此,關于“SystemVerilog中的package怎么在設計中使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉定区| 景德镇市| 苗栗市| 洛宁县| 嵊州市| 两当县| 蒙阴县| 明水县| 临潭县| 通化县| 万源市| 拜城县| 绍兴市| 远安县| 迁西县| 临邑县| 河南省| 南涧| 饶阳县| 丰县| 静乐县| 寿阳县| 安达市| 安平县| 平乡县| 轮台县| 民丰县| 东乌| 凌云县| 如皋市| 娱乐| 菏泽市| 湾仔区| 沅陵县| 抚顺县| 尼木县| 肇源县| 桂阳县| 凤山市| 克什克腾旗| 鄂伦春自治旗|