VMM OpenSource - sv/RAL/vmm_ral.sv

sv/RAL/vmm_ral.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 `ifndef RVM_RAL__SV
00023 `define RVM_RAL__SV
00024 
00025 
00026 `ifndef VMM_RAL_ADDR_WIDTH
00027 `define VMM_RAL_ADDR_WIDTH 64
00028 `endif
00029 
00030 `ifndef VMM_RAL_DATA_WIDTH
00031 `define VMM_RAL_DATA_WIDTH 64
00032 `endif
00033 
00034 
00035 `include "RAL/vmm_rw.sv"
00036 
00037 `include "RAL/vmm_ral_version.sv"
00038 
00039 typedef class vmm_ral_field;
00040 typedef class vmm_ral_vfield;
00041 typedef class vmm_ral_reg;
00042 typedef class vmm_ral_vreg;
00043 typedef class vmm_ral_block;
00044 typedef class vmm_ral_mem;
00045 typedef class vmm_ral_sys;
00046 typedef class vmm_ral_access;
00047 
00048 class vmm_ral;
00049    typedef enum {
00050       BFM,
00051       BACKDOOR,
00052       DEFAULT
00053    } path_e;
00054 
00055    typedef enum {
00056       RW,
00057       RO,
00058       WO,
00059       W1,
00060       RU,
00061       RC,
00062       W1C,
00063       A0,
00064       A1,
00065       DC,   // Important that DC be followed by OTHER & USER and none other
00066       OTHER,
00067       USER0,
00068       USER1,
00069       USER2,
00070       USER3
00071    } access_e;
00072 
00073    typedef enum {
00074       QUIET,
00075       VERB
00076    } check_e;
00077 
00078    typedef enum {
00079       NO_ENDIAN,
00080       LITTLE_ENDIAN,
00081       BIG_ENDIAN,
00082       LITTLE_FIFO,
00083       BIG_FIFO
00084    } endianness_e;
00085 
00086    typedef enum {
00087       HARD,
00088       SOFT
00089    } reset_e;
00090 
00091    typedef enum {
00092       NO_COVERAGE  = 'h0000,
00093       REG_BITS     = 'h0001,
00094       ADDR_MAP     = 'h0002,
00095       FIELD_VALS   = 'h0004,
00096       ALL_COVERAGE = 'h0007
00097    } coverage_model_e;
00098 endclass: vmm_ral
00099 
00100    
00101 class vmm_ral_callbacks extends vmm_xactor_callbacks;
00102 endclass: vmm_ral_callbacks
00103 
00104 
00105 `include "RAL/vmm_ral_field.sv"
00106 `include "RAL/vmm_ral_vfield.sv"
00107 `include "RAL/vmm_ral_backdoor.sv"
00108 `include "RAL/vmm_ral_reg.sv"
00109 `include "RAL/vmm_mam.sv"
00110 `include "RAL/vmm_ral_mem.svh"
00111 `include "RAL/vmm_ral_vreg.sv"
00112 `include "RAL/vmm_ral_mem.sv"
00113 `include "RAL/vmm_ral_block_or_sys.sv"
00114 `include "RAL/vmm_ral_block.sv"
00115 `include "RAL/vmm_ral_sys.sv"
00116 `include "RAL/vmm_ral_access.sv"
00117 `include "RAL/vmm_ral_env.sv"
00118 `include "RAL/vmm_ral_tests.sv"
00119 
00120 `endif // RVM_RAL__SV