色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

參數化Class中的靜態屬性

芯片驗證工程師 ? 來源:片驗證工程師 ? 作者:片驗證工程師 ? 2022-12-02 09:17 ? 次閱讀

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

也就是在仿真時刻0之前就已經完成了靜態屬性的內存分配。

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

 // 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中,我們都聲明了靜態屬性。在訪問靜態屬性“static_wo_p”時沒有問題,而在訪問靜態屬性
“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);

下面這個例子更能夠展示參數化類中的靜態屬性非參數類中的靜態屬性的區別:

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中的參數T分別被覆蓋成byte、byte、int、bit[2:0]、real,所以只有S1(s_byte)和S2(s_byte)中的靜態屬性counter彼此共享。

參數類的擴展類

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);

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

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

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

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

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

    關注

    0

    文章

    23

    瀏覽量

    8559
  • static
    +關注

    關注

    0

    文章

    33

    瀏覽量

    10396

原文標題:參數化Class中的靜態屬性

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

收藏 人收藏

    評論

    相關推薦

    如何使SOLIDWORKS參數設計軟件提升效率

    SOLIDWORKS參數設計軟件-SolidKits.AutoWorks可實現智能選型、自動修改產品屬性、產品參數、產品狀態、圖紙更新、
    的頭像 發表于 12-19 15:53 ?375次閱讀

    如何使用ADC_PRO來測試ADC的INL與DNL等靜態特性參數

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

    請問靜態變量如何放到flash

    比如有有很多的靜態變量,如何防到flash。 我用了const修飾,編譯出來,但是還是在rodate段,該段不是在80k的ram嗎?
    發表于 07-12 09:26

    FPGA設計,對SPI進行參數結構設計

    今天給大俠帶來FPGA設計,對SPI進行參數結構設計,話不多說,上貨。 為了避免每次SPI驅動重寫,直接參數,盡量一勞永逸。S
    發表于 05-07 16:09

    如何設置靜態IP代理

    靜態IP
    jf_60146132
    發布于 :2024年04月29日 07:46:31

    FPGA設計,對SPI進行參數結構設計

    今天給大俠帶來FPGA設計,對SPI進行參數結構設計,話不多說,上貨。 為了避免每次SPI驅動重寫,直接參數,盡量一勞永逸。S
    發表于 04-11 18:29

    如何調整S7-1500S7-GRAPH FB的保持性屬性

    FB 塊屬性“優化的塊訪問”默認勾選并且顯示灰色無法操作,如圖 2 所示。對于需要從CPU停止時所處步號繼續運行的應用場合,必須設置保持性屬性為“保持”。
    發表于 04-03 09:17 ?827次閱讀
    如何調整S7-1500<b class='flag-5'>中</b>S7-GRAPH FB的保持性<b class='flag-5'>屬性</b>

    arcgis圖層字段怎么批量輸入屬性

    對于ArcGIS圖層字段的批量輸入屬性,可以通過以下步驟完成: 打開ArcMap軟件,并加載需要編輯屬性的圖層。 在ArcMap的主菜單,選擇“編輯(Edit)”選項,然后選擇“開始編輯
    的頭像 發表于 02-25 14:15 ?5158次閱讀

    arcgis如何在屬性表中選擇多個屬性

    在ArcGIS,你可以通過多種方式來選擇屬性的多個屬性。下面是一些常用的方法: 方法一:使用Select by Attributes工具 在ArcGIS的
    的頭像 發表于 02-25 11:10 ?1.5w次閱讀

    arcgis按屬性選擇not(t)怎么用

    ArcGIS是一款強大的地理信息系統軟件,用于處理和分析地理數據。通過屬性選擇工具,用戶可以基于數據的屬性條件來選擇特定的要素。 在ArcGIS屬性選擇的語法是基于結構
    的頭像 發表于 02-25 11:08 ?4322次閱讀

    arcgis如何關聯兩個屬性

    在ArcGIS,關聯兩個屬性表是一個重要的操作,可以通過此操作將兩個表的數據關聯起來,以便進行分析和查詢。下面是詳細介紹如何在ArcGIS實現
    的頭像 發表于 02-25 11:01 ?4416次閱讀

    mapgis如何進行屬性連接

    MapGIS是一種強大的GIS(地理信息系統)軟件,它提供了許多功能來處理和分析空間數據。在MapGIS屬性連接是一種非常有用的功能,它可以將兩個或多個地圖層屬性信息進行關聯和
    的頭像 發表于 02-25 10:59 ?1738次閱讀

    mapgis區屬性參數

    MapGIS是一種基于地圖信息系統的軟件平臺,它提供了豐富的地理空間數據處理和空間數據分析功能,可以幫助用戶進行空間數據的可視、查詢、分析和決策。其中一項重要的功能就是區屬性參數,也稱為區域
    的頭像 發表于 02-25 10:56 ?1144次閱讀

    mapgis如何給區屬性賦值

    地進行數據分析和可視。 在MapGIS給區屬性賦值有多種方法,下面將詳細介紹其中的幾種常用方法。 1.手動賦值 手動賦值是最直接和簡單的方法。首先,在MapGIS打開需要進行
    的頭像 發表于 02-23 17:49 ?2383次閱讀

    proteus屬性賦值工具怎么用

    Proteus是一種電路設計和仿真軟件,在進行電路設計和仿真時,屬性賦值是非常重要的步驟。屬性賦值工具可以幫助用戶快速有效地配置電路元件的屬性,從而實現電路的準確仿真。下面是關于Proteus
    的頭像 發表于 02-23 17:19 ?4797次閱讀
    主站蜘蛛池模板: jlzzzjizzzjlzzz亚洲| 国产精品无码亚洲区艳妇| 亚洲AV福利天堂一区二区三| 性白俄罗斯高清xxxxx| 最美女人体内射精一区二区| CHINA篮球体育飞机2023| 国产极品白嫩超清在线观看| 久久才是精品亚洲国产| 久久婷婷丁香五月色综合啪免费| 强壮的公次次弄得我高潮韩国电影| 色多多深夜福利免费观看| 亚洲视频在线观看不卡| 99久酒店在线精品2019| 国产三区在线成人AV| 另类重口bdsm日本tv| 色女孩综合| 一个人免费视频在线观看高清版 | 内射一区二区精品视频在线观看| 五月丁香婷姐色| my pico未删减在线观看| 秋霞电影网视频一区二区三区| www.绿巨人| 玩弄放荡人妻一区二区三区| a在线视频免费观看| 三级黄色a| 狠狠色色综合站| 神电影院午夜dy888我不卡| 99福利影院| 久久免费观看视频| 99pao成人国产永久免费视频| 欧美性类s0x| 折磨比基尼美女挠肚子| 激情床戏揉胸吃胸视频| 小小水蜜桃免费影院| 久爱精品亚洲电影午夜| 性xxx免费| 久久免费精品国产72精品剧情| 99re久久热最新地址一| 少妇第一次交换| 久久亚洲伊人| 被老头下药玩好爽|