VMM OpenSource - sv/std_lib/vmm_version.sv

sv/std_lib/vmm_version.sv expanded source

00001 //
00002 // -------------------------------------------------------------
00003 //    Copyright 2004-2008 Synopsys, Inc.
00004 //    All Rights Reserved Worldwide
00005 //
00006 //    Licensed under the Apache License, Version 2.0 (the
00007 //    "License"); you may not use this file except in
00008 //    compliance with the License.  You may obtain a copy of
00009 //    the License at
00010 //
00011 //        http://www.apache.org/licenses/LICENSE-2.0
00012 //
00013 //    Unless required by applicable law or agreed to in
00014 //    writing, software distributed under the License is
00015 //    distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
00016 //    CONDITIONS OF ANY KIND, either express or implied.  See
00017 //    the License for the specific language governing
00018 //    permissions and limitations under the License.
00019 // -------------------------------------------------------------
00020 //
00021 
00022 
00023 //
00024 // Protect against multiple inclusion of this file
00025 //
00026 `ifndef VMM_VERSION__SV
00027 `define VMM_VERSION__SV
00028 
00029 
00030 class vmm_version;
00031    extern function int major();
00032    extern function int minor();
00033    extern function int patch();
00034    extern function string vendor();
00035 
00036    extern function void   display(string prefix = "");
00037    extern function string psdisplay(string prefix = "");
00038    extern function void   cfdisplay(string prefix = "");
00039 endclass: vmm_version
00040 
00041 function int vmm_version::major();
00042    major = 1;
00043 endfunction: major
00044 
00045 function int vmm_version::minor();
00046    minor = 8;
00047 endfunction: minor
00048 
00049 function int vmm_version::patch();
00050    patch = 6;
00051 endfunction: patch
00052 
00053 
00054 function string vmm_version::vendor();
00055    vendor = "Synopsys";
00056 endfunction: vendor
00057 
00058 function void vmm_version::display(string prefix = "");
00059    $write("%s\n", this.psdisplay(prefix));
00060 endfunction: display
00061 
00062 function string vmm_version::psdisplay(string prefix = "");
00063    $sformat(psdisplay, "%sVMM Version %0d.%0d.%0d (%s)",
00064             prefix, this.major(), this.minor(), this.patch(),this.vendor());
00065 endfunction: psdisplay
00066 
00067 
00068 function void vmm_version::cfdisplay(string prefix = "");
00069    this.display(prefix);
00070    $write("%s\n%sMacro Definitions:",
00071           prefix, prefix);
00072 
00073    $write("\n");
00074    $write("%s   VMM_CHANNEL                     %s\n",
00075           prefix, `VMM_MACRO_TO_STRING(`VMM_CHANNEL));
00076 `ifdef VMM_CHANNEL_BASE
00077    $write("%s   VMM_CHANNEL_BASE                %s\n",
00078           prefix, `VMM_MACRO_TO_STRING(`VMM_CHANNEL_BASE));
00079    $write("%s   VMM_CHANNEL_NEW_CALL            %s\n",
00080           prefix, `VMM_MACRO_TO_STRING(`VMM_CHANNEL_BASE_NEW_CALL));
00081 `endif
00082 
00083    $write("\n");
00084    $write("%s   VMM_CONSENSUS                   %s\n",
00085           prefix, `VMM_MACRO_TO_STRING(`VMM_CONSENSUS));
00086 `ifdef VMM_CONSENSUS_BASE
00087    $write("%s   VMM_CONSENSUS_BASE              %s\n",
00088           prefix, `VMM_MACRO_TO_STRING(`VMM_CONSENSUS_BASE));
00089    $write("%s   VMM_CONSENSUS_NEW_CALL          %s\n",
00090           prefix, `VMM_MACRO_TO_STRING(`VMM_CONSENSUS_BASE_NEW_CALL));
00091 `endif
00092 
00093    $write("\n");
00094    $write("%s   VMM_DATA                        %s\n",
00095           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA));
00096    $write("%s   VMM_DATA_NEW_ARGS               %s\n",
00097           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA_NEW_ARGS));
00098    $write("%s   VMM_DATA_NEW_EXTERN_ARGS        %s\n",
00099           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA_NEW_EXTERN_ARGS));
00100    $write("%s   VMM_DATA_NEW_CALL               %s\n",
00101           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA_NEW_CALL));
00102 `ifdef VMM_DATA_BASE
00103    $write("%s   VMM_DATA_BASE                   %s\n",
00104           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA_BASE));
00105    $write("%s   VMM_DATA_BASE_NEW_ARGS          %s\n",
00106           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA_BASE_NEW_ARGS));
00107    $write("%s   VMM_DATA_BASE_NEW_EXTERN_ARGS   %s\n",
00108           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA_BASE_NEW_EXTERN_ARGS));
00109    $write("%s   VMM_DATA_BASE_NEW_CALL          %s\n",
00110           prefix, `VMM_MACRO_TO_STRING(`VMM_DATA_BASE_NEW_CALL));
00111 `endif
00112 
00113    $write("\n");
00114    $write("%s   VMM_SCENARIO                        %s\n",
00115           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO));
00116    $write("%s   VMM_SCENARIO_NEW_ARGS               %s\n",
00117           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO_NEW_ARGS));
00118    $write("%s   VMM_SCENARIO_NEW_EXTERN_ARGS        %s\n",
00119           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO_NEW_EXTERN_ARGS));
00120    $write("%s   VMM_SCENARIO_NEW_CALL               %s\n",
00121           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO_NEW_CALL));
00122    $write("%s   VMM_SCENARIO_BASE                   %s\n",
00123           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO_BASE));
00124    $write("%s   VMM_SCENARIO_BASE_NEW_ARGS          %s\n",
00125           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO_BASE_NEW_ARGS));
00126    $write("%s   VMM_SCENARIO_BASE_NEW_EXTERN_ARGS   %s\n",
00127           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO_BASE_NEW_EXTERN_ARGS));
00128    $write("%s   VMM_SCENARIO_BASE_NEW_CALL          %s\n",
00129           prefix, `VMM_MACRO_TO_STRING(`VMM_SCENARIO_BASE_NEW_CALL));
00130 
00131    $write("\n");
00132    $write("%s   VMM_ENV                         %s\n",
00133           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV));
00134    $write("%s   VMM_ENV_NEW_ARGS                %s\n",
00135           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV_NEW_ARGS));
00136    $write("%s   VMM_ENV_NEW_EXTERN_ARGS         %s\n",
00137           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV_NEW_EXTERN_ARGS));
00138    $write("%s   VMM_ENV_NEW_CALL                %s\n",
00139           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV_NEW_CALL));
00140 `ifdef VMM_ENV_BASE
00141    $write("%s   VMM_ENV_BASE                    %s\n",
00142           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV_BASE));
00143    $write("%s   VMM_ENV_BASE_NEW_ARGS           %s\n",
00144           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV_BASE_NEW_ARGS));
00145    $write("%s   VMM_ENV_BASE_NEW_EXTERN_ARGS    %s\n",
00146           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV_BASE_NEW_EXTERN_ARGS));
00147    $write("%s   VMM_ENV_BASE_NEW_CALL           %s\n",
00148           prefix, `VMM_MACRO_TO_STRING(`VMM_ENV_BASE_NEW_CALL));
00149 `endif
00150 
00151    $write("\n");
00152    $write("%s   VMM_LOG                         %s\n",
00153           prefix, `VMM_MACRO_TO_STRING(`VMM_LOG));
00154 `ifdef VMM_LOG_BASE
00155    $write("%s   VMM_LOG_BASE                    %s\n",
00156           prefix, `VMM_MACRO_TO_STRING(`VMM_LOG_BASE));
00157    $write("%s   VMM_LOG_NEW_CALL                %s\n",
00158           prefix, `VMM_MACRO_TO_STRING(`VMM_LOG_BASE_NEW_CALL));
00159 `endif
00160 
00161    $write("\n");
00162    $write("%s   VMM_NOTIFY                      %s\n",
00163           prefix, `VMM_MACRO_TO_STRING(`VMM_NOTIFY));
00164 `ifdef VMM_NOTIFY_BASE
00165    $write("%s   VMM_NOTIFY_BASE                 %s\n",
00166           prefix, `VMM_MACRO_TO_STRING(`VMM_NOTIFY_BASE));
00167    $write("%s   VMM_NOTIFY_NEW_CALL             %s\n",
00168           prefix, `VMM_MACRO_TO_STRING(`VMM_NOTIFY_BASE_NEW_CALL));
00169 `endif
00170 
00171    $write("\n");
00172    $write("%s   VMM_XACTOR                      %s\n",
00173           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR));
00174    $write("%s   VMM_XACTOR_NEW_ARGS             %s\n",
00175           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR_NEW_ARGS));
00176    $write("%s   VMM_XACTOR_NEW_EXTERN_ARGS      %s\n",
00177           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR_NEW_EXTERN_ARGS));
00178    $write("%s   VMM_XACTOR_NEW_CALL             %s\n",
00179           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR_NEW_CALL));
00180 `ifdef VMM_XACTOR_BASE
00181    $write("%s   VMM_XACTOR_BASE                 %s\n",
00182           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR_BASE));
00183    $write("%s   VMM_XACTOR_BASE_NEW_ARGS        %s\n",
00184           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR_BASE_NEW_ARGS));
00185    $write("%s   VMM_XACTOR_BASE_NEW_EXTERN_ARGS %s\n",
00186           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR_BASE_NEW_EXTERN_ARGS));
00187    $write("%s   VMM_XACTOR_BASE_NEW_CALL        %s\n",
00188           prefix, `VMM_MACRO_TO_STRING(`VMM_XACTOR_BASE_NEW_CALL));
00189 `endif
00190 endfunction: cfdisplay
00191 
00192 `endif