[SystemVerilog] task/function の初期値を与えた引数の記述は自由

第15回 SystemVerilog読書会 にて知ったのですが、
task/functionの引数に初期値を与える部分はどこでもいいみたいです。


task read(int j = 0, int k, int data = 1 );

例えば、こういう場合は右詰めするものだと思ってました。

つまり、

task read(int k, int j = 0, int data = 1 );

といったぐあいに。

宣言時の場合には、以下のようにするようです。

LRM引用:

read( , 5 );     // is equivalent to read( 0, 5, 1 );
read( 2, 5 );    // is equivalent to read( 2, 5, 1 );
read( , 5, );    // is equivalent to read( 0, 5, 1 );
read( , 5, 7 );  // is equivalent to read( 0, 5, 7 );
read( 1, 5, 2 ); // is equivalent to read( 1, 5, 2 );
read( );         // error; k has no default value
read( 1, , 7 );  // error; k has no default value

たぶん、こんな風には書かずに、必要なものを左側から書いていくかな。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
05 | 2017/06 | 07
- - - - 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 -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数