首页 > 其他分享 >数据类型-数组

数据类型-数组

时间:2023-11-02 19:23:44浏览次数:34  
标签:数据类型 数组 维度 bit unpack arry pack

1. 定宽数组:compile时确定

int arry[5:0]   equivalent to   int arry[6]

arry[5:0] = `{1,2,3,4,5,6}; arry[5:0] = `{6{6}}; arry[5:0] = `{1,2,3, default: 4}=`{1,2,3,4,4,4}

 //=====================================================================

2. 动态数组:simulation时确定,需要new[]分配空间、创建变量个数

int arry[];

arry = new[10]; //分配10个元素空间

foreach(arry[i]) arry[i] = 1;  //赋值

arry[5] =6;//把第5个元素改成6

 //=====================================================================

3. pack/unpack 合并/非合并数组

bit  [7:0] pack_aryy;

bit [7:0] [15:0] pack_arry;

bit [15:0] unpack_arry[7:0];

bit unpack_arry[7:0] [15:0];

从上面的arry定义可知:

-pack/unpack的区分

  数组大小(容量)的定义都放在数组名左侧为 pack arry;

  放在数组名右侧或两侧的为unpack arry;

-维度的区分:

 数组大小的定义放在数组名同一侧的按从左到右划分高维度->低维度

 放在数组名两侧的从数组名右侧开始,按从左到右划分高维度->低纬度

 

举例:

bit [2:0][5:0] arry 左侧高维度,左侧低维度,两维pack数组   [2]                                         [1 ]                                                   [0]

1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1
 3*6=18 bit    占1word即可

bit [5:0] arry[3] 同样右侧高维度,左侧低维度,3组6bit数据, 类似 bit [5:0]  clkcfg  design中的参数定义,只不过是1组6bit的数据

unpack [0]                                                   1 1 1 1 1 1
unpack [1]                                                   0 0 0 0 0 0
unpack [2]                                                   1 1 1 1 1 1

占 3word

 

 //=====================================================================

4. 数组访问

read/write use foreach or for 

foreach(arry[i])  arry[i] = i*2+i;

for(int i =0; i<$size(arry),i++)  arry[i] = i*2+i;

 pack 连续空间, 赋值简单,可直接copy, compare等操作

unpack 非连续空间, 赋值较复杂,copy,compare等需要相等结构形式的

标签:数据类型,数组,维度,bit,unpack,arry,pack
From: https://www.cnblogs.com/gy-IcPark/p/17786025.html

相关文章

  • Java数组_03数组执行原理
    1、运行主要用到的三个区: 2、执行原理: ......
  • 掌握JavaScript中数组遍历的7种方法
    作为JavaScript开发人员,熟悉数组的遍历和操作是非常重要的。数组遍历是处理和操作数组元素的基本需求之一。本文将介绍JavaScript中的10种常见数组遍历方法,帮助你成为数组操作的达人。数组的遍历for循环forEach方法for...of循环map方法reduce方法for...in循环filter方法for循环or循......
  • Java数组_01静态初始化数组
    1、初始化  2、访问数组数据 3、遍历数组 ......
  • 算法刷题记录-长度最小的子数组
    算法刷题记录-长度最小的子数组长度最小的子数组给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。示例1:输......
  • Python循环数组的方法
    Python的遍历数组的三种方式。遍历方式假设:nums=[4,5,6,10,1]第一种,forin的语法,这种语法很方便,但是在写Python算法里面用到的少fornuminnums:print(num)第二种是下标访问,range生成0到数组最大长度的下标数组forindexinrange(len(nums)):print(index,nu......
  • 按列取出二维数组
    按列取出二维数组int[]arr2=newint[row];for(inti=0;i<col;i++){//列数for(intj=0;j<row;j++){arr2[j]=arr[j][i];}}......
  • 花费最大金额-数组
    题目:双十一众多商品进行打折销售,小明想购买自己心仪的一些物品,但由于受购买资金限制,所以他决定从众多心仪商品中购买三件,而且想尽可能的花完资金,现在请你设计一个程序帮助小明计算尽可能花费的最大资金数额。输入描述输入第一行为一维整型数组M,数组长度小于100,数组元素记录单个......
  • 力扣2610. 转换二维数组(哈希表)
    给你一个整数数组 nums 。请你创建一个满足以下条件的二维数组:二维数组应该 只 包含数组 nums 中的元素。二维数组中的每一行都包含 不同 的整数。二维数组的行数应尽可能 少 。返回结果数组。如果存在多种答案,则返回其中任何一种。请注意,二维数组的每一行上可以......
  • (三)C#编程基础复习——数据类型
    C#语言中内置了一些基本的数据类型,数据类型用来指定程序中变量可以存储的数据的类型,C#中的数据类型可以大致分为三类:值类型(Valuetypes);引类型(Referencestypes);指针类型(Pointertypes);一、值类型值类型顾名思义就是有带数值的类型,C#中的值类型有非常多,值类型变量声明后,不......
  • java语言基础数组,方法,类相关知识点的梳理总结
     Java是一种强大的面向对象编程语言,具有丰富的语法和功能。以下是Java语言的一些基础知识点的总结:数组(Arrays):数组是一种用于存储相同数据类型元素的数据结构。声明数组:int[]numbers=newint[5];,这创建了一个包含5个整数的数组。访问数组元素:intfirstNumber=......