blob: f9e95e76b2ea2ff353e27c2d18ef1d9fba2d576f [file]
//
// -------------------------------------------------------------
// Copyright 2004-2008 Synopsys, Inc.
// All Rights Reserved Worldwide
//
// Licensed under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in
// compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in
// writing, software distributed under the License is
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied. See
// the License for the specific language governing
// permissions and limitations under the License.
// -------------------------------------------------------------
//
`define vmm_scenario_member_begin(_class) \
\
`vmm_data_member_begin(_class)
`define vmm_scenario_member_scalar(_name, _do) \
\
`vmm_data_member_scalar(_name, _do)
`define vmm_scenario_member_scalar_array(_name, _do) \
\
`vmm_data_member_scalar_array(_name, _do)
`define vmm_scenario_member_scalar_da(_name, _do) \
\
`vmm_data_member_scalar_da(_name, _do)
`define vmm_scenario_member_scalar_aa_scalar(_name, _do) \
\
`vmm_data_member_scalar_aa_scalar(_name, _do)
`define vmm_scenario_member_scalar_aa_string(_name, _do) \
\
`vmm_data_member_scalar_aa_string(_name, _do)
`define vmm_scenario_member_string(_name, _do) \
\
`vmm_data_member_string(_name, _do)
`define vmm_scenario_member_string_array(_name, _do) \
\
`vmm_data_member_string_array(_name, _do)
`define vmm_scenario_member_string_da(_name, _do) \
\
`vmm_data_member_string_da(_name, _do)
`define vmm_scenario_member_string_aa_scalar(_name, _do) \
\
`vmm_data_member_string_aa_scalar(_name, _do)
`define vmm_scenario_member_string_aa_string(_name, _do) \
\
`vmm_data_member_string_aa_string(_name, _do)
`define vmm_scenario_member_enum(_name, _do) \
\
`vmm_data_member_enum(_name, _do)
`define vmm_scenario_member_enum_array(_name, _do) \
\
`vmm_data_member_enum_array(_name, _do)
`define vmm_scenario_member_enum_da(_name, _do) \
\
`vmm_data_member_enum_da(_name, _do)
`define vmm_scenario_member_enum_aa_scalar(_name, _do) \
\
`vmm_data_member_enum_aa_scalar(_name, _do)
`define vmm_scenario_member_enum_aa_string(_name, _do) \
\
`vmm_data_member_enum_aa_string(_name, _do)
`define vmm_scenario_member_handle(_name, _do) \
\
`vmm_data_member_handle(_name, _do)
`define vmm_scenario_member_handle_array(_name, _do) \
\
`vmm_data_member_handle_array(_name, _do)
`define vmm_scenario_member_handle_da(_name, _do) \
\
`vmm_data_member_handle_da(_name, _do)
`define vmm_scenario_member_handle_aa_scalar(_name, _do) \
\
`vmm_data_member_handle_aa_scalar(_name, _do)
`define vmm_scenario_member_handle_aa_string(_name, _do) \
\
`vmm_data_member_handle_aa_string(_name, _do)
`define vmm_scenario_member_vmm_data(_name, _do, _how) \
\
`vmm_data_member_vmm_data(_name, _do, _how)
`define vmm_scenario_member_vmm_data_array(_name, _do, _how) \
\
`vmm_data_member_vmm_data_array(_name, _do, _how)
`define vmm_scenario_member_vmm_data_da(_name, _do, _how) \
\
`vmm_data_member_vmm_data_da(_name, _do, _how)
`define vmm_scenario_member_vmm_data_aa_scalar(_name, _do, _how) \
\
`vmm_data_member_vmm_data_aa_scalar(_name, _do, _how)
`define vmm_scenario_member_vmm_data_aa_string(_name, _do, _how) \
\
`vmm_data_member_vmm_data_aa_string(_name, _do, _how)
`define vmm_scenario_member_vmm_scenario(_name, _do) \
\
case (do_what & _do) \
DO_PRINT: begin \
if ( _name == null ) begin \
$sformat(this.__vmm_image, `"%s\n%s%s: (null)`", this.__vmm_image, \
this.__vmm_prefix, `"_name`"); \
end \
else begin \
string _prefix = this.__vmm_prefix; \
$sformat(this.__vmm_image, `"%s\n%s`", this.__vmm_image, this._name.psdisplay({this.__vmm_prefix, `"_name: `"})); \
this.__vmm_prefix = _prefix; \
end \
end \
DO_COPY: begin \
if (_name == null) begin \
__vmm_rhs._name = this._name; \
end \
else begin \
$cast(__vmm_rhs._name, this._name.copy()); \
end \
end \
DO_COMPARE: begin \
if (_name == null || __vmm_rhs._name == null) begin \
if (this._name != __vmm_rhs._name) begin \
$sformat(this.__vmm_image, `"this._name !== to._name`"); \
this.__vmm_status = 0; \
return; \
end \
end \
else begin \
string diff; \
if (!this._name.compare(__vmm_rhs._name, diff)) begin \
$sformat(this.__vmm_image, `"this._name !== to._name: %s `", diff); \
this.__vmm_status = 0; \
return; \
end \
end \
end \
endcase
`define vmm_scenario_member_user_defined(_name) \
\
`vmm_data_member_user_defined(_name)
`define vmm_scenario_new(_class) \
\
`define vmm_scenario_``_class``_new 1 \
\
static `VMM_LOG log = new(`"_class`", `"class`"); \
`define vmm_scenario_member_end(_class) \
endfunction \
\
`ifndef vmm_scenario_``_class``_new \
static `VMM_LOG log = new(`"_class`", `"class`"); \
\
function new(`VMM_SCENARIO parent = null); \
super.new(parent); \
endfunction \
`endif \
\
`vmm_data_methods(_class)