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

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

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

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

size()和$size這兩種方式有什么樣的區(qū)別呢?

sanyue7758 ? 來源:硅芯思見 ? 2023-03-23 16:53 ? 次閱讀

在使用SystemVerilog或者UVM進行編碼的過程中,經(jīng)常會用到數(shù)組(包括隊列等),經(jīng)常需要對這些數(shù)組進行遍歷,有時候我們?yōu)榱吮闅v這些數(shù)組需要獲取這些數(shù)組有多少個元素之后才會使用for循環(huán)對數(shù)組進行遍歷,為了獲取到數(shù)組中元素的個數(shù),經(jīng)常會用到“$size(數(shù)組名)”和“數(shù)組名.size”兩種方式,那么同樣是獲取數(shù)組元素個數(shù)會存在兩種方式呢?這兩種方式有什么樣的區(qū)別呢?下面我們通過示例進行說明。

1 $size()

$size()函數(shù)是用來查詢指定數(shù)組指定維的元素數(shù),函數(shù)返回值為integer型,該函數(shù)有兩個參數(shù),第一個參數(shù)數(shù)組名,第二個參數(shù)為要查詢的數(shù)組的維數(shù)表達式,其中第二個參數(shù)為可選,默認缺省值為1.

【示例】

b2369314-c957-11ed-bfe3-dac502259ad0.png

仿真結(jié)果】

b26a10c2-c957-11ed-bfe3-dac502259ad0.png

示例中,“num=$size(arr)”沒有指定要查詢數(shù)組的哪一維,則此時默認是查詢arr第一維共有2個元素,與“num1=$size(arr,1)”相同,即如果使用$size()時僅指定了數(shù)組名,則默認查詢的是數(shù)組第一維的元素數(shù)目;

“num0=$size(arr,0)”中,因為數(shù)組arr并沒有第0維,所以此時$size()返回為0;

“num2=$size(arr,2)”中,指定查詢數(shù)組第2維,示例中第2維索引為“[0:2]”,所以此時查詢返回值為3;

“num3=$size(arr,3)”中,指定查詢數(shù)組第3維,示例中第3維索引為“[3:0]”,所以此時查詢返回值為4;

“num4=$size(arr,4)”中,指定查詢數(shù)組第4維,示例中第4維索引為“[4:0]”,所以此時查詢返回值為5;

可見,$size()可以通過指定函數(shù)的第二個參數(shù)查詢數(shù)組指定維中包含的元素數(shù)目;雖然$size()可以返回數(shù)組對應(yīng)維數(shù)的元素個數(shù),但是前提是該維數(shù)要有對應(yīng)的存儲空間分配,否則將會出現(xiàn)一些不期望的問題。如下例。

【示例】

b27692e8-c957-11ed-bfe3-dac502259ad0.png

【仿真結(jié)果】

b2880406-c957-11ed-bfe3-dac502259ad0.png

示例中,“num1=$size(arr,2)”獲取數(shù)組第2維元素個數(shù),但是此時第二維并沒有完全分配空間,所以此時在編譯階段就報錯了。雖然代碼第6行“arr[2]=new[4]”,但這只是給了數(shù)組arr第1維中第2個元素對應(yīng)的動態(tài)數(shù)組分配了4個存儲空間,并沒有給arr數(shù)組第2維所有的元素分配空間,所以此時如果訪問數(shù)組第1維第2個元素中包含多少個元素是可以查詢到的。如下例。

【示例】

b2a123f0-c957-11ed-bfe3-dac502259ad0.png

【仿真結(jié)果】

b2b76048-c957-11ed-bfe3-dac502259ad0.png

示例中,在查詢時需要注意此時$size()函數(shù)的第一個參數(shù)要指定為數(shù)組arr第1維中第2個元素,此時編譯沒有問題主要就是因為對于arr第1維中第2個元素中對應(yīng)的動態(tài)數(shù)組進行空間的分配。所以在使用$size()函數(shù)時,一定要注意要訪問的維度對應(yīng)的數(shù)組元素的空間是否已經(jīng)分配存在。

2數(shù)組名.size()

方法原型如下:

function int size();

該函數(shù)的調(diào)用方式是通過“數(shù)組名.size()”的方式調(diào)用,不能在size()函數(shù)中指定參數(shù)列表。

【示例】

b2c0ecbc-c957-11ed-bfe3-dac502259ad0.png

