在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    3025

    瀏覽量

    74056
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110101
  • System
    +關注

    關注

    0

    文章

    165

    瀏覽量

    36950

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

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

收藏 人收藏

    評論

    相關推薦

    SystemVerilog構造函數new

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

    SystemVerilog的Virtual Methods

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

    SystemVerilog的聯合(union)介紹

    SystemVerilog ,聯合只是信號,可通過不同名稱和縱橫比來加以引用。
    的頭像 發表于 10-08 15:45 ?1400次閱讀
    <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 ?2862次閱讀

    SystemVerilog的struct

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

    SystemVerilog的Shallow Copy

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

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

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

    SystemVerilog的Semaphores

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

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

    阻塞賦值操作符用等號(即 = )表示?!白枞笔侵冈谶M程語句(initial和always),當前的賦值語句阻斷了其后的語句,也就是說后面的語句必須等到當前的賦值語句執行完畢才能執行
    發表于 12-19 16:49 ?7432次閱讀

    簡述python空和實例屬性賦值

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

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

    SystemVerilog,類型可以分為線網(net)和變量(variable)。線網的賦值設定與Verilog的要求相同,即線網賦值需要使用連續
    的頭像 發表于 10-13 14:53 ?2213次閱讀
    <b class='flag-5'>SystemVerilog</b>:處理信號雙驅動問題解析
    主站蜘蛛池模板: 亚洲狠狠网站色噜噜| 欧美三级 欧美一级| 久久伊人色| 天天干天天爽| 日本a级特黄三级三级三级| 日本色图在线| 午夜影院欧美| 性瘾高h姚蕊全文免费阅读| 色综合久久五月| 一本到中文字幕高清不卡在线| 色多多网址| 一级特黄aaa免费| 黄色午夜| 日本免费福利视频| 天天视频免费入口| 唐人社电亚洲一区二区三区| 欧美a区| 国产二区三区| 宅男lu66国产在线播放| 亚洲免费不卡| 免费网站毛片| 国产情侣露脸| 四虎影视最新| 午夜精品在线视频| 国产在播放一区| 狠狠色狠狠色综合网| 操操操操网| 日产乱码免费一卡二卡在线| 天天操天天干天天干| 办公室桌震娇喘视频大全在线| 国产一区二区三区影院| 欧美系列在线| 欧美123区| 99综合在线| 日韩福利一区| 国产午夜一区二区在线观看| 天天射日日射| 日本加勒比官网| 五等分的新娘免费漫画| 天天色天天射天天操| 亚洲综合色就色手机在线观看|