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

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

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

3天內不再提示

SystemVerilog中的類的賦值

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-11-21 10:35 ? 次閱讀

當我們聲明一個類時還沒有分配內存,只有在實例化(new())時才會分配內存。這個時候對象句柄指向被分配的內存,下面是對象句柄賦值的示例:

class PCI;
 ……
 endclass
 PCI p1; //a variable 'p1' of type PCI is created.
 //Memory is not allocated.
 p1 = new; //this is where memory is allocated for 'p1'.

 PCI p2;
 p2 = p1; //class assignment

在上面的例子中,p2是一個PCI類型的變量(尚未完成實例化分配內存),而p1是一個完成了實例化的對象句柄。

當賦值p2 = p1時,實際上還是只有一個對象,“p1”和“P2”對象句柄現在都指向相同的內存空間。

正因為它們都指向相同的內存空間,所以“p1”對象的變化將反映到“p2”對象,反之亦然。

96fac5d6-675d-11ed-8abf-dac502259ad0.png

module class_TOP( );
 class PCITop;
 logic [31:0] addr;
 logic [31:0] data;
 function void disp (string instName);
 
 $display("[%s] addr = %h data = %h", instName, 
addr, data);
 endfunction
 endclass : PCITop
 
 PCITop PCI1, PCI2;
 
 initial begin;
 PCI1 = new;//create object PCI1
 PCI2 = PCI1; //class assignment
 PCI1.addr = 'h1234_5678; //using PCI1 handle
 PCI1.data = 'hf0f0_f0f0;
 PCI1.disp("PCI1");
 PCI2.disp("PCI2");
 PCI2.addr = 'h8765_4321; //using PCI2 handle
 PCI2.data = 'hff_0101;
 PCI1.disp("PCI1");
 PCI2.disp("PCI2");
 end
 endmodule

仿真log:

[PCI1] addr = 12345678 data = f0f0f0f0
[PCI2] addr = 12345678 data = f0f0f0f0
[PCI1] addr = 87654321 data = ffff0101
[PCI2] addr = 87654321 data = ffff0101
 V C S S i m u l a t i o n R e p o r t

上面的例子中,我們對對象“PCI1”的修改能反映到“PCI2”,對對象“PCI2”的修改也反映到了“PCI1”。

審核編輯:湯梓紅

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

    關注

    8

    文章

    3019

    瀏覽量

    74005
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110077
  • System
    +關注

    關注

    0

    文章

    165

    瀏覽量

    36929

原文標題:SystemVerilog中的類的賦值

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

