verilog中数组的定义_systemverilog中的数组操作

sv中的数组基本操作:/*

Exercsise platform :     Questa Sim 10.1b

*/

class Array;

int array[9:0] ;

function new();

for( int i = 0 ; i 

array[i] = i ;

/*

array = '{'{1,2,3},'{5{5}},default:0};

无法使用这种基本的赋值方式,可能是编译器的版本过低了

*/

endfunction:new

function void print();

foreach(array[i]) begin

$display(" array[%d] = %d ",i,array[i]);

end

for ( int i = 0 ; i 

$write(" ** ");

end

$display();

endfunction:print

function void funcs();

int pos[$] ;

//   缩减操作 xor , or , and ,  xnor  , sum , product 等

$display("the sum is %d ",array.sum());

$display("the and is %d ",array.and());

$display("the  or is %d ",array.or() );

$display("the xor is %d ",array.xor());

$display("the product is %d ",array.product());

//   索引操作:取得相应的所需要的数组原素位置

$display(" max value is %d ",array.max()[0]);

$display(" min value is %d ",array.min()[0]);

array = array.unique();

print();       //  在类中时,调用自己类的函数,可以直接调用。这点与cpp相同

pos = array.find with ( item == 7 ) ;

//  find 有多种变体: find_first   find_last  find_first_index   find_last_index

$display(" pos : %d ? value: %d ",pos[0],array[pos[0]]);

//  排序操作: sort ,  rsort  , reverse , shuffle ,

// 其中 sort ,rsort  可以与with相结合,根据with后的条件排序

array.shuffle();

$display("shuffled:");

print();

array.sort();

$display("Sorted:");

print();

array.rsort();

$display("Resorted:");

print();

array.reverse();

$display("Reversed:");

print();

endfunction:funcs

endclass:Array

module top;

Array array;

int arr[] ;     //   动态数组的声明

initial begin

//  initial process

array=new();

array.print();

array.funcs();

arr = new[20];   //   分配内存大小</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值