Vengineerの妄想(準備期間)

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

OVM : ovm_env

Verification Engineerの戯言

AVMにおけるavm_envクラスは、OVMではovm_envクラスになります。
AVMでは、テストの開始はavm_envクラスのdo_testタスクを実行します。
    initial
        e = new("env", .... );
        e.do_test();
        $finish;
    end
一方、OVMテストの開始はovm_envクラスrun_testタスクを実行します。
    initial
        e = new("env", .... );
        e.run_test();
    end
(ovm_envクラスでもdo_testタスクもサポートはしていますが、run_testタスクを使うべき)

それから、ovm_envクラスrun_taskタスクではなく、グローバルなrun_testタスクでもOKのようです。
    initial
        e = new("env", .... );
        run_test();
    end
グローバルなrun_testタスクは、内部でovm_envクラスrun_testタスクを実行しているだけです。

注意)、
avm_envクラスの例では、$finishを実行していますが、ovm_envクラスの例では、$finishを実行していません。その理由は、デフォルトではrun_testタスク内で$finishを実行するようになっています。

それから、ovm_envクラスではテスト名をシミュレーション時の引数(OVM_TESTNAME)で指定することができます。シミュレータへの引数は、+OVM_TESTNAME=<test_name>のようになります。

検証、Verification、SystemVerilog、OVM、Open Verification Methodology、
AVM、Advanced Verification Methodology