收藏 人收藏

    評論

    相關推薦

    SystemVerilog構造函數new

    systemverilog,如果一個沒有顯式地聲明構造函數(new()),那么編譯仿真工具會自動提供一個隱式的new()函數。這個new函數會默認地將所有屬性變量。
    發表于 11-16 09:58 ?3636次閱讀

    SystemVerilog的Virtual Methods

    SystemVerilog多態能夠工作的前提是父的方法被聲明為virtual的。
    發表于 11-28 11:12 ?698次閱讀

    SystemVerilog的聯合(union)介紹

    SystemVerilog ,聯合只是信號,可通過不同名稱和縱橫比來加以引用。
    的頭像 發表于 10-08 15:45 ?1387次閱讀
    <b class='flag-5'>SystemVerilog</b><b class='flag-5'>中</b>的聯合(union)介紹

    SpinalHDLBundle與普通數據類型之間的連接賦值轉換

    SpinalHDLBundle與SystemVerilog的packed struct很像,在某些場景下,與普通數據類型之間的連接賦值可以通過asBits,assignFromBi
    發表于 10-18 14:22

    更好地理解SystemVerilog的多態Polymorphism

    多態(Polymorphism) ,從字面意思上看指的是多種形式,在OOP(面向對象編程)中指的是同一個父的函數可以體現為不同的行為。在SystemVerilog,指的是我們可以使用父
    發表于 12-05 17:34

    PHP傳值賦值和引用賦值的詳細資料詳解

    本文檔的主要內容詳細介紹的是PHP傳值賦值和引用賦值的詳細資料詳解。
    發表于 03-06 17:04 ?5次下載
    PHP<b class='flag-5'>中</b>傳值<b class='flag-5'>賦值</b>和引用<b class='flag-5'>賦值</b>的詳細資料詳解

    verilog阻塞賦值和非阻塞賦值到底有什么區別

    1、阻塞賦值操作符用等號(即 = )表示。“阻塞”是指在進程語句(initial和always),當前的賦值語句阻斷了其后的語句,也就是說后面的語句必須等到當前的賦值語句執行完畢才能
    發表于 04-25 08:00 ?0次下載
    verilog<b class='flag-5'>中</b>阻塞<b class='flag-5'>賦值</b>和非阻塞<b class='flag-5'>賦值</b>到底有什么區別

    SystemVerilog$cast的應用

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

    SystemVerilog的struct

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

    SystemVerilog的Shallow Copy

    SystemVerilog的句柄賦值和對象復制的概念是有區別的。
    的頭像 發表于 11-21 10:32 ?903次閱讀

    數字硬件建模SystemVerilog-組合邏輯建模(1)連續賦值語句

    SystemVerilog有三種在可綜合RTL級別表示組合邏輯的方法:連續賦值語句、always程序塊和函數。接下來幾篇文章將探討每種編碼風格,并推薦最佳實踐編碼風格。
    的頭像 發表于 12-07 15:31 ?1526次閱讀

    SystemVerilog的Semaphores

    SystemVerilogSemaphore(旗語)是一個多個進程之間同步的機制之一,這里需要同步的原因是這多個進程共享某些資源。
    的頭像 發表于 12-12 09:50 ?3363次閱讀

    verilog阻塞賦值和非阻塞賦值的區別

    阻塞賦值操作符用等號(即 = )表示。“阻塞”是指在進程語句(initial和always),當前的賦值語句阻斷了其后的語句,也就是說后面的語句必須等到當前的賦值語句執行完畢才能執行
    發表于 12-19 16:49 ?7413次閱讀

    簡述python空和實例屬性賦值

    python主體沒有任何內容,只有pass語句,稱為空。 ## 1.2 obj.attr屬性賦值 通過obj.attr=value進行和實例屬性
    的頭像 發表于 02-21 10:30 ?1044次閱讀

    SystemVerilog:處理信號雙驅動問題解析

    SystemVerilog,類型可以分為線網(net)和變量(variable)。線網的賦值設定與Verilog的要求相同,即線網賦值需要使用連續
    的頭像 發表于 10-13 14:53 ?2126次閱讀
    <b class='flag-5'>SystemVerilog</b>:處理信號雙驅動問題解析
    主站蜘蛛池模板: 国产精品人成在线播放新网站| A级毛片高清免费网站不卡| 最近免费中文字幕完整版HD| a毛片基地免费全部视频| 国产精品人妻无码99999| 久久这里只有精品视频9| 日韩中文欧美在线视频| 亚洲欧美日韩综合影院| H厨房灌草莓| 韩国甜性涩爱| 青柠在线观看免费全集| 亚洲欧美在无码片一区二区| wwww69| 狠狠色噜噜狠狠狠狠米奇777| 欧美GV肉片视频免费观看| 无码人妻丰满熟妇啪啪网不卡| 中文国产成人精品久久免费| 鬼灭之刃花街篇免费樱花动漫| 恋夜影院安卓免费列表uc| 外国三级片名| 99视频精品全部免费观看| 寂寞护士中文字幕 mp4| 日韩精品欧美亚洲高清有无| 在线高清视频不卡无码| 国产精品久久久久久人妻香蕉 | 亚洲 日本 欧美 中文字幕| 久久这里只有精品无码3D| 麻豆AV久久无码精品九九| 色婷婷五月综合久久中文字幕| 亚洲日韩有码无线免费| a圾片目录大全| 国家产午夜精品无人区| 无码中文字幕av免费放| 中文字幕在线播放视频| 高清 仑乱 一级 a| 久久综合一个色综合网| 丝瓜涩涩屋黄瓜香蕉丝瓜| 野花日本完整版在线观看免费高清| 啊轻点啊再深点视频免费| 最近日本字幕免费高清| 攻把受做哭边走边肉楼梯PLAY|