Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

UVM EA 1.0 : User's GuideでのFactoryの説明


UVM EA 1.0のUser's Guideでは、Factoryの説明が
  1.4.1 UVM Factory  
  7.3   The Build-In Factory and Overrides
だけなんです。でも、User's Guide全体でfactoryという言葉が使われています。

UVMでfactoryを使うには、クラス定義の時におまじないをするだけ!
そのおまじないは、定義するクラスの種類によってちょっと違うが、
    `ovm_object_utils
    `ovm_component_utils
    `ovm_sequence_utils
    `ovm_sequencer_utils

基本的には、最初の2つ(ovm_object_utilsとovm_component_utils)を使います。
`ovm_object_utilsは、ovm_objectクラスを継承するクラス内で、
`ovm_component_utilsは、ovm_componentクラスを継承するクラス内で使います。

ovm_sequence_utilsとovm_sequencer_utilsの2つは、シーケンスとシーケンサー用。
`ovm_sequence_utilsは、ovm_sequenceクラスを継承するクラス内で、
`ovm_sequencer_utilsは、ovm_sequencerクラスを継承するクラス内で使います。

使い方はいたって、簡単。クラスの中で、
    `ovm_object_utils( クラス名 )
    `ovm_component_utils( クラス名 )
    `ovm_sequence_utils( クラス名, シーケンサクラス名 )
    `ovm_sequencer_utils( クラス名 )
と、マクロの引数にクラス名を書くだけ。
`ovm_sequence_utilsだけは、第2引数にシーケンサクラス名を指定します。

とりあえず、これだけは憶えておきましょう!

検証、Verification、SystemVerilog、UVM、Unified Verification Methodology