0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

參數(shù)化Class中的靜態(tài)屬性

芯片驗證工程師 ? 來源:片驗證工程師 ? 作者:片驗證工程師 ? 2022-12-02 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

static屬性一般是在編譯的時候就已經(jīng)分配了內(nèi)存,并被這個類的所有實例共享,

也就是在仿真時刻0之前就已經(jīng)完成了靜態(tài)屬性的內(nèi)存分配。

但是,參數(shù)化類中的靜態(tài)屬性可能有所區(qū)別。參數(shù)化類中的靜態(tài)屬性(參數(shù)化)是在參數(shù)初始化的時候才會分配。

 // Class with parameters
 class with_param #(type T = int);
 static T static_with_p;
 endclass
 
 // Class without Parameters
 class without_param;
 static int static_wo_p;
 endclass
 
 module top;
 initial begin
 $display("static_wo_p = %0d", without_param :: 
static_wo_p);
 $display("static_with_p = %0d", with_param :: 
static_with_p);
 end
 endmodule: top

在上面的兩個class中,一個包含parameter (with_param),還有一個不包含parameter(without_param).

在各自class中,我們都聲明了靜態(tài)屬性。在訪問靜態(tài)屬性“static_wo_p”時沒有問題,而在訪問靜態(tài)屬性
“static_with_p”時,編譯器會報錯(Error或者Warning):

Warning-[PCSRMIO] Class scope used outside of class
testbench.sv, 59
"with_param::static_with_p"
An unspecialized class scope '::' reference was seen.  To access
a static member of the default specialization outside the class
'with_param', use 'with_param#( )::' instead. This will be an
error in a future release.

需要修改成下面這樣的寫法才能編譯通過。

