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

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

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

3天內不再提示

SystemVerilog的結構體-1

汽車電子技術 ? 來源:OpenFPGA ? 作者: 碎碎思 ? 2023-02-09 15:26 ? 次閱讀

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

poYBAGPkn2GALZ3EAAThsbJ2QM4493.png

pYYBAGPkn26AfnHsAAG4PgudtCo769.png

結構體

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

結構體聲明

結構體是使用struct關鍵字聲明的,類似于C語言。struct關鍵字后面跟著一個開始的大括號( { )變量聲明列表,結束的大括號(}),然后是結構體的名稱。

poYBAGPkn3qAP5SDAADbXLheCUk319.png

一個結構體可以將任意數量的變量數據類型捆綁在一起,用戶自定義類型、Parameter和localparam常量也可以包含在一個結構體中,結構體中的Parameter不能像模塊中的Parameter那樣重新定義,結構體中的參數被視為localparam。

結構體成員賦值

結構體中的變量稱為結構體成員。每個成員都有一個名稱,可用于從結構體中選擇該成員。使用結構體的名稱引用結構體成員,后跟句點(.)然后是成員的名字。這與C中的語法相同。例如,要為前面結構體的address成員賦值,引用為:

pYYBAGPkn4WAXfXxAABYbLMYmVk544.png

結構體不同于數組,因為數組是所有類型和大小相同的元素的集合,而結構體是不同類型和大小的變量和常量的集合。另一個區別是,數組的元素是通過在數組中使用索引來引用的;結構體的成員是通過使用成員名稱來引用的。

整個結構體賦值

可以為整個結構體指定一個結構體表達式。結構體表達式是使用逗號分隔的值列表形成的,這些值包含在標記’{}之間,這與將一組值分配給數組的方式相同,大括號必須包含結構體中每個成員的值。例如:

poYBAGPkn4-AU3dEAAC3H_R3VVc987.png

結構體表達式中的值必須按照在結構體中定義的順序列出,如前一示例所示。或者,結構體表達式可以指定要為其賦值的結構體成員的名稱,其中成員名稱和值用冒號(:)分隔。結構體表達式中的成員名稱稱為tags。指定成員名稱后,表達式列表可以是任意順序。

pYYBAGPkn5iAJ6Z_AAA5CM4b_sI096.png

在同一個結構體表達式中混合按名稱和按順序賦值是非法的。

結構體表達式中的默認值。結構體表達式可以通過指定默認值為一個結構體的多個成員指定值,默認值是使用default關鍵字指定的。

poYBAGPkn6SAVwPZAAAwNpLtlmA137.png

結構體表達式還可以包含對特定結構體成員的混合賦值,以及對所有其他成員指定默認值。

pYYBAGPkn7eALnUUAAAleJsWGV0098.png

結構體中的枚舉數據類型。前兩個帶有默認值的示例存在語義錯誤,分配給結構體成員的默認值必須與成員的數據類型兼容。由于大多數SystemVerilog變量都是弱類型的,因此幾乎所有默認值都是兼容的。然而,枚舉數據類型變量的類型更強。對枚舉數據類型變量的賦值必須是其枚舉列表中的標簽,或者是同一枚舉數據類型定義的另一個枚舉變量。

上述instruction_word 的兩個賦值語句試圖將opcode的默認值賦值為0。這是opcode的非法值,它是一個opcode_t枚舉數據類型變量(opcode_t的typedef定義是之前枚舉變量章節)。當結構體的成員是枚舉數據類型變量時,結構體表達式必須為該成員指定合法的顯式值。可以為所有其他成員指定默認值。例如:

pYYBAGPkn8WAWKOQAABcJUyV-5w537.png

自定義和匿名結構體

用戶自定義類型可以使用typedef關鍵字從結構體中創建。將結構體聲明為用戶自定義類型不會分配任何存儲空間。在使用該結構體之前,必須聲明該用戶自定義類型的網絡或變量。

pYYBAGPkn9CAP72vAADS_DFarQA142.png

不使用typedef的結構體被定義為匿名結構體。使用typedef聲明的結構體被視為自定義結構體。匿名結構體和自定義結構體都可以在模塊中定義,但這些本地(局部)定義只能在該模塊中使用。自定義結構體也可以在包中定義,并導入到需要結構體定義的設計塊中。包中定義的自定義結構體可用于多個模塊和驗證測試臺。

結構體復制

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

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

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

    關注

    0

    文章

    116

    瀏覽量

    14861
  • 控制信號
    +關注

    關注

    0

    文章

    166

    瀏覽量

    11997
  • 結構體
    +關注

    關注

    1

    文章

    130

    瀏覽量

    10857
收藏 人收藏

    評論

    相關推薦

    systemverilog學習教程

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

    漫談C語言結構

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

    GPIO結構定義

    #include "stm32f4xx.h"#include "usart.h"void My_USART1_Init(void){//GPIO結構定義 GPIO_InitTypeDefGPIO_InitStructure;/
    發表于 08-04 07:47

    使用結構的主要作用

    結構作用(STM32)來源:正點原子MDK 中很多地方使用結構以及結構指針,下面總結一下其
    發表于 08-24 07:54

    結構變量的定義與使用變量訪問結構成員

    知識點回顧關于找最大公共子串的兩種解題方法結構的定義(3種)結構變量的定義與使用變量訪問結構
    發表于 12-17 07:10

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

    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次下載

    共用結構的區別

    在c++中,結構(struct)和共用(union)是兩種很相似的復合數據類型,都可以用來存儲多種數據類型,但是兩者還有很大的區別。 結構
    發表于 11-19 17:46 ?3.7w次閱讀

    數字硬件建模SystemVerilog-結構

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

    SystemVerilog中可以嵌套的數據結構

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

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

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

    SystemVerilog結構-2

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

    結構與指針的關系

    指針則是指向結構類型的指針,用于操作和訪問結構的成員。下面我們將分別詳細解釋結構
    的頭像 發表于 01-11 08:00 ?1016次閱讀
    <b class='flag-5'>結構</b><b class='flag-5'>體</b>與指針的關系
    主站蜘蛛池模板: 在线播放免费人成毛片视频| 欧美高清videosgratis高| 国精产品一区二区三区有限公司 | 久久无码av三级| 午夜免费福利小电影| 东北成人社区| 少男同志freedeos| 68日本xxxxxxxx79| 久久亚洲AV成人无码动态图| 亚洲一区二区女搞男| 激情床戏视频片段有叫声| 亚洲精品AV无码重口另类| 国产午夜伦伦伦午夜伦| 台湾果冻传媒在线观看| 国产51麻豆二区精品AV视频| 世界第一黄暴漫画家| 国产 亚洲 日韩 欧美 在线观看| 日本人的xxxxxxxxx69| 超碰人热人人热人人看| 肉欲横流(NP高H)| 国产精品亚洲精品影院| 亚洲妈妈精品一区二区三区| 狠狠躁天天躁小说| 影音先锋电影资源av| 美国大臿蕉香蕉大视频| a4you销魂gogo人体| 日本免费xxx| 国产亚洲精品欧洲在线视频| 亚洲欲色欲色XXXXX在线AV| 菊地凛子av| xiao776唯美清纯| 洗濯屋H纯肉动漫在线观看| 极品少妇高潮啪啪无码吴梦| 樱花草在线观看影院| 女仆翻身大作战| 国产精品国产三级国AV在线观看| 亚洲精品国产一区二区贰佰信息网| 久久亚洲AV成人无码动态图| 纯肉宠文高h一对一| 亚洲乱码爆乳精品成人毛片| 伦理片在线线看手机版|