Verification Engineerの戯言
Agent Classには、BFM, Driver, Monitor Classのインスタンスを持ちます。
・BFM Classは、urm_unit クラスを継承する ・Driver Classは、urm_driverクラスを継承する ・Monitor Classは、うううう、わからない(urm_monitorのようだだ)
BFM Classでは、runタスクを定義するようだ。
http://blogs.yahoo.co.jp/verification_engineer/folder/1583124.html の論文のFigure 9によると、
task XXX_bfm:run();
fork
get_and_drive();
monitor_readack();
reset_signals();
join
endtask : run
で、3つのタスクが平行動作する。その中でもget_and_driveタスクがメインになり、
次のようになっています。
次のようになっています。
task XXX_bfm::get_and_drive();
// リセット待ち
forever begin
driver.get_next_item(item); // ここでDriverらのデータを受け取る
$cast( this_master_deb_txn, item ); // データを型変換する
do_transaction( this_master_deb_txn );// BFMによるトランザクション実行
driver.item_done_trigger(); // Driverへ終了トリガを伝える
end
endtask : get_and_drive