2016-12-08 7 views
0

を行く:SystemVerilogの - 私は、次の基本クラスを持つ親クラスからすべての子メンバーの上に

class base_transaction extends uvm_sequence_item(); 

    bit [] rand_bit_list; 


    function int my_randomize(int seed); 
    .... 
    endfunction: my_randomize() 

endclass: base_transaction 

base_transactionクラスを拡張し、いくつかのクラスがあります。

base_transactionクラスのmy_randomize()関数から、すべての子メンバー(拡張クラスの1つ)を処理するsystemVrilog/UVMオプションはありますか?

+0

私はあなたが正確に何を意味するかは分かりません。 _child_class_クラスの多くのオブジェクトが存在し、 'my_randomize'を一回呼び出すだけでそれらをランダム化することをお勧めしますか? –

+0

@Matthew Taylor - そうです。 – sara8d

+0

自分でこれを実装する必要があると思います。おそらく、クラス自体のキューである静的メンバーを実装し、 'new'を呼び出すたびにそのキューに各参照をプッシュすることができます。おそらく、あなたはキュー上で反復し、それぞれの 'my_randomize'メソッドを呼び出す静的関数を持つことができますか?私はおそらくこれを行う_designパターン_があると思う。あなたは_designのpattern_タグでこの質問をしたいかもしれません。 (もしあなたが勇気があるなら、Stack Overflowはどんなものなのか知っているでしょう。 –

答えて

0

私はSystemveilog/UVMにあなたの望むことをするオプションはないと思います。しかし、次のようなコードでそれを行うことができます。

これで、base_transaction::child_listキューを持つすべての子メンバーにアクセスできます。

関連する問題