$display("static_with_p = %0d", with_param # ( ) :: static_with_p);

下面這個例子更能夠展示參數(shù)化類中的靜態(tài)屬性非參數(shù)類中的靜態(tài)屬性的區(qū)別:

class with_param #(type T = int);
static T counter = 2;
function new;
counter++;
endfunction: new
endclass: with_param


class with_param_extend extends with_param #(real);
endclass: with_param_extend


typedef with_param #(byte) s_byte;
s_byte S1 = new( );
s_byte S2 = new( );
with_param S3 = new( );
with_param #(bit[2:0]) S4 = new( );
with_param_extend S5 = new( );
initial begin
$display ("Counter value of S1 instance = %0d", with_param 
#(byte)::counter);
$display ("Counter value of S2 instance = %0d", s_byte:: 
counter);
$display ("Counter value of S3 instance = %0d", with_param 
#()::counter);
$display ("Counter value of S4 instance = %0d", with_param 
#(bit[2:0])::counter);


$ d i s p l a y ( " C o u n t e r 
value of S5 instance =%0d",with_param_extend::counter);
end

仿真log:

Counter value of S1 instance = 4
Counter value of S2 instance = 4
Counter value of S3 instance = 3
Counter value of S4 instance = 3
Counter value of S5 instance = 3.000000
 V C S S i m u l a t i o n R e p o r t

上面的例子中S1、S2、S3、S4、S5中的參數(shù)T分別被覆蓋成byte、byte、int、bit[2:0]、real,所以只有S1(s_byte)和S2(s_byte)中的靜態(tài)屬性counter彼此共享。

參數(shù)類的擴展類

class class1 #(type T = int);
 ….
endclass
 
class class2 #(type P = real) extends class1;


class class3 #(type P = real) extends class1 #(integer);


class class4 #(type P = real) extends class1 #(P);

上面是一個參數(shù)化類的擴展類示例,class1是一個參數(shù)化類,參數(shù)T默認為"int"。

class2增加了一個參數(shù)P,此時參數(shù)T為默認的"int"

class3增加了一個參數(shù)P,此時參數(shù)T覆蓋成"integer"

class4增加了一個參數(shù)P,此時參數(shù)T也覆蓋成為P

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 屬性
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    8725
  • static
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    10710

原文標題:參數(shù)化Class中的靜態(tài)屬性

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    動態(tài)BGP與靜態(tài)BGP的區(qū)別?

    BGP(邊界網(wǎng)關(guān)協(xié)議,Border Gateway Protocol) 是互聯(lián)網(wǎng)中用于自治系統(tǒng)(AS)之間路由信息交換的核心協(xié)議。在實際部署,BGP 可分為靜態(tài) BGP和動態(tài) BGP兩種方式,二者
    發(fā)表于 06-24 06:57

    詳解ADC電路的靜態(tài)仿真和動態(tài)仿真

    ADC電路主要存在靜態(tài)仿真和動態(tài)仿真兩類仿真,針對兩種不同的仿真,我們存在不同的輸入信號和不同的數(shù)據(jù)采樣,因此靜態(tài)仿真和動態(tài)仿真是完全不同的兩個概念,所以設(shè)置的參數(shù)不同。
    的頭像 發(fā)表于 06-05 10:19 ?781次閱讀
    詳解ADC電路的<b class='flag-5'>靜態(tài)</b>仿真和動態(tài)仿真

    功率器件靜態(tài)參數(shù)有哪些?怎樣去測量?用什么設(shè)備更好?

    功率器件靜態(tài)參數(shù)分類與解析 功率器件的靜態(tài)參數(shù)反映了其在穩(wěn)態(tài)下的基本電氣和熱特性,是評估器件性能與可靠性的核心指標。以下是主要分類及具體參數(shù)
    的頭像 發(fā)表于 05-19 10:31 ?186次閱讀
    功率器件<b class='flag-5'>靜態(tài)</b><b class='flag-5'>參數(shù)</b>有哪些?怎樣去測量?用什么設(shè)備更好?

    IGBT的靜態(tài)參數(shù)有哪些?怎樣去精確測量這些參數(shù)呢?

    IGBT靜態(tài)參數(shù)是評估其正常工作狀態(tài)下電學(xué)特性的關(guān)鍵指標,主要包含以下核心參數(shù)及定義: 一、基本靜態(tài)參數(shù) ? 柵極-發(fā)射極閾值電壓(VGE(
    的頭像 發(fā)表于 05-16 14:28 ?544次閱讀
    IGBT的<b class='flag-5'>靜態(tài)</b><b class='flag-5'>參數(shù)</b>有哪些?怎樣去精確測量這些<b class='flag-5'>參數(shù)</b>呢?

    集成電路設(shè)計靜態(tài)時序分析介紹

    本文介紹了集成電路設(shè)計靜態(tài)時序分析(Static Timing Analysis,STA)的基本原理、概念和作用,并分析了其優(yōu)勢和局限性。 ? 靜態(tài)時序分析(Static Timing
    的頭像 發(fā)表于 02-19 09:46 ?614次閱讀

    【ELF 2學(xué)習板試用】05 ASoC的machine class

    codec和platform分別對各自的設(shè)備構(gòu)成和驅(qū)動進行描述,在ASoC,需要將兩者結(jié)合起來構(gòu)成音頻設(shè)備,machine class實現(xiàn)對如何將codec和platform結(jié)合構(gòu)成音頻設(shè)備進行
    發(fā)表于 02-18 16:29

    【ELF 2學(xué)習板試用】04 ASoCplatform class

    snd_soc_dai_driver。前者主要管理PCM和DMA配置、后者則用于DAI的參數(shù)配置。 1.platform class的snd_soc_component_driver 在
    發(fā)表于 02-18 16:27

    深入探索GCC的attribute屬性

    如果經(jīng)??碙inux源碼,一定會見過 attribute 屬性,他在 Linux 里面出現(xiàn)的很多。 attribute 是 gcc 的擴展功能,它不屬于標準C語言。 使用 attribute 可以
    的頭像 發(fā)表于 02-13 10:05 ?410次閱讀

    Chart FX-使用API傳輸數(shù)據(jù) 使用Value屬性傳輸數(shù)據(jù)

    有時,向 Chart FX 傳輸數(shù)值數(shù)據(jù)最簡單方便的方法就是使用 Value 屬性。通過 Value 屬性,您可以為圖表特定series的某一point設(shè)置數(shù)值。 Value
    的頭像 發(fā)表于 01-09 16:30 ?399次閱讀
    Chart FX-使用API傳輸數(shù)據(jù) 使用Value<b class='flag-5'>屬性</b>傳輸數(shù)據(jù)

    如何使SOLIDWORKS參數(shù)設(shè)計軟件提升效率

    SOLIDWORKS參數(shù)設(shè)計軟件-SolidKits.AutoWorks可實現(xiàn)智能選型、自動修改產(chǎn)品屬性、產(chǎn)品參數(shù)、產(chǎn)品狀態(tài)、圖紙更新、
    的頭像 發(fā)表于 12-19 15:53 ?988次閱讀

    如何使用ADC_PRO來測試ADC的INL與DNL等靜態(tài)特性參數(shù)?

    使用ADC-PRO來評估ADC的性能,動態(tài)特性參數(shù)已可以通過MultiFFT來計算,但靜態(tài)特性參數(shù)似乎無法計算,MultiHistogram似乎只能給出與噪聲有關(guān)的參數(shù),INL與DN
    發(fā)表于 12-10 06:29

    傳感器的動態(tài)特性和靜態(tài)特性參數(shù)介紹

    傳感器的特性可以分為靜態(tài)特性和動態(tài)特性兩大類,這兩類特性分別描述了傳感器在不同輸入條件下的輸出響應(yīng)特點。下面將詳細介紹這兩類特性的主要參數(shù)。
    的頭像 發(fā)表于 09-29 16:24 ?5789次閱讀

    電力場效應(yīng)管的靜態(tài)特性和主要參數(shù)

    電力場效應(yīng)管(Power Field-Effect Transistor,簡稱Power FET),特別是其中的絕緣柵型場效應(yīng)管(MOSFET),在電力電子領(lǐng)域具有重要地位。它們的靜態(tài)特性和主要參數(shù)
    的頭像 發(fā)表于 09-13 14:20 ?1585次閱讀

    Bourns 全新 Riedon? 模塊保險絲座 符合 Class-T 和 ANL 要求

    發(fā)布符合 Class-T 和 ANL 要求的 Riedon? 模塊保險絲座。全新設(shè)備可滿足廣泛應(yīng)用的保護需求,包括工業(yè)電力系統(tǒng)、電池充電器、太陽能逆變器和電池儲能系統(tǒng)。 日前,Bourns 已推出四款保險絲座產(chǎn)品類別可供選擇。這些產(chǎn)品包括 FB 和 CFB 系列,是
    發(fā)表于 09-10 11:25 ?522次閱讀
    Bourns 全新 Riedon? 模塊<b class='flag-5'>化</b>保險絲座 符合 <b class='flag-5'>Class</b>-T 和 ANL 要求

    靜態(tài)鏈接和動態(tài)鏈接

    一、靜態(tài)鏈接靜態(tài)鏈接通過靜態(tài)庫進行鏈接,生成的目標程序包含運行需要的所有庫,可以直接運行,不過就是文件比較大。靜態(tài)庫是匯編產(chǎn)生的.o文件的
    發(fā)表于 08-27 10:20

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品