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