首先看下下面的這個示例:
module PU;
int A[2:0][3:0][4:0], B[2:0][3:0][4:0], C[5:0][4:0];
initial
begin
A[0][2][4] = 1024; //row 0, column 2, element #4
//display index #4 (i.e., 5th element)
$display("A[0][2][4]=",A[0][2][4]);
//display 5 elements of row 0, column 2
$display("A[0][2]=",A[0][2]);
//display row 0 (4 columns; 5 elements each)
$display("A[0]=",A[0]);
//display 3 rows * 4 columns of 5 elements each
$display("A=",A);
$display("
");
B[1][1][1]=512; //row 1; column 1; element #1
// assign a subarray composed of fve ints
A[2][3] = B[1][1];
//display 5 elements of row 2, column 3
$display("A[2][3]=",A[2][3]);
B[0][0][0]=128; //Assign only to the last unpacked element
A[1] = B[0];
$display("
");
$display("A[1]=",A[1]); //display row 1 (4 columns; 5
elements each)
C[5][4]=64;
A[0][1] = C[5];
$display("
");
$display("C[5]=",C[5]);
$display("A[0][1]=",A[0][1]);
end
endmodule
仿真log:
A[0][2][4]= 1024 //index #4 (i.e., 5th element)
A[0][2]='{1024, 0, 0, 0, 0} //5 elements of row 0, column 2
A[0]='{'{0, 0, 0, 0, 0}, '{1024, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}}
//4 columns of row 0 with value assigned to column 2, element #4 (5th position)
A='{'{'{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}}, '{'{0, 0, 0, 0,
0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}}, '{'{0, 0, 0, 0, 0}, '{1024, 0, 0,
0, 0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}}}
//Entire 3 rows*4 columns (12 entries – 5 elements each with value assigned to
column 2, element #5)
A[2][3]='{0, 0, 0, 512, 0} // display 5 elements of row 2, column 3
A[1]='{'{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 0}, '{0, 0, 0, 0, 128}}
// display row 1 (4 columns; 5 elements each)
C[5]='{64, 0, 0, 0, 0} //Row 5, 5 elements with index 4 assigned
A[0][1]='{64, 0, 0, 0, 0} //Row 0, column 1 of 5 elements
V C S S i m u l a t i o n R e p o r t
Packed和Unpacked數(shù)組作為子程序的參數(shù)
數(shù)組可以作為參數(shù)傳遞給子程序,當(dāng)數(shù)組作為值傳遞給子程序時,會將這個數(shù)組復(fù)制一份傳遞給子程序。
task trial (int a[3:1][3:1]); //’a’ is a two-dimensional array
//(2-D unpacked)
上面是一個SystemVerilog task聲明的示例,該task會將一個2維unpacked數(shù)組作為參數(shù)值傳遞。
int b[3:1][3:1]; // OK: same type, dimension, and size
int b[1:3][0:2]; // OK: same type, dimension, & size
// (different ranges)
logic b[3:1][3:1]; // ERROR: incompatible element type
// (logic vs. int)
event b[3:1][3:1]; // ERROR: incompatible type (event
vs. int)
int b[3:1]; // ERROR: incompatible number of dimensions
int b[3:1][4:1]; // ERROR: incompatible size (3 vs. 4)
聲明:本文內(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)注
30文章
1374瀏覽量
114517 -
數(shù)組
+關(guān)注
關(guān)注
1文章
420瀏覽量
27351
原文標(biāo)題:SystemVerilog中數(shù)組的賦值、索引和切片
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
PCB切片分析新方案:Bamtone MS90集成AI的智能測量解決方案
在電子制造業(yè)飛速發(fā)展的今天,PCB切片分析作為評估PCB內(nèi)部結(jié)構(gòu)質(zhì)量的關(guān)鍵手段,正經(jīng)歷著一場由人工智能技術(shù)驅(qū)動的深刻變革。作為國內(nèi)領(lǐng)先的PCB測量儀器、智能檢測設(shè)備等專業(yè)解決方案供應(yīng)商——班通科技
Bamtone S/SV系列自動取樣機:一種PCB電路板自動切片取樣機及取樣方法
在電子制造中,傳統(tǒng)PCB切片取樣依賴于手工操作,不僅效率低下,且存在取樣位置偏差、樣品損傷率高等問題,難以滿足現(xiàn)代電子制造業(yè)對高精度、高效率質(zhì)量檢測的需求。作為國內(nèi)領(lǐng)先的PCB測量儀器、智能檢測設(shè)備
數(shù)組的初體驗
程序中也需要容器,只不過該容器有點特殊,它在程序中是一塊連續(xù)的,大小固定并且里面的數(shù)據(jù)類型一致的內(nèi)存空間,它還有個好聽的名字叫數(shù)組。可以將數(shù)組理解為大小固定,所放物品為同類的一個購物袋
發(fā)表于 11-25 08:06
二維數(shù)組介紹
] = { {1, 2,3}, {4, 5,6},{7, 8, 9}};array[1][1] = 5;
或許你以為在內(nèi)存中 array 數(shù)組會像一個二維矩陣:
123456789
可實際上它是這樣
發(fā)表于 11-25 07:42
三維成像技術(shù):共聚焦成像vs光片成像的光學(xué)切片
隨著科技的進步,多種顯微成像技術(shù)應(yīng)運而生,其中共聚焦顯微鏡和光片顯微鏡因其優(yōu)異的光學(xué)切片能力備受關(guān)注,這兩類設(shè)備分別依托共聚焦成像與光片成像技術(shù)實現(xiàn)切片功能,且在成像原理、適用場景及實際應(yīng)用效果上
RVB 位操作指令集擴展(一)
Zba:
Zba指令可以通過將移位索引添加到基址,實現(xiàn)加速生成使用無符號字大小索引和XLEN大小索引索引為基本類型數(shù)組(半字、字、雙字)的
發(fā)表于 10-22 08:11
Hudi系列:Hudi核心概念之索引(Indexs)
上的Instant action操作類型 ?1.4 時間線上State狀態(tài)類型 ?1.5 時間線官網(wǎng)實例 ?二. 文件布局 ?三. 索引 3.1 簡介 3.2 對比其它(Hive)沒有索引的區(qū)別 3.2
華納云香港服務(wù)器數(shù)據(jù)庫索引優(yōu)化策略
在香港服務(wù)器環(huán)境中,數(shù)據(jù)庫索引優(yōu)化是提升整體性能的關(guān)鍵因素。隨著企業(yè)數(shù)據(jù)量的不斷增長,高效的索引管理能顯著提高查詢速度并降低服務(wù)器負載。本文將深入探討如何針對香港服務(wù)器(特別是其獨特的地理和法律要求
請問keil+Env怎么把很大的數(shù)組定義到SDRAM中?
keil+Env怎么把很大的數(shù)組定義到SDRAM中?
RTT自帶的SDRAM程序運行正常,能夠申請里面的空間。
但是沒有辦法把很大的數(shù)組——ltdc_lcd_framebuf[1280][800]
定義到SDRAM
發(fā)表于 10-11 16:10
CUBEIDE調(diào)試過程中,如何將數(shù)組仲的數(shù)據(jù)拷貝到電腦?
請問,有什么辦法可以在CUBEIDE 調(diào)試過程中,將數(shù)組的數(shù)據(jù)拷貝到電腦上去?
發(fā)表于 09-09 07:20
aicube的n卡gpu索引該如何添加?
請問有人知道aicube怎樣才能讀取n卡的gpu索引呢,我已經(jīng)安裝了cuda和cudnn,在全局的py里添加了torch,能夠調(diào)用gpu,當(dāng)還是只能看到默認(rèn)的gpu0,顯示不了gpu1,gpu0是集顯,訓(xùn)練速度太感人了
你只有一塊英偉達的卡,aicube不支持AMD的顯卡,所以搜索到的只有一張卡
發(fā)表于 07-25 08:18
matlab appdesigner 表格組件賦值問題,求助
如上圖所示,我在用matlab2021Ra APP模塊進行編程的時候,想在表格中調(diào)入自己編寫的結(jié)構(gòu)數(shù)組,我從網(wǎng)上AI了一個程序語句,看著沒問題,但是就是給表格賦值不了,還請各位大神幫忙看一下這個是怎么回事,我是初學(xué)者,請各位幫
發(fā)表于 07-12 11:45
如何使用閃存來保存 CYBT-343026 中的數(shù)組等數(shù)據(jù)?
您好,我正在嘗試使用 CYBT-343026 構(gòu)建一塊電路板。
我想將數(shù)據(jù)存儲在一個簡單的數(shù)組中。T
即使斷電,數(shù)據(jù)也應(yīng)該保留。我可以使用EEPROM,但由于數(shù)據(jù)非常簡單,所以我想使用內(nèi)部閃存。
有沒有辦法在內(nèi)部閃存中存儲大約2
發(fā)表于 06-25 06:33
在testbench中如何使用阻塞賦值和非阻塞賦值
本文詳細闡述了在一個testbench中,應(yīng)該如何使用阻塞賦值與非阻塞賦值。首先說結(jié)論,建議在testbench中,對時鐘信號(包括分頻時鐘)使用阻塞
給uint32_t數(shù)組填充整型值,除使用循環(huán)賦值外有沒有c庫函數(shù)可以實現(xiàn)?
給uint32_t數(shù)組填充整型值,除使用循環(huán)賦值外有沒有c庫函數(shù)可以實現(xiàn)
發(fā)表于 03-07 17:05
SystemVerilog中數(shù)組的賦值、索引和切片
評論