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