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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

網絡和變量的未壓縮數組

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-05-20 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

2694f634-d7d6-11ec-bce3-dac502259ad0.png

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

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

26a77ee4-d7d6-11ec-bce3-dac502259ad0.png

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

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

[size]

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

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

26b89e40-d7d6-11ec-bce3-dac502259ad0.png

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

訪問數組元素

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

271d1ea6-d7d6-11ec-bce3-dac502259ad0.png

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

275837fc-d7d6-11ec-bce3-dac502259ad0.png

復制數組(陣列)

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

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

27aa9128-d7d6-11ec-bce3-dac502259ad0.png

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

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

數組列表賦值

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

27e54750-d7d6-11ec-bce3-dac502259ad0.png

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

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

284c7cfe-d7d6-11ec-bce3-dac502259ad0.png

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

287a0b06-d7d6-11ec-bce3-dac502259ad0.png

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

28e0bd6a-d7d6-11ec-bce3-dac502259ad0.png

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

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

291f81bc-d7d6-11ec-bce3-dac502259ad0.png

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

294e0ec4-d7d6-11ec-bce3-dac502259ad0.png

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

審核編輯 :李倩

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

    關注

    1

    文章

    1663

    瀏覽量

    50280
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28984
  • 數組
    +關注

    關注

    1

    文章

    420

    瀏覽量

    26628

原文標題:SystemVerilog(九)-網絡和變量的未壓縮數組

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    神經網絡壓縮框架 (NNCF) 中的過濾器修剪統計數據怎么查看?

    無法觀察神經網絡壓縮框架 (NNCF) 中的過濾器修剪統計數據
    發表于 03-06 07:10

    嵌入式系統中的代碼優化與壓縮技術

    量,例如將一些不隨循環變量變化的計算移出循環,能夠降低計算開銷。同時,合理設置循環條件,避免不必要的循環迭代。如在一個遍歷數組查找特定元素的循環中,提前判斷數組邊界,一旦找到目標元素立即終止循環,而
    發表于 02-26 15:00

    LZO Data Compression,高性能LZO無損數據壓縮加速器介紹,FPGA&ASIC

    LZOAccel-C是一個無損數據壓縮引擎的FPGA硬件實現,兼容LZO 2.10標準。Core接收壓縮的輸入數據塊,產生壓縮后的數據塊。輸入的數據塊可以被分段,并且不同數據塊的分段
    的頭像 發表于 01-13 12:41 ?652次閱讀
    LZO Data Compression,高性能LZO無損數據<b class='flag-5'>壓縮</b>加速器介紹,FPGA&amp;ASIC

    數組的下標為什么可以是負數

    最近有同學發來這樣一段代碼,并提出一個問題,數組的下標為什么可以是負數? ? ? #include int main(){ const char *s = "helloworld"; const
    的頭像 發表于 12-20 11:18 ?520次閱讀

    Linux文件壓縮打包的各種姿勢

    壓縮,然后在進行傳輸。 首先:壓縮后的文件會比壓縮前的文件小。一個28G的文件夾壓縮后能達到6G?其次:多個文件傳輸很慢,但單個文件傳輸會很快,同時還能節省
    的頭像 發表于 12-02 09:25 ?634次閱讀

    數組名之間可以直接賦值嗎

    數組之間的賦值能不能直接使用等于號?比如這樣的代碼。 int main(){ int a[5] = {1, 2, 3, 4, 5}; int b[5] = {0}; b = a
    的頭像 發表于 11-26 11:23 ?649次閱讀

    指針數組和二維數組有沒有區別

    指針數組和二維數組有沒有區別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][6
    的頭像 發表于 11-24 11:12 ?553次閱讀

    C語言數組應用計算機導論A第6講:數組

    C語言數組應用計算機導論A第6講:數組
    發表于 11-20 15:33 ?1次下載

    圖紙模板中的文本變量

    “ ?文本變量和系統自帶的內置變量,可以幫助工程師靈活、高效地配置標題欄中的信息,而不用擔心模板中的文字對象被意外修改。 ? ” 文本變量的語法 文本變量以?${VARIABLENAM
    的頭像 發表于 11-13 18:21 ?685次閱讀
    圖紙模板中的文本<b class='flag-5'>變量</b>

    如何在文本字段中使用上標、下標及變量

    在KiCad的任何文本字段中,都可以通過以下的方式實現上標、下標、上劃線以及顯示變量及字段值的描述: 文本變量“文本變量”可以在 原理圖設置->工程->文本變量 中設置。下圖中設置了一
    的頭像 發表于 11-12 12:23 ?690次閱讀
    如何在文本字段中使用上標、下標及<b class='flag-5'>變量</b>

    【BearPi-Pico H3863星閃開發板體驗連載】LZO壓縮算法移植

    偶然的情況下,看到了代碼存在沒有使用的變量或者數組會導致編譯報錯,在仔細檢查代碼,修改之后編譯終于過了。 不知道是否有配置把代碼中使用的變量數組
    發表于 11-10 21:45

    Linux環境變量配置方法

    Linux上環境變量配置分為設置永久變量和臨時變量兩種。環境變量設置方法同時要考慮環境Shell類型,不同類型的SHELL設置臨時變量方法和
    的頭像 發表于 10-23 13:39 ?762次閱讀

    壓縮算法的類型和應用

    壓縮算法是一種通過減少數據量來節省存儲空間或傳輸數據的技術。壓縮算法可以分為兩種類型:有損壓縮和無損壓縮。
    的頭像 發表于 10-21 13:50 ?964次閱讀

    labview字符串數組轉化為數值數組

    在LabVIEW中,將字符串數組轉換為數值數組是一項常見的任務,尤其是在處理數據采集、信號處理或用戶輸入時。 1. 理解LabVIEW的數據類型 在開始之前,了解LabVIEW中的數據類型是非
    的頭像 發表于 09-04 17:47 ?5762次閱讀

    面試???1:函數指針與指針函數、數組指針與指針數組

    在嵌入式開發領域,函數指針、指針函數、數組指針和指針數組是一些非常重要但又容易混淆的概念。理解它們的特性和應用場景,對于提升嵌入式程序的效率和質量至關重要。一、指針函數與函數指針指針函數:定義:指針
    的頭像 發表于 08-10 08:11 ?1493次閱讀
    面試常考+1:函數指針與指針函數、<b class='flag-5'>數組</b>指針與指針<b class='flag-5'>數組</b>
    主站蜘蛛池模板: 亚洲中文在线偷拍 | 一本道在线综合久久88 | av在线观看网站免费 | 人人干人人插 | 与邻居换娶妻子2在线观看 瑜伽牲交AV | 美女厕所撒尿ass | 亚洲AV精品无码国产一区 | 蜜柚免费视频高清观看在线 | 日本免费无码A专区在线观看 | 色 花 堂 永久 网站 | 国产伦子沙发午休系列资源曝光 | 成人国产一区 | 99亚偷拍自图区亚洲 | 日韩欧美精品有码在线播放免费 | 99热在线精品免费全部my | 学生无码AV一区二区三区 | 国产AV精品久久久毛片 | A片毛片免费视频在线看 | 伊人影院2019 | 久久婷婷国产五月综合色啪最新 | 国产网址在线观看 | www.青青草 | 久久精品国产亚洲AV影院 | SM调教贱屁股眼哭叫求饶H | 国产成人无码一区AV在线观看 | 后入到高潮免费观看 | 亚洲午夜久久久精品影院 | 免费视频网站嗯啊轻点 | 亚洲在线无码免费观看 | 王晶经典三级 | 热久久免费频精品99热 | 日本电影护士 | 黑粗硬大欧美在线视频 | 久久re视频精品538在线 | 国产麻豆精品传媒AV国产在线 | 真人做受120分钟免费看 | 国产成人免费观看 | 精品无人区一区二区三区 | 凹凸精品视频分类视频 | metart中国撒尿人体欣赏 | 动漫美女被羞羞动漫怪物 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品