【仿真結(jié)果】

b2e0a34a-c957-11ed-bfe3-dac502259ad0.png

示例中,定義了一個定寬數(shù)組arr,然后通過“數(shù)組名.size()”的方式獲取數(shù)組中元素的個數(shù),但是這是編譯報錯,這是因為在SystemVerilog中已經(jīng)不支持對于定寬數(shù)組通過“數(shù)組名.size()”的方式獲取數(shù)組中元素的個數(shù)。但是對于動態(tài)數(shù)組、關(guān)聯(lián)數(shù)組、隊列還是可以使用的。如下例。

【示例】

b2ed4f64-c957-11ed-bfe3-dac502259ad0.png

【仿真結(jié)果】

b308663c-c957-11ed-bfe3-dac502259ad0.png

示例中,分別聲明了動態(tài)數(shù)組、隊列和關(guān)聯(lián)數(shù)組這些非定寬數(shù)組,對這些非定寬數(shù)組通過“數(shù)組名.size()”的方式獲取到了數(shù)組中元素的個數(shù)分別為4,5,6,可見“數(shù)組名.size()”的使用僅限于非定寬類數(shù)組。那么對于這類數(shù)組可不可以使用$size()方法呢?請看下例。

【示例】

b3170ca0-c957-11ed-bfe3-dac502259ad0.png

【仿真結(jié)果】

b3263aea-c957-11ed-bfe3-dac502259ad0.png

示例中,通過$size()方法可以獲得動態(tài)數(shù)組、隊列和關(guān)聯(lián)數(shù)組這些非定寬數(shù)組所包含的元素的個數(shù),但是在使用時,一定要注意對于元素空間的開辟

從上數(shù)這幾個示例可以看到,對于非定款數(shù)組獲取數(shù)組元素個數(shù)時可以使用size()方法和$size,但是對于定寬數(shù)組各維元素個數(shù)的獲取只能通過$size()方法,同時在使用這些方法時,需要注意數(shù)組元素空間的開辟。





審核編輯:劉清

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

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110162
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    19193

原文標題:size()和$size到底用哪個

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

收藏 人收藏

    評論

    相關(guān)推薦

    這兩種讀法什么區(qū)別,可以達到相同的效果嗎?求助

    這兩種讀法什么區(qū)別,可以達到相同的效果嗎?用串口調(diào)試助手(不連接硬件的情況下)是不是只能檢測到寫指令,而檢測不到讀指令?
    發(fā)表于 08-24 08:48

    求助:請問這兩種對電源處理方式區(qū)別和它們的用法。

    請問這兩種對電源處理方式區(qū)別和它們的用法。
    發(fā)表于 07-24 16:43

    請問C6748下的兩種DSP開發(fā)方式什么區(qū)別

    各位開發(fā)者: 大家好。我使用的DSP開發(fā)板為TMDXLCDK6748,看了TI公司提供的資料,在開發(fā)板上開發(fā)程序主要有兩種方式:一是裸機開發(fā),需要安裝StarterWare,另一
    發(fā)表于 01-14 14:12

    在DCDC芯片規(guī)格書中遇到電源的整流方式,有的是異步整流有的是同步整流。這兩種整流方式什么不同

    經(jīng)常會在DCDC芯片規(guī)格書中遇到電源的整流方式,有的是異步整流有的是同步整流。這兩種整流方式什么不同,各自又有什么優(yōu)缺點
    發(fā)表于 03-12 14:05

    電源保護電路的兩種PCB Layout方式區(qū)別嗎?

    一、下圖是電源輸入部分的電路:見下圖二、這部分電路,以下有兩種PCB layout,請問:1、這兩種方式是否區(qū)別?2、
    發(fā)表于 03-14 07:35

    請問小車轉(zhuǎn)向兩種方式什么優(yōu)缺點?

    我知道的小車轉(zhuǎn)向常見的兩種方式,一是通過舵機控制轉(zhuǎn)向,另一是通過控制個輪子的轉(zhuǎn)速,通過轉(zhuǎn)
    發(fā)表于 05-21 02:37

    這兩種放大電路什么區(qū)別

    這兩種放大電路什么區(qū)別
    發(fā)表于 07-06 09:23

    請問TPS74201和TPS74301這兩種LDO的主要區(qū)別是什么?

    小弟問題有點多……1、請問TPS74201和TPS74301這兩種LDO的主要區(qū)別是什么?我看了datasheet,感覺這兩種芯片的性能基本一。2、LDO的靜態(tài)電流主要影響什么?
    發(fā)表于 07-16 11:21

    兩種芯片的區(qū)別

    我想知道28027和28034這這兩種芯片什么區(qū)別或者聯(lián)系?希望各位大佬能夠盡量講解得通俗易懂一些,剛開始學(xué)習(xí),有點懵,感謝感謝
    發(fā)表于 06-18 20:27

    ROM和RAM這兩種寄存器的區(qū)別是什么

    ROM或者對于玩電腦的人并不陌生,什么內(nèi)存3G(內(nèi)存就是RAM),硬盤100G(硬盤就是ROM)單片機里面和電腦一ROM和RAM之分..那這兩種寄存器的區(qū)別是什么
    發(fā)表于 03-01 07:35

    CH9141的bleuart和wchblelib這兩種庫都可以用嗎,什么區(qū)別

    CH9141兩種庫,bleuart 和 wchblelib,這兩種庫都可以用嗎,什么區(qū)別
    發(fā)表于 08-03 07:24

    常見的ARM架構(gòu)分為兩種是M系列另外一是A系列,這兩種什么區(qū)別啊?

    現(xiàn)在市面上常見的ARM架構(gòu)分為兩種是M系列另外一是A系列,這兩種什么區(qū)別啊,用的時候他們
    發(fā)表于 10-26 07:00

    為什么嵌入式C語言中的size不等于所有成員size之和

    結(jié)構(gòu)體在C語言程序開發(fā)中,是不可或缺的語法。不過,相信不少C語言初學(xué)者遇到過這樣的問題:為什么結(jié)構(gòu)體的 size 有時不等于它的所有成員的 size 之和
    發(fā)表于 08-19 11:50 ?1322次閱讀
    為什么嵌入式C語言中的<b class='flag-5'>size</b>不等于所有成員<b class='flag-5'>size</b>之和

    單片機的兩種清0方式什么區(qū)別

    閱讀單片機文檔的時候一般寄存器是rw類型,還有一些是r或者w,對于一些特殊寄存器的置1是由硬件自動實現(xiàn)的,比如標志位flag、中斷int,但清0還是需要通過軟件進行操作,清0方式兩種,寫1清0,寫0清0,
    發(fā)表于 11-02 09:00 ?2758次閱讀

    異步感應(yīng)和永磁同步電機這兩種什么優(yōu)缺點

    純電動汽車上經(jīng)常會看到配備異步感應(yīng)電機和永磁同步電機的車型。那這兩種電機技術(shù)什么優(yōu)缺點?隨著小星通過蔚來ES6車型和蔚來汽車發(fā)布的相關(guān)專利來聊一聊吧。
    發(fā)表于 07-13 15:32 ?2135次閱讀
    異步感應(yīng)和永磁同步電機<b class='flag-5'>這兩種</b><b class='flag-5'>有</b>什么優(yōu)缺點<b class='flag-5'>呢</b>?
    主站蜘蛛池模板: 亚洲日韩中文字幕区| 护士日本xx厕所| chinese极品嫩模videos| 冰山高冷受被c到哭np双性| 99热久久这里只有精品视频| 火影小南被爆羞羞网站| 欧美性爱-第1页| 么公一夜要了我一八次视频HD| 久久久高清国产999尤物| 日本久久中文字幕精品| 亚洲精品第一页中文字幕| 红番阁免费观看| qvod 在线| 午夜DV内射一区二区| 伊人久久五月丁婷婷| 欧美一区二区三区久久综| 久久www免费人成高清| 国产精品日本一区二区在线播放 | 吸奶舔下面| 日本wwwxx爽69护士| 蜜臀AV精品一区二区三区| 九九热国产视频| 99热在线播放| 中国字字幕在线播放2019| 亚洲女人毛片| 星空无限传媒视频在线观看视频| 日韩精品无码久久一区二区三| 摸老师丝袜小内内摸出水| 久久是热频国产在线| 和姐姐做插得很深| 国产做国产爱免费视频| 国产精品婷婷五月久久久久| 高清欧美videos sexo| 啊片色播电影| yw193.c国产在线观看| qvod 韩国| 纯肉高H种马艳遇风流多| 草699一码二码三码四码| 被窝国产理论一二三影院| 绑着男军人的扒开内裤| 超碰97人在线视频|