那曲檬骨新材料有限公司

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

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

3天內不再提示

SystemVerilog中數組的賦值、索引和切片

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-10-20 10:13 ? 次閱讀

首先看下下面的這個示例:

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數組作為子程序的參數

數組可以作為參數傳遞給子程序,當數組作為值傳遞給子程序時,會將這個數組復制一份傳遞給子程序。

task trial (int a[3:1][3:1]); //’a’ is a two-dimensional array
 //(2-D unpacked)

上面是一個SystemVerilog task聲明的示例,該task會將一個2維unpacked數組作為參數值傳遞。

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)

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

    關注

    28

    文章

    1351

    瀏覽量

    110390
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    26027

原文標題:SystemVerilog中數組的賦值、索引和切片

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    創建唯一索引的SQL命令和技巧

    在創建唯一索引時,以下是一些SQL命令和技巧,可以幫助優化性能: 使用合適的索引類型:對于需要保證唯一性的列,使用UNIQUE索引來避免重復數據的插入。 這可以確保列的值是唯一的,同
    的頭像 發表于 01-09 15:21 ?77次閱讀

    Labivew 實現鼠標在數組中選中元素時,精準的顯示所在位置的行、列值方法

    在項目開發,遇到一個布爾的二維數組輸入控件,選中數組元素并索引出行列的操作,試過其他大佬的方法,不是特別精準,,嘗試一下還可以,分享給需要的朋友 *附件:選中二維
    發表于 12-21 18:07

    數組名之間可以直接賦值

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

    MATLAB的矩陣索引

    對矩陣進行索引是從矩陣中選擇或修改部分元素的一種方式。MATLAB 有幾種索引樣式,它們不僅功能強大、靈活,而且可讀性強、表現力強。矩陣是 MATLAB 用來組織和分析數據的一個核心組件,索引是以可理解的方式有效操作矩陣的關鍵。
    的頭像 發表于 09-05 09:28 ?537次閱讀
    MATLAB<b class='flag-5'>中</b>的矩陣<b class='flag-5'>索引</b>

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

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

    一文了解MySQL索引機制

    的呢?一起靜下心來,耐心看完這篇文章吧,干貨不啰嗦,相信你一定會有所收獲。 一、索引模型 模型也就是數據結構,常見的三種模型分別是哈希表、有序數組和搜索樹。 了解MySQL的朋友已經知道,現在MySQL默認使用的是InnoDB存儲引擎,使用的是
    的頭像 發表于 07-25 14:05 ?341次閱讀
    一文了解MySQL<b class='flag-5'>索引</b>機制

    嵌入式零長度數組基本操作方法

    C語言零長度數組,聽起來可能有點奇怪,因為它沒有分配內存空間,無法存儲數據。但實際上,零長度數組在Linux內核隨處可見。 零長度數組的定義 首先,我們要明白什么是零長度
    的頭像 發表于 05-11 08:49 ?1048次閱讀
    嵌入式<b class='flag-5'>中</b>零長度<b class='flag-5'>數組</b>基本操作方法

    深入探索KUKA KRL數組應用

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

    為什么指針之間不要隨意賦值呢?

    指針之間也不能隨意賦值
    的頭像 發表于 03-28 17:13 ?750次閱讀
    為什么指針之間不要隨意<b class='flag-5'>賦值</b>呢?

    隨機抽取SV數組的一個元素方法實現

    如果想從一個關聯數組隨機選取一個元素,需要逐個訪問它之前的元素,原因是沒辦法能夠直接訪問到第N個元素。上面的程序示范了如何從一個以整數值作為索引**的關聯數組
    的頭像 發表于 03-21 10:11 ?1112次閱讀
    隨機抽取SV<b class='flag-5'>數組</b><b class='flag-5'>中</b>的一個元素方法實現

    在Vivado Synthesis怎么使用SystemVerilog接口連接邏輯呢?

    SystemVerilog 接口的開發旨在讓設計中層級之間的連接變得更加輕松容易。 您可以把這類接口看作是多個模塊共有的引腳集合。
    的頭像 發表于 03-04 15:25 ?1024次閱讀
    在Vivado Synthesis<b class='flag-5'>中</b>怎么使用<b class='flag-5'>SystemVerilog</b>接口連接邏輯呢?

    mapgis如何給區屬性賦值

    地進行數據分析和可視化。 在MapGIS給區屬性賦值有多種方法,下面將詳細介紹其中的幾種常用方法。 1.手動賦值 手動賦值是最直接和簡單的方法。首先,在MapGIS
    的頭像 發表于 02-23 17:49 ?2402次閱讀

    proteus屬性賦值工具怎么用

    賦值工具的詳細使用方法。 一、打開Proteus軟件并建立電路圖 首先,打開Proteus軟件,并在工具欄上選擇“新建”。然后,在彈出的對話框中選擇電路圖的類型,例如“Schematic Capture”。 二、選擇元件添加到電路圖中 在Proteus軟件,可以從庫中選
    的頭像 發表于 02-23 17:19 ?4827次閱讀

    verilog同步和異步的區別 verilog阻塞賦值和非阻塞賦值的區別

    Verilog是一種硬件描述語言,用于設計和模擬數字電路。在Verilog,同步和異步是用來描述數據傳輸和信號處理的兩種不同方式,而阻塞賦值和非阻塞賦值是兩種不同的賦值方式。本文將詳
    的頭像 發表于 02-22 15:33 ?1833次閱讀

    數組和鏈表在內存的區別 數組和鏈表的優缺點

    數組和鏈表在內存的區別 數組和鏈表的優缺點? 數組和鏈表是常見的數據結構,用于組織和存儲數據。它們在內存的存儲方式以及優缺點方面存在一些
    的頭像 發表于 02-21 11:30 ?1136次閱讀
    大发888国际娱乐场| 百家乐官网打印程序| 百家乐乐赌| 澳门百家乐博彩能做到不输吗| 破战百家乐官网的玩法技巧和规则| 最好的百家乐官网论坛| 球探比分 | 九游棋牌大厅| 太阳城亚州| 送58百家乐的玩法技巧和规则| 院子围墙砌18还是24| 皇冠百家乐官网的玩法技巧和规则| 百家乐官网的路图片| 博彩通3333| 大佬娱乐城怎么样| 新利| k7娱乐城| 富顺县| 澳门百家乐官网公司| 乌兰察布市| 阜南县| 百家乐官网视频中国象棋| 在线百家乐纸牌游戏| 百家乐八卦投注法| 茅台百家乐的玩法技巧和规则| 百家乐tt娱乐场开户注册| 百家乐深圳广告| 百家乐真人百家乐赌博| 澳门百家乐赌场| 百家乐哪家信誉好| 百家乐赢钱| 澳门百家乐注册| 大发888官方ylc8| 乐百家国际娱乐城| 百家乐官网视频看不到| 澳门百家乐官网一把决战输赢| 百家乐官网电子游戏试| 百家乐官网发牌规| 全景网百家乐官网的玩法技巧和规则| 百家乐看牌技巧| 大地百家乐的玩法技巧和规则|