スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[SystemVerilog] 連想配列のメンバ関数(next/prev)

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

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


next/prev

  • サンプルコード
  •  1|module testbench;
     2|  int array[string] ;
     3|  string s;
     4|
     5|  initial begin
     6|    array["a"]    = 1;
     7|    array["aa"]   = 2;
     8|    array["b"]    = 3;
     9|    array["hoge"] = 4;
    10|    array["hogehoge"] = 11;
    11|
    12|    $display("--- start next ---");
    13|    if ( array.first( s ) ) begin
    14|      do
    15|        $display( "%s :\t %0d", s, array[ s ] );
    16|      while ( array.next( s ) );
    17|    end
    18|
    19|    $display("¥n--- start prev ---");
    20|    if ( array.last( s ) ) begin
    21|      do
    22|        $display( "%s :\t %0d", s, array[ s ] );
    23|      while ( array.prev( s ) );
    24|    end
    25|  end
    26|
    27|endmodule
  • 実行結果
  • # --- start next ---
    # a :             1
    # aa :            2
    # b :             3
    # hoge :                  4
    # hogehoge :             11
    #
    # --- start prev ---
    # hogehoge :             11
    # hoge :                  4
    # b :             3
    # aa :            2
    # a :             1
    

a -> b -> aa かと思ったら違うんですね。


余談:宣言時代入

宣言時にこんな感じで、代入することができます。

integer tab [string] = '{"Peter":20, "Paul":22, "Mary":23, default:-1 };

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
07 | 2017/08 | 09
- - 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
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。