在Verilog中我们经常会使用到数组,但是在Verilog中定义的数组都是静态的数组,即数组的大小在编译的时候就确定下来了,这时就存在一种情况,当定义数组时指定了对应数组的大小,而实际使用时可能并不一定要使用定义时指定的那么大的数组,这时就会造成数组空间的浪费。为了减小空间的浪费,在SystemVerilog中引入了动态数组结构,动态数组大小的确定是在仿真的过程中根据需要动态分配指定的,不再像静态数组那样在声明时就要指定好,这样就可以根据具体需要指定数组大小从而避免存储空间的浪费。本文将通过示例,说明动态数组在SystemVerilog中如何进行定义和常用方法如何使用。
1 动态数组声明格式
data_type array_id[];
其中
data_type为该动态数组中元素的类型;
array_id为该动态数组的标识符或者成为动态数组名;
2 动态数组常用方法
2.1 new
动态数组在使用前可以通过new[number]为其分配空间,其格式如下:
array_id.new[number];
其中
array_id为数组名;
number为指定的数组大小(容量);
【示例】
【仿真结果】