SV
検証環境の構成の概略を決める
シーケンスとテストベンチの切り分けを決める
シナリオが使うタスクの定義
シナリオからテストベンチへ渡す uvm_sequence_item 継承クラスの定義
テストベンチと DUT を接続するインターフェイスの定義
どの機能をひとつの agent にするかを決める
インターフェイスを実装する。インターフェイスを使った DUT のラッパを定義する
agent の枠組みを作成する。agent, sequencer, driver, sequence_item の継承クラスを定義し、agent の中で sequencer と driver を接続する。これらの定義を含んだ package を作成する。
test, env の継承クラスを定義する。test の中に env があり、env の中に agent のインスタンスがある。
トップモジュールを作成する
サンプルシナリオを作る
test の run_phase() の中で、sequence_item を作成し、env 経由で sequencer に item を投げるコードを作って試す
シナリオに対応する sequence と test の継承クラスのペアを作る。test の run_phase() で sequence を生成し、sequencer へ渡す。sequence 内の body() でシナリオを定義する