Verification Engineerの戯言
vmm_testクラスの例題は、examples/std_lib/vmm_test/testsディレクトリの次のファイルです。
それは、次回に!
test_add.sv test_sub.sv test_mul.sv test_ls.sv test_rs.svたとえば、test_add.svでは、次のようになっています。
class add_test_data extends alu_data; constraint cst_test { kind == ADD; } endclass `vmm_test_begin(test_add, alu_env, "Addition") env.build(); begin add_test_data tdata = new; env.gen.randomized_obj = tdata; end env.run(); `vmm_test_end(test_add)上記のコードは、マクロ展開されると次のようになります。
class test_add extends vmm_test; alu_env env; function new(); super.new("test_add", "Addition"); endfunction static test_add test_add_inst = new(); task run(vmm_env env1); $cast(env, env1); begin env.build(); begin add_test_data tdata = new; env.gen.randomized_obj = tdata; end env.run(); end endtask endclass上記のようにrunタスクが再定義されます。では、このrunタスクはどこで呼ばれているのでしょうか?
それは、次回に!
検証、Verification、SystemVerilog、VMM、Verification Methodology Manual