Verification Engineerの戯言
Field Automationtでは、登録したデータに対するcopy, compare, pack, unpack, record, print, sprint関数を自動的に使えるようにするためのもので、
次のようなマクロが用意されています。
これらマクロは、クラス内のメンバーの型に対応したものです。arrayは動的配列、sarrayは静的配列、aaは連想配列です。
フラグには、つぎのようなものがあります。詳細については、リファレンス・マニュアルを参照してください。
次のようなマクロが用意されています。
これらマクロは、クラス内のメンバーの型に対応したものです。arrayは動的配列、sarrayは静的配列、aaは連想配列です。
ovm_field_int(ARG,FLAG) ovm_field_enum(T,ARG,FLAG) ovm_field_object(ARG,FLAG) ovm_field_event(ARG,FLAG) ovm_field_string(ARG,FLAG) ovm_field_array_int(ARG,FLAG) ovm_field_sarray_int(ARG,FLAG) ovm_field_array_object(ARG,FLAG) ovm_field_sarray_object(ARG,FLAG) ovm_field_array_string(ARG,FLAG) ovm_field_sarray_string(ARG,FLAG) ovm_field_queue_int(ARG,FLAG) ovm_field_queue_object(ARG,FLAG) ovm_field_queue_string(ARG,FLAG) ovm_field_aa_int_string(ARG, FLAG) ovm_field_aa_string_string(ARG, FLAG) ovm_field_aa_object_string(ARG, FLAG) ovm_field_aa_int_int(ARG, FLAG) ovm_field_aa_int_int(ARG, FLAG) ovm_field_aa_int_int_unsigned(ARG, FLAG) ovm_field_aa_int_integer(ARG, FLAG) ovm_field_aa_int_integer_unsigned(ARG, FLAG) ovm_field_aa_int_byte(ARG, FLAG) ovm_field_aa_int_byte_unsigned(ARG, FLAG) ovm_field_aa_int_shortint(ARG, FLAG) ovm_field_aa_int_shortint_unsigned(ARG, FLAG) ovm_field_aa_int_longint(ARG, FLAG) ovm_field_aa_int_longint_unsigned(ARG, FLAG) ovm_field_aa_int_key(KEY, ARG, FLAG) ovm_field_aa_string_int(ARG, FLAG) ovm_field_aa_object_int(ARG, FLAG)第一引数(ARG)にはクラスのメンバーを、第二引数(FLAG)にはフラグを指定します。
フラグには、つぎのようなものがあります。詳細については、リファレンス・マニュアルを参照してください。
OVM_DEFAULT OVM_ALL_ON OVM_COPY OVM_NOCOPY OVM_COMPARE OVM_NOCOMPARE OVM_PRINT OVM_NOPRINT OVM_NODEFPRINT OVM_PACK OVM_NOPACK OVM_PHYSICAL OVM_ABSTRACT OVM_READONLY OVM_BIN, OVM_DEC, OVM_UNSIGNED, OVM_OCT, OVM_HEX, OVM_STRING, OVM_TIME, OVM_NORADIX
src/examples/configuration/automated/classA.svhファイルのAクラスでは、次のように使っています。
`ovm_component_utils_begin(A) `ovm_field_int(debug, OVM_DEFAULT) `ovm_component_utils_end
検証、Verification、SystemVerilog、OVM、Open Verification Methodology