0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

網(wǎng)絡(luò)和變量的未壓縮數(shù)組

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-05-20 10:14 ? 次閱讀

數(shù)字硬件建模SystemVerilog(九)-網(wǎng)絡(luò)和變量的未壓縮數(shù)組

SystemVerilog有兩種類型的數(shù)組:壓縮數(shù)組和非壓縮數(shù)組。壓縮數(shù)組是連續(xù)存儲的位的集合,通常稱為向量。非壓縮數(shù)組是網(wǎng)絡(luò)或變量的集合。

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

未壓縮數(shù)組的基本聲明語法為:

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

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

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

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

Start_address 和 end_address可以是任何整數(shù)值,數(shù)組可以以地址0、地址512或被建模硬件所需的任何地址開始。起始地址和結(jié)束地址之間的范圍表示數(shù)組維度的大小(元素數(shù))。

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

[size]

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

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

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

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

訪問數(shù)組元素

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

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

數(shù)組索引也可以是網(wǎng)絡(luò)或變量的值,如下一個示例所示:

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

復(fù)制數(shù)組(陣列)

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

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

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

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

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

數(shù)組列表賦值

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

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

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

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

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

此數(shù)組分配相當(dāng)于以下各項的單獨分配:

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

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

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

數(shù)組元素的位選擇和部分選擇

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

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

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

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

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1634

    瀏覽量

    49144
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28388
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    417

    瀏覽量

    25960

原文標(biāo)題:SystemVerilog(九)-網(wǎng)絡(luò)和變量的未壓縮數(shù)組

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    指針數(shù)組和二維數(shù)組有沒有區(qū)別

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

    C語言數(shù)組應(yīng)用計算機導(dǎo)論A第6講:數(shù)組

    C語言數(shù)組應(yīng)用計算機導(dǎo)論A第6講:數(shù)組
    發(fā)表于 11-20 15:33 ?0次下載

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

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

    labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組

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

    卷積神經(jīng)網(wǎng)絡(luò)壓縮方法

    ,CNN模型的參數(shù)量和計算量也隨之劇增,這對硬件資源提出了嚴(yán)峻挑戰(zhàn)。因此,卷積神經(jīng)網(wǎng)絡(luò)壓縮方法成為了研究熱點。本文將從多個角度詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)壓縮方法,包括前端
    的頭像 發(fā)表于 07-11 11:46 ?366次閱讀

    BP神經(jīng)網(wǎng)絡(luò)在處理不連續(xù)變量時的應(yīng)用

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)是一種多層前饋神經(jīng)網(wǎng)絡(luò),廣泛應(yīng)用于各種領(lǐng)域的數(shù)據(jù)建模和預(yù)測任務(wù)。然而,BP神經(jīng)網(wǎng)絡(luò)在處理不連續(xù)變量時可能會遇
    的頭像 發(fā)表于 07-03 10:19 ?352次閱讀

    深入探索KUKA KRL中的數(shù)組應(yīng)用

    如果 CHAR 類型數(shù)組的所有數(shù)組元素都擁有相同的字符串,則不必單獨初始化每個數(shù)組元素。忽略右側(cè)的數(shù)組下標(biāo)。(對于一維數(shù)組下標(biāo),不寫下標(biāo)。)
    的頭像 發(fā)表于 04-18 10:37 ?1262次閱讀
    深入探索KUKA KRL中的<b class='flag-5'>數(shù)組</b>應(yīng)用

    鴻蒙TypeScript入門學(xué)習(xí)第11天【Array(數(shù)組)】

    數(shù)組對象是使用單獨的變量名來存儲一系列的值。 數(shù)組非常常用。
    的頭像 發(fā)表于 04-09 14:38 ?1169次閱讀
    鴻蒙TypeScript入門學(xué)習(xí)第11天【Array(<b class='flag-5'>數(shù)組</b>)】

    基于門控線性網(wǎng)絡(luò)(GLN)的高壓縮比無損醫(yī)學(xué)圖像壓縮算法

    實現(xiàn)基于門控線性網(wǎng)絡(luò)(GLN)的高壓縮比無損醫(yī)學(xué)圖像壓縮算法,以提高醫(yī)學(xué)圖像存儲和分發(fā)系統(tǒng)的效率。與“傳統(tǒng)”的基于上下文的數(shù)據(jù)壓縮算法相比,基于GLN的系統(tǒng)使用一組不同的上下文模型。
    的頭像 發(fā)表于 04-08 10:29 ?667次閱讀
    基于門控線性<b class='flag-5'>網(wǎng)絡(luò)</b>(GLN)的高<b class='flag-5'>壓縮</b>比無損醫(yī)學(xué)圖像<b class='flag-5'>壓縮</b>算法

    數(shù)組和鏈表在內(nèi)存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點

    數(shù)組和鏈表在內(nèi)存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點? 數(shù)組和鏈表是常見的數(shù)據(jù)結(jié)構(gòu),用于組織和存儲數(shù)據(jù)。它們在內(nèi)存中的存儲方式以及優(yōu)缺點方面存在一些顯著的差異。本文將詳細(xì)探討這些差異以及它們的優(yōu)缺點。 1.
    的頭像 發(fā)表于 02-21 11:30 ?1050次閱讀

    TC277如何指定該全局數(shù)組變量的存儲地址的對齊方式?

    定義全局數(shù)組變量,如何指定該全局數(shù)組變量的存儲地址的對齊方式
    發(fā)表于 02-19 07:37

    高性能無損數(shù)據(jù)壓縮FPGA IP,LZO無損數(shù)據(jù)壓縮IP

    LZOAccel-C是一個無損數(shù)據(jù)壓縮引擎的FPGA硬件實現(xiàn),兼容LZO 2.10標(biāo)準(zhǔn)。 Core接收壓縮的輸入數(shù)據(jù)塊,產(chǎn)生壓縮后的數(shù)據(jù)塊。Core使用合適的頭和尾封裝了
    的頭像 發(fā)表于 01-25 13:39 ?480次閱讀
    高性能無損數(shù)據(jù)<b class='flag-5'>壓縮</b>FPGA IP,LZO無損數(shù)據(jù)<b class='flag-5'>壓縮</b>IP

    Harmony 鴻蒙頁面級變量的狀態(tài)管理

    頁面級變量的狀態(tài)管理 @State、@Prop、@Link、@Provide、@Consume、@ObjectLink、@Observed和@Watch用于管理頁面級變量的狀態(tài)。 @State
    的頭像 發(fā)表于 01-25 10:42 ?600次閱讀
    Harmony 鴻蒙頁面級<b class='flag-5'>變量</b>的狀態(tài)管理

    modustoolbox在正常編譯中通過工程下增強了全局變量數(shù)組的長度后報錯了怎么解決?

    客戶使用modustoolboxdevelpcy8c6245azi-s3D72,在正常編譯中通過工程下增強了全局變量數(shù)組的長度,結(jié)果編譯報導(dǎo)不錯,初始化是內(nèi)存超越了。通過對比發(fā)現(xiàn).bss的大小最小是25292,如附件描述,請幫忙確認(rèn)識別本原因并提供解決方案,謝謝謝謝!
    發(fā)表于 01-25 06:58

    PHP中數(shù)組的使用方法!

    PHP中數(shù)組的使用方法! PHP是一種廣泛使用的網(wǎng)絡(luò)編程語言,它的數(shù)組功能非常強大且靈活。數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),它允許我們在單個變量中存儲多個
    的頭像 發(fā)表于 01-12 15:11 ?558次閱讀