クラス・メソッド
クラスプロパティにアクセスできるのは、クラスメソッドのみです。
クラスメソッドは、クラスプロパティと同様にfunctionやtaskの前にstaticを付けます。
また、クラスメソッド内ではクラスプロパティ以外のプロパティにアクセスすることはできません。
もし、クラスプロパティ以外のプロパティにアクセスするようなコードを書いてしまったときは、
コンパイル時、あるいは、シミュレーション実行ときに、エラーとなります(ただし、シミュレータが正しい処理をしているときは)
class SampleY;
static int count = 0
;
static function int next_count();
next_count = ++current; // OK to access static class property
endfunction : next_count
endclass : SampleY
また、クラスメソッドは、インスタンスが無いときでも直接アクセスすることができます。
count = SampleY::next_count();
「クラス名::クラスメソッド名」で指定したクラスのクラスメソッドにアクセスすることができます。