国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

SystemVerilog的結構體-2

汽車電子技術 ? 來源:OpenFPGA ? 作者:碎碎思 ? 2023-02-09 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數字硬件建模SystemVerilog-結構體(二)

poYBAGPkoG6AH_JoAATLr5UXX3c768.pngpYYBAGPkoHyATFI0AAG45JVJsvk658.png

結構體

結構體用于將多個變量組合在一個通用名稱下。設計通常具有邏輯信號組,例如總線協議的控制信號,或狀態控制器內使用的信號。結構體提供了將這些相關變量捆綁在一起的方法。結構體中的所有變量都可以單個賦值,或者每個變量都可以單獨賦值。結構體包可以復制到具有相同定義的另一個結構體,并通過模塊端口、任務或函數進出。

結構體復制

一個自定義結構體可以復制到另一個自定義結構體,只要這兩個結構體是從同一個自定義結構體定義聲明的。以下示例使用了上節中所示的結構體定義和聲明。

匿名結構體不能作為一個整體復制,但可以一次復制一個成員:

pYYBAGPkoMqAJSKBAABqdjX9Vfo195.png

壓縮和非壓縮結構體

默認情況下,結構體會被非壓縮的。這意味著結構體的成員被視為獨立變量或常量,并以一個共同的名稱分組在一起。SystemVerilog沒有指定軟件工具應該如何存儲非壓縮結構體的成員。不同的軟件工具具對于結構體的存儲分布也是不同的。

通過使用關鍵字packed,將結構體顯式聲明為壓縮結構體。

poYBAGPkoNaAP8p7AABHKlP0IuI196.png

壓縮結構體以與向量相同的形式將結構體的所有成員存儲為連續位。結構體的第一個成員是向量最左邊的字段。結構體中最后一個成員的最右邊的位是向量的最低有效位,編號為位0。如圖4-2所示。

poYBAGPkoOOAc8I3AAAwli4GEtQ596.png

圖4-2:壓縮結構體存儲為向量

壓縮結構體的所有成員都必須是整數值。整數值是可以表示為向量的值,例如byte、int和使用bit或logic類型創建的向量。如果結構體的任何成員不能表示為向量,則該結構體不能被壓縮。這意味著壓縮結構體不能包含實數或短實數變量、非壓縮結構體、非壓縮聯合體體或非壓縮的數組。

引用壓縮結構體和結構體成員。壓縮結構體可以復制,或分配一個結構體表達式值列表,方法與非壓縮結構體相同。壓縮結構體的成員可以通過成員名稱引用,方式與非壓縮結構體相同。

壓縮結構體也可以被視為一個向量。因此,除了結構體分配,向量值還可以分配給壓縮結構體

pYYBAGPkoTWACMAhAAAULfH5zrg880.png

向量賦值是合法的,因為賦值左邊的結構體成員已壓縮在一起,形成一組連續的位,方式與向量相同。因為壓縮結構體存儲為一組連續的位,所以對壓縮結構體執行向量操作也是合法的,包括位選擇和部分選擇。以下兩個賦值都將分配給data_word的tag成員:

poYBAGPkoUGARuODAAA8pB2oEeY215.png

可以在向量上執行的數學運算、邏輯運算和任何其他運算也可以在壓縮結構體上執行。

有符號壓縮結構體。壓縮結構體可以用signed和unsigned關鍵字聲明。當在運算或關系運算中用作向量時,這些修飾符會影響整個結構體的識別方式。它們不會影響結構體成員的識別方式。結構體的每個成員都被視為有符號或無符號,這取決于該成員的類型聲明。壓縮結構體的部分選擇是無符號的,與向量的部分選擇相同。

poYBAGPkoUuARlaEAADRzTLi1gw534.png

通過端口傳遞結構體

自定義結構體可以通過模塊和接口的端口傳遞,結構體必須首先使用 typedef 定義為用戶自定義數據類型,然后才允許將模塊或接口的端口聲明為結構體類型。

poYBAGPkoVaAWq72AAFVslPrdAc255.png

非壓縮的結構體必須是自定義結構體,才能通過端口傳遞該結構體。與端口的連接必須是與端口類型完全相同的結構體。也就是說,端口和端口兩側的連接都必須從相同的typedef定義聲明。此限制僅適用于非壓縮結構體。通過模塊端口的壓縮結構體被視為向量。端口的外部連接可以是相同類型的壓縮結構體,也可以是任何類型的向量。

通過將任務或函數參數聲明為結構體類型,自定義結構體也可以作為參數傳遞給任務或函數。

pYYBAGPkoWOAClmQAAFJXhUDDss409.png

當調用一個任務或函數時,如果該任務或函數有一個非壓縮的結構體作為正式參數菜單,則必須將一個完全相同類型的結構體傳遞給該任務或函數。壓縮結構體形式參數被視為向量,可以傳遞給任何類型的向量。

傳統的Verilog與結構體

最初的Verilog語言沒有一種方便的機制來將常見信號收集到一個組中。在傳統的Verilog樣式的模型中,工程師必須使用特殊的分組方法,例如命名約定,其中一組中的每個信號都以一組公共字符開始或結束。最初的Verilog語言也無法通過模塊端口或任務和函數傳遞信號集合,每個信號都必須通過單獨的端口或參數傳遞。

在原始Verilog語言中添加結構體是一種強大的RTL建模構造,反之亦然。它提供了一種更簡潔、更直觀、更可重用的復雜模型功能建模方法。包中定義的自定義結構體可以在多個模塊中重復使用,也可以在用于驗證RTL模型的驗證測試臺中重復使用。

綜合指導

非壓縮結構體和壓縮結構體都是可綜合的。綜合工具支持結構體通過模塊端口傳遞 , 也支持作為輸入或輸出傳遞給任務和函數 , 也支持使用成員名和值的列表對結構體進行賦值。

綜合編譯器可能比壓縮結構體更好地優化非壓縮結構體。非壓縮結構體允許軟件工具確定存儲或實現每個結構體成員的最佳方式,而壓縮結構體則決定如何組織每個成員。


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

    關注

    114

    文章

    17791

    瀏覽量

    193180
  • 控制信號
    +關注

    關注

    0

    文章

    200

    瀏覽量

    12693
  • 結構體
    +關注

    關注

    1

    文章

    131

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言結構使用

    型的數據組合。 結構的聲明與定義 結構的聲明一般形式為: c struct 結構名{
    發表于 11-12 08:30

    漫談C語言結構

    我放在下面?! ≡诖?,我會圍繞以下2個問題來分析和應用C語言結構:  1. C語言中的結構有何作用  
    發表于 11-15 15:59

    2)打兩拍systemverilog與VHDL編碼 精選資料分享

    2打兩拍systemverilog與VHDL編碼1 本章目錄1)FPGA簡介2SystemVerilog簡介3)VHDL簡介4)打兩拍verilog編碼5)打兩拍VHDL編碼6)結束
    發表于 07-26 06:19

    使用結構的主要作用

    2.在我們單片機程序開發過程中,經常會遇到要初始化一個外設比如串口,它的初始化狀態是由幾個屬性來決定的,比如串口號,波特率,極性,以及模式。對于這種情況,在我們沒有學習結構的時候,我們一般的方法...
    發表于 08-24 07:54

    消息隊列傳遞結構指針和結構異同

    FreeRTOS消息隊列 傳遞結構指針和結構異同1 消息隊列傳遞結構指針和
    發表于 02-11 07:02

    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指稱語義

    本文利用形式化的方法對SystemVerilog的指稱語義進行研究,采用EBES(extendedbundle event structure)作為抽象模型,以便更好的描述SystemVerilog真并發的特點。我們的主要工作是:首先,
    發表于 12-22 14:01 ?12次下載

    基于SystemVerilog的I2C總線模塊驗證

    文中分析了基于Systemverilog驗證環境的結構,并在介紹I 2 C總線協議的基礎上,重點論述了驗證環境中事務產生器及驅動器的設計。
    發表于 12-22 17:20 ?27次下載
    基于<b class='flag-5'>SystemVerilog</b>的I<b class='flag-5'>2</b>C總線模塊驗證

    共用結構的區別

    的C/C++編程中,我們經常要傳送的不是簡單的字節流,而是多種數據組合起來的一個整體,其表現形式就是一個結構2、結構的定義
    發表于 11-19 17:46 ?3.8w次閱讀

    數字硬件建模SystemVerilog-結構

    默認情況下,結構體會被非壓縮的。這意味著結構的成員被視為獨立變量或常量,并以一個共同的名稱分組在一起。SystemVerilog沒有指定軟件工具應該如何存儲非壓縮
    的頭像 發表于 06-30 09:54 ?2430次閱讀

    SystemVerilog中可以嵌套的數據結構

    SystemVerilog中除了數組、隊列和關聯數組等數據結構,這些數據結構還可以嵌套。
    的頭像 發表于 11-03 09:59 ?2695次閱讀

    FPGA學習-SystemVerilog語言簡介

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

    SystemVerilog中至關重要的結構和自定義類型

    在上一篇文章《SystemVerilog中至關重要的的數據類型》中,介紹了枚舉類型的本質和使用語法。本文接著介紹SV中同樣不可忽略的結構(structure)和自定義類型(typedef),最后也
    的頭像 發表于 01-21 17:18 ?3339次閱讀
    <b class='flag-5'>SystemVerilog</b>中至關重要的<b class='flag-5'>結構</b><b class='flag-5'>體</b>和自定義類型

    SystemVerilog結構-1

    結構體用于將多個變量組合在一個通用名稱下。設計通常具有邏輯信號組,例如總線協議的控制信號,或狀態控制器內使用的信號。結構提供了將這些相關變量捆綁在一起的方法。結構
    的頭像 發表于 02-09 15:26 ?1798次閱讀
    <b class='flag-5'>SystemVerilog</b>的<b class='flag-5'>結構</b><b class='flag-5'>體</b>-1