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

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

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

3天內不再提示

Systemverilog里class類型的記錄

冬至子 ? 來源:CSDN ? 作者:谷公子 ? 2023-05-24 14:29 ? 次閱讀

1. class內容

class里面包含data和對data進行操作的subroutines(functions and tasks)。class的data稱為class properties,subroutines稱為methods。兩者都是class的members

class相當于是定義了一個data type。object是該class的instance。Object handle是持有該class type的變量。

class里的method的lifetime必須為automatic,如果定義成static是非法的(這里不是指static task,而是task內static的variables或arguments)

2. class構造函數

systemverilog提供了class的構造函數,支持在創建object的時候對instance進行初始化。

如果用戶沒有顯示指定new方法,那么隱藏的new方法將會被自動加上。在子類的new方法里應該首先call父類的new構造函數。

super.new需要在子類構造函數中第一條語句就執行,這是因為superclass需要在子class之前被初始化,如果用戶沒有提供superclass的初始化,那么compiler會自動插入super.new。

image.png

3. static

class中的static properties可以直接引用,不需要該通過class的instance。

class中的methods也可以是static,static method不能訪問non-static members(properties或methods),但它可以訪問同個class內的static members。如果它訪問了non-static members或this handle,那么應該報編譯錯誤。Static methods也不能是virtual。

Static method和task with static lifetime是不一樣的,前者描述的是class內method的lifetime,而后者描述的是task內variables和arguments的lifetime。

4. shallow copy和deep copy

Shallow copy只是復制原有object的properties,但如果原有object里含有object handler,也只是復制handler的值,不會把handler object里的properties也進行復制。

Shallow copy也不會創建新的coverage objects(covergroup instances)。

如果要做到連handler里的properties都復制,那么需要deep_copy,deep copy需要user自己實現的。

5. chaining constructors

如果多層class extend的話,那么在constructor里需要調用父類的constructor。

如果父類的constructor需要arguments,那么有兩種方法:1. 用super.new(xx)傳進去;2. 在extend父類class時就傳進去的,用這種方式,在constructor里就別加super.new(xx)了。

父類的new函數如果不需要arguments(沒有參數或參數帶默認值),那么在子類constructor里對super.new()可寫可不寫,不寫的話,compiler會自動插入。如果父類的constructor需要傳參數,那么compiler自動插入也只是為super.new(),也不會給你傳參數值進去的(除非在extend時指定),這樣simulator會報錯。

記住:如果將new定義為local,那么該類將不可以被繼承的。

在子類構造函數中需要第一條調用父類構造函數super.new()中,要等super.new()執行完之后,才會做son class的property初始化,如果property有指定初始值,那么就賦值,如果沒有指定,那就是undefined的。最后才會繼續執行son class構造函數中super.new()以下的語句。因此在給父類構造函數傳輸參數,如果用子類定義的變量,那么結果會是undefined的,因此,來不及初始化啊。例子如下:

image.png

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

    關注

    28

    文章

    1351

    瀏覽量

    110077
收藏 人收藏

    評論

    相關推薦

    [啟芯公開課] SystemVerilog for Verification

    學快速發展,這些趨勢你了解嗎?SystemVerilog + VM是目前的主流,在未來也將被大量采用,這些語言和方法學,你熟練掌握了嗎?對SoC芯片設計驗證感興趣的朋友,可以關注啟芯工作室推出的SoC芯片
    發表于 06-10 09:25

    systemverilog學習教程

    systemverilog的一些基本語法以及和verilog語言之間的區別。
    發表于 04-01 14:24

    更好地理解SystemVerilog的多態Polymorphism

    保存子類對象,并直接使用父類句柄來調用子類的方法。因此,SystemVerilog中的多態性是一種根據父類對象句柄實際指向不同的對象類型使相同的代碼具備不同行為的能力。為了實現這個目的,父類中
    發表于 12-05 17:34

    SystemVerilog Assertion Handbo

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    發表于 07-22 14:08 ?188次下載

    SystemVerilog的斷言手冊

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    發表于 07-22 14:12 ?20次下載

    SystemVerilog語言介紹匯總

    作者:limanjihe ?https://blog.csdn.net/limanjihe/article/details/83005713 SystemVerilog是一種硬件描述和驗證語言
    的頭像 發表于 10-11 10:35 ?2390次閱讀

    SystemVerilog中枚舉類型的使用建議

    SystemVerilog中枚舉類型雖然屬于一種“強類型”,但是枚舉類型還是提供了一些“不正經”的用法可以實現一些很常見的功能,本文將示例一些在枚舉
    的頭像 發表于 09-01 14:20 ?1700次閱讀

    SystemVerilog中$cast的應用

    SystemVerilog casting意味著將一種數據類型轉換為另一種數據類型。在將一個變量賦值給另一個變量時,SystemVerilog要求這兩個變量具有相同的數據
    的頭像 發表于 10-17 14:35 ?2847次閱讀

    SystemVerilog中的package

    SystemVerilog packages提供了對于許多不同數據類型的封裝,包括變量、task、function、assertion等等,以至于可以在多個module中共享。
    的頭像 發表于 11-07 09:44 ?1248次閱讀

    SystemVerilog中的struct

    SystemVerilog“struct”表示相同或不同數據類型的集合。
    的頭像 發表于 11-07 10:18 ?2450次閱讀

    Systemverilog中的union

    SystemVerilog union允許單個存儲空間以不同的數據類型存在,所以union雖然看起來和struct一樣包含了很多個成員,實際上物理上共享相同的存儲區域。
    的頭像 發表于 11-09 09:41 ?936次閱讀

    SystemVerilogclass的基本概念

    class,是面向對象編程(object-oriented programming (OOP))的基礎,而OOP可以讓你創建更高抽象級別的驗證環境(如UVM)。
    的頭像 發表于 11-14 09:11 ?1857次閱讀

    SystemVerilogclass是什么意思

    class,是面向對象編程(object-oriented programming (OOP))的基礎,而OOP可以讓你創建更高抽象級別的驗證環境(如UVM)。
    的頭像 發表于 11-14 09:11 ?1274次閱讀

    FPGA學習-SystemVerilog語言簡介

    SystemVerilog是一種硬件描述和驗證語言(HDVL),它基于IEEE1364-2001 Verilog硬件描述語言(HDL),并對其進行了擴展,包括擴充了 C語言 數據類型、結構、壓縮和非
    的頭像 發表于 12-08 10:35 ?2149次閱讀

    SystemVerilog的regions以及events的調度

    本文講一下SystemVerilog的time slot的regions以及events的調度。SystemVerilog語言是根據離散事件執行模型定義的,由events驅動。
    的頭像 發表于 07-12 11:20 ?1545次閱讀
    <b class='flag-5'>SystemVerilog</b><b class='flag-5'>里</b>的regions以及events的調度
    主站蜘蛛池模板: 麻豆国产精品va在线观看约| 接吻吃胸摸下面啪啪教程| 国产精品亚洲欧美| 日本69xxxx| 98久久人妻少妇激情啪啪| 久久久久久人精品免费费看| 亚洲综合无码一区二区| 国产综合在线视频| 亚洲精品国产第一区第二区| 果冻传媒MV免费播放在线观看| 婷婷四房播客五月天| 国产高清超清在线播放| 涩涩爱涩涩电影网站| 国产精品福利片| 性刺激欧美三级在线现看中文| 国产人人为我我为人人澡| 亚洲国产AV无码综合在线| 护士12p| 一本之道高清在线观看免费| 久久99视频免费| 91精品国产色综合久久不| 欧美末成年videos丨| 邓奴的视频IVK| 午夜福利电影网站鲁片大全| 國産麻豆AVMDMD0179| 诱人的女邻居9中文观看| 蜜臀AV熟女人妻中文字幕| 糙汉顶弄抽插HHHH| 小777论坛| 久久精品天天中文字幕| 99爱视频在线观看| 十分钟免费视频大全在线| 欧美牲交A欧美牲交| 大睾丸内射老师| 亚洲AV无码影院在线播放| 久久国产影院| yellow日本动漫观看免费| 亚洲AV精品一区二区三区不卡| 久久妇女高潮几次MBA| GAY2022空少被体育生暴菊| 卫生间被教官做好爽HH视频|