[SystemVerilog] 連想配列のメンバ関数(num/size/delete/exists)

前回の続きで、用意されている関数についてです。

関数名 内容
num()/size() 配列数を返す
delete() 配列の削除
exists() インデックスが存在するか確認する
first() 最初のインデックスを返す
last() 最後のインデックスを返す
next() 次のインデックスを返す
prev() 前のインデックスを返す


num/size

同じような関数がなぜあるんだろうと思ったら、
size() は動的配列時に実装されているためなのかな。


delete

引数なしの場合はすべての配列を削除します。


exists

返り値としては int型で 1:有、0:無 です。


  • サンプルコード

  •  1|module testbench;
     2|  int array[string] ;
     3|
     4|  initial begin
     5|    array["a"]    = 1;
     6|    array["aa"]   = 2;
     7|    array["b"]    = 3;
     8|    array["hoge"] = 4;
     9|    array["hogehoge"] = 11;
    10|
    11|    $display("array.num  = %0d", array.num());
    12|    $display("array.size = %0d", array.size());
    13|    if (array.exists("hoge")) $display("Found hoge");
    14|    else                      $display("Not found hoge");
    15|
    16|    $display("¥n Delete hoge");
    17|    array.delete("hoge");
    18|    if (array.exists("hoge")) $display("Found hoge");
    19|    else                      $display("Not found hoge");
    20|    $display("array.num  = %0d", array.num());
    21|    $display("array.size = %0d", array.size());
    22|  end
    23|
    24|endmodule : testbench
  • 実行結果
  • # array.num  = 5
    # array.size = 5
    # Found hoge
    #
    #  Delete hoge
    # Not found hoge
    # array.num  = 4
    # array.size = 4
    
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数