covergroup my_cover_group @(posedge aclk);
m_axi_awlen_cp : coverpoint m_axi_awlen;
m_axi_awcache_cp : coverpoint m_axi_awcache {
option.comment = "cp with transition bins";
bins a1 = (1=>2);
bins b1 = (1,3=>4,5);
bins b2[] = (1,3=>4,5);
bins b3 = (1=>2), ([4:6] => 11,12);
}
m_axi_bresp_cp : coverpoint m_axi_bresp;
endgroup
my_cover_group obj1 = new();
この例では、covergroup を my_cover_group という名前で、サンプリング イベントを posedge aclk という名前で宣言しています。この covergroup には 3 つのカバーポイントがあります。この covergroup 宣言をサンプル デザインに追加します。
- [Tcl Console] ウィンドウに次のコマンドを入力します。
current_scope /axi_vip_0__exdes_adv_mst_active_pt_mem__slv_passive/DUT/ex_design/axi_vip_mst
-
axi_vip_mst スコープをダブルクリックして、ソース コードを開きます。
- テキスト エディターに次のファイル パスが表示されるので、covergroup 宣言を endmodule の前に追加して保存します。
axi_vip_0_ex/axi_vip_0_ex.ip_user_files/bd/ex_sim/ip/ex_sim_axi_vip_mst_0/sim/ex_sim_axi_vip_mst_0.sv
- [Tcl Console] ウィンドウで、
close_sim
コマンドを実行して、前に実行していたシミュレーションを閉じます。 - [Tcl Console] ウィンドウで、
reset_simulation
コマンドを実行して、シミュレーション ディレクトリをクリーンにします。 - [Tcl Console] ウィンドウで、
launch_simulation
コマンドを実行して、シミュレーションを実行します。 - Run All ボタン をクリックします。
シミュレーションは $finish 文に達すると停止します。AMD Vivado™ シミュレータにより、次の場所に xsim.covdb という名前 (デフォルト名) でカバレッジ データベースが生成されました。
./axi_vip_0_ex.sim/sim_adv_mst_active__pt_passive__slv_comb/behav/xsim/
レポートを生成するには、次のコマンドを実行します。
xcrg -report_format html -dir ./axi_vip_0_ex.sim/sim_adv_mst_active__pt_passive__slv_comb/behav/xsim/xsim.covdb/ -report_dir ./axi_vip_0_ex.sim/sim_adv_mst_active__pt_passive__slv_comb/behav/xsim/
これで、xcrg_report という名前のディレクトリが生成され、そこには .html レポートが含まれます。次はサンプル レポートの例です。
- dashboard.html ファイルを開きます。このファイルには、コマンド、バージョン、日付、カバレッジ サマリ (合計 bin の 9.375% のみが表示されている) などの詳細が含まれています。
- Groups ボタンをクリックします。
- グループ レポートの下にあるリンクをクリックします。
- 次の図のような詳細レポートが表示されます。
これでカバレッジを確認でき、カバレッジを改善するためテストベンチまたはシード値を変更できます。