Verification Engineerの戯言
OVM/VMM Interoperability libraryは、1つに統一されていません。
CadenceとMentorがそれぞれ独自にライブラリを開発しています。
そのためかライブラリとして提供しているものがちょっと違います。
CadenceとMentorがそれぞれ独自にライブラリを開発しています。
そのためかライブラリとして提供しているものがちょっと違います。
Cadenceは、VMM xactorをシーケンスで使えるようにするためすることをメインとしています。
そのためかライブラリには、VMM xactotrへのシーケンサであるovm_vmm_sequencerクラス(ovm_sequencerクラスを継承)、
VMM xactorに渡すデータ型ovm_vmm_dataクラス(ovm_sequence_itemクラスを継承)があります。
アナリシスポートをVMMに対応されたvmm_channel_to_tlm_apクラスです。
また、ovm_env内にvmm_subenv、vmm_envを取り組むためのクラスとして、
ovm_vmm_subenvクラス、ovm_vmm_envクラスを用意しています。
そのためかライブラリには、VMM xactotrへのシーケンサであるovm_vmm_sequencerクラス(ovm_sequencerクラスを継承)、
VMM xactorに渡すデータ型ovm_vmm_dataクラス(ovm_sequence_itemクラスを継承)があります。
アナリシスポートをVMMに対応されたvmm_channel_to_tlm_apクラスです。
また、ovm_env内にvmm_subenv、vmm_envを取り組むためのクラスとして、
ovm_vmm_subenvクラス、ovm_vmm_envクラスを用意しています。
CadenceのInteroperability libraryは、sv/ovm_vmm_include.svhファイルをincludeして使います。
sv/ovm_vmm_include.svhファイルは、次のようになっています。
sv/ovm_vmm_include.svhファイルは、次のようになっています。
`ifndef OVM_VMM_INCLUDE_SVH `define OVM_VMM_INCLUDE_SVH `include "ovm.svh" `include "vmm.sv" `include "ovm_vmm_interop.svh" `endif
OVMとVMMのヘッダファイルを読み込んだ後、Interoperability libraryのヘッダファイルを読み込んでいます。
一方、Mentorは、VMM環境+OVM/VMM Interoperability Libという形でライブラリをリリースしています。
そのため、リリースされたパッケージは、VMM-1.0.1-Dのソースコード(svディレクトリ)に
interop_libディレクトリを追加し、このディレクトリ内にライブラリを格納しています。
ライブラリは、VMM環境へのアダプタ群(vmm_adapters.sv)とVMM環境への拡張(vmm_extesions.sv)から構成されます。
MentorのInteroperability libraryは、アダプタ群と拡張をうまく使うことでOVM環境にVMMの要素を取り込むだけでなく、
VMM環境にOVMの要素を取り込むこともできます。
そのため、リリースされたパッケージは、VMM-1.0.1-Dのソースコード(svディレクトリ)に
interop_libディレクトリを追加し、このディレクトリ内にライブラリを格納しています。
ライブラリは、VMM環境へのアダプタ群(vmm_adapters.sv)とVMM環境への拡張(vmm_extesions.sv)から構成されます。
MentorのInteroperability libraryは、アダプタ群と拡張をうまく使うことでOVM環境にVMMの要素を取り込むだけでなく、
VMM環境にOVMの要素を取り込むこともできます。
MentorのInteroperability libraryは、sv/interop_lib/ovm_vmm.svhファイルをincludeして使います。
sv/interop_lib/ovm_vmm.svhファイルは、次のようになっています。
sv/interop_lib/ovm_vmm.svhファイルは、次のようになっています。
`ifndef OVM_VMM_SVH `define OVM_VMM_SVH `include "ovm.svh" `include "vmm.sv" `include "vmm_adapters.sv" `include "vmm_extensions.sv" `endif // OVM_VMM_SVH
OVMとVMMのヘッダファイルを読み込んだ後、Interoperability libraryのヘッダファイルを読み込んでいます。
また、パッケージとしても使えるようにsv/interop_lib/ovm_vmm_pkg.svファイルも用意しています。
また、パッケージとしても使えるようにsv/interop_lib/ovm_vmm_pkg.svファイルも用意しています。
`ifndef OVM_VMM_PKG_SV `define OVM_VMM_PKG_SV `undef VMM_IN_PACKAGE package ovm_vmm_pkg; `include "ovm_vmm.svh" endpackage `endif // OVM_VMM_PKG_SV
検証、Verification、SystemVerilog、VMM、OVM、Verification Methodology Manual、Open Verification Methodology