精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

網絡和變量的未壓縮數組

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

數字硬件建模SystemVerilog(九)-網絡和變量的未壓縮數組

pYYBAGPkltCAGGloAATFvOF3oVU007.png

SystemVerilog有兩種類型的數組:壓縮數組和非壓縮數組。壓縮數組是連續存儲的位的集合,通常稱為向量。非壓縮數組是網絡或變量的集合。

集合中的每個網絡或變量稱為數組元素。未壓縮數組的每個元素的類型、數據類型和向量大小都完全相同。每個未壓縮的數組元素可以獨立于其他元素存儲;這些元素不需要連續存儲。軟件工具,如仿真器和綜合編譯器,可以以工具認為最佳的任何形式組織未壓縮數組的存儲。

未壓縮數組的基本聲明語法為:

pYYBAGPkltyARoU6AABDz2kcx8U818.png

數組的維度定義了數組可以存儲的元素總數。未壓縮的數組可以用任意數量的維度聲明,每個維度存儲指定數量的元素。聲明數組維度有兩種編碼樣式:顯式地址和數組大小。

顯式地址樣式指定方括號之間數組維度的起始地址和結束地址,格式為:

poYBAGPkluiAHYjdAABLYMhSKu8679.png

Start_address 和 end_address可以是任何整數值,數組可以以地址0、地址512或被建模硬件所需的任何地址開始。起始地址和結束地址之間的范圍表示數組維度的大?。ㄔ財担?。

數組大小樣式定義要存儲在方括號中的元素數(類似于C語言數組聲明樣式)。

[size]

使用array_size樣式,起始地址始終為0,結束地址始終為size-1

以下是一些未壓縮的數組聲明示例:

pYYBAGPklveAOzaNAAErTm7DB8w054.png

前面的mem聲明是16位logic變量的一維數組。一維陣列有時被稱為內存陣列,因為它通常用于仿真硬件內存設備(如RAMROM)的存儲。

訪問數組元素

可以使用數組索引引用未壓縮數組的每個元素,索引緊跟在數組名稱之后,并且位于方括號中,多維數組需要多組方括號才能從數組中選擇單個元素:

poYBAGPklwSAL7ouAACkUpyzHdg003.png

數組索引也可以是網絡或變量的值,如下一個示例所示:

pYYBAGPklw-AOmduAABaumsTmVU645.png

復制數組(陣列)

如果兩個數組(陣列)具有相同的布局,則可以使用賦值語句將一個未壓縮的數組(陣列)復制到另一個未壓縮的數組(陣列)。也就是說,這兩個數組(陣列)必須存儲相同向量大小的相同數據類型,必須具有相同的維度數,并且每個維度的大小都相同-

數組(陣列)復制會將源數組(賦值的右側)的每個元素復制到目標數組(陣列)(賦值的左側)中相應的元素。兩個數組(陣列)的索引編號不需要相同。數組(陣列)的布局和類型必須完全匹配。

poYBAGPklxuAc-e5AACX3FRLMQU468.png

與復制數組(陣列)的方式類似,如果兩個切片的布局相同,則可以將數組(陣列)的一部分(稱為數組(陣列)切片)復制到另一個數組(陣列)的切片。切片是數組(陣列)一維內的一個或多個連續編號的元素。

在成為SystemVerilog之前,最初的Verilog語言將對數組(陣列)的訪問限制為一次只能訪問數組中的一個元素。不允許對數組(陣列)的多個元素進行數組(陣列)復制和讀/寫操作。

數組列表賦值

可以為未壓縮的數組或數組的一個片段分配一個值列表,這些值包含在每個數組維度的’{and}大括號之間。

poYBAGPklyWACh76AADNmK5RTTU259.png

列表語法類似于在C中為數組指定值列表,但在大括號前添加了撇號使用’-“作為開頭分隔符”表明,所包含的值是表達式列表,而不是SystemVerilog連接運算符(后面會詳細介紹)。

還可以使用嵌套列表為多維數組分配值列表。嵌套的列表集必須與數組的維度完全匹配。

poYBAGPklzCAQXHxAABqckj8mNY761.png

此數組分配相當于以下各項的單獨分配:

pYYBAGPklz-AMb7LAABxb85n08g517.png

通過指定默認值,可以為未壓縮數組的所有元素指定相同的值。默認值是使用’{default:}指定的,如以下代碼段所示:

poYBAGPkl0uANj8TAADk6ZFXV-4272.png

數組元素的位選擇和部分選擇

可以從數組元素向量中選擇一位或一組位。必須首先選擇數組的單個元素,然后進行位選擇或部分選擇。

pYYBAGPkl1SAUaVMAADbUI1bIT0540.png

通過端口將數組傳遞給任務和函數。任何類型和任意數量的未壓縮數組都可以通過模塊端口傳遞,也可以傳遞到任務和函數參數。端口或任務/函數形式參數也必須聲明為數組,端口或參數數組必須與要傳遞的數組具有相同的布局(與數組復制的規則相同)。

pYYBAGPkl1-AUB43AADxwRPiVhI115.png

最初的Verilog語言只允許簡單的向量通過模塊端口,或傳遞到任務或函數參數。要傳遞上述示例中表數組的值,需要256個端口,數組的每個元素一個端口。

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

    關注

    14

    文章

    7523

    瀏覽量

    88649
  • Verilog
    +關注

    關注

    28

    文章

    1345

    瀏覽量

    109995
  • System
    +關注

    關注

    0

    文章

    165

    瀏覽量

    36887
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28334
收藏 人收藏

    評論

    相關推薦

    C語言中初始化的局部變量到底是多少

    C語言中,初始化的局部變量到底是多少?
    發表于 10-21 14:42 ?1967次閱讀

    變量 數組

    在AVR中,怎么定義一個變量數組?使得這個數組可在程序中給其賦值例:我在編程中定義了全局變量數組:volatile unsigned int
    發表于 05-05 16:29

    數組中添加變量

    我想把一個變量的值輸入到一個一維數組中,該怎么做呢?例如:數組的第二個值就代表輸入的變量值吧
    發表于 05-17 14:04

    labview的data dashboard中的下拉控件如何定義對應的網絡變量

    目前遇到的問題是data dashboard中想用下拉控件功能,但是在labview中如果新建一個字符串數組網絡變量的話,是可以搜到,但是僅僅是item string里有,和字符串數組關聯上之后,并不能起到控制的作用,僅僅會顯示
    發表于 07-15 07:24

    壓縮的彩條信號行頻圖

    壓縮的彩條信號行頻圖
    發表于 07-31 12:31 ?832次閱讀

    Java數組不始化的使用方法

    數組是大多數編程語言提供的一種復合結構,如果程序需要多個類型相同的變量時,就可以考慮定義一個數組。Java語言的數組變量是引用類型的
    發表于 04-03 15:32 ?4次下載

    JAVA教程之一維數組和二維數組的介紹和應用說明

    聲明一個數組就是要確定數組名、數組的維數和數組元素的數據類型。數組名是符合Java標識符定義規則的用戶自定義標識符,它是
    發表于 01-16 11:02 ?0次下載
    JAVA教程之一維<b class='flag-5'>數組</b>和二維<b class='flag-5'>數組</b>的介紹和應用說明

    指針與數組的詳細資料和實例程序免費下載

    指針變量來訪問數組中任一元素,通常將數組的首地址稱為數組的指針,而將指向數組元素的指針變量稱為指
    發表于 11-05 17:07 ?4次下載
    指針與<b class='flag-5'>數組</b>的詳細資料和實例程序免費下載

    單片機的常量和變量數組的詳細資料說明

    本文檔的主要內容詳細介紹的是單片機的常量和變量數組的詳細資料說明包括了:單片機的常量,單片機的變量,構造類型:數組,構造類型:結構體,構造類型:指針
    發表于 12-11 17:36 ?13次下載
    單片機的常量和<b class='flag-5'>變量</b>與<b class='flag-5'>數組</b>的詳細資料說明

    數組中的變量取值范圍如何進行糾正

    本文檔的主要內容詳細介紹的是數組變量取值范圍如何進行糾正。
    發表于 12-17 17:08 ?4次下載

    網絡變量壓縮數組

    數組的維度定義了數組可以存儲的元素總數。壓縮數組可以用任意數量的維度聲明,每個維度存儲指定數量的元素。聲明
    的頭像 發表于 05-20 10:14 ?1172次閱讀

    DECL:對變量、數組和常數進行聲明

    如果 CHAR 類型數組的所有數組元素都擁有相同的字符串,則不必單獨初始化每個數組元素。忽略右側的數組下標。(對于一維數組下標,不寫下標。)
    的頭像 發表于 07-10 10:27 ?3143次閱讀

    HDLBits: 在線學習SystemVerilog(三)-Problem 10-14

    集合中的每個網絡變量稱為數組元素。壓縮數組的每個元素的類型、數據類型和向量大小都完全相同。每
    的頭像 發表于 08-24 14:58 ?1251次閱讀

    C語言數組元素的指針

    C語言調用函數時虛實結合的方法都是采用“值傳遞”方式,當用變量名作為函數參數時傳遞的是變量的值,當用數組名作為函數參數時。 由于數組名代表的是
    的頭像 發表于 03-10 14:45 ?842次閱讀

    PHP中數組的使用方法!

    PHP中數組的使用方法! PHP是一種廣泛使用的網絡編程語言,它的數組功能非常強大且靈活。數組是一種數據結構,它允許我們在單個變量中存儲多個
    的頭像 發表于 01-12 15:11 ?513次閱讀