Expanded versions of source files are the output of the preprocessor. Lines subject to conditional compilation are not shown and all compiler pragmas have been stripped. Macros have been completely expanded.
RAL/vmm_ral.sv unexpanded 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: 00023: `define RVM_RAL__SV 00024: 00025: 00027: `define VMM_RAL_ADDR_WIDTH 64 : 00029: 00031: `define VMM_RAL_DATA_WIDTH 64 : 00033: 00034: 00036: 00037: class vmm_ral_version; 00038: extern function int major(); 00039: extern function int minor(); 00040: extern function int patch(); 00041: extern function string vendor(); 00042: extern function void display(string prefix = ""); 00043: extern function string psdisplay(string prefix = ""); 00044: endclass: vmm_ral_version 00045: 00046: 00047: typedef class vmm_ral_field; 00048: typedef class vmm_ral_vfield; 00049: typedef class vmm_ral_reg; 00050: typedef class vmm_ral_vreg; 00051: typedef class vmm_ral_block; 00052: typedef class vmm_ral_mem; 00053: typedef class vmm_ral_sys; 00054: typedef class vmm_ral_access; 00055: 00056: class vmm_ral; 00057: typedef enum { 00058: BFM, 00059: BACKDOOR, 00060: DEFAULT 00061: } path_e; 00062: 00063: typedef enum { 00064: RW, 00065: RO, 00066: WO, 00067: W1, 00068: RU, 00069: RC, 00070: W1C, 00071: A0, 00072: A1, 00073: DC, // Important that DC be followed by OTHER & USER and none other 00074: OTHER, 00075: USER0, 00076: USER1, 00077: USER2, 00078: USER3 00079: } access_e; 00080: 00081: typedef enum { 00082: QUIET, 00083: VERB 00084: } check_e; 00085: 00086: typedef enum { 00087: NO_ENDIAN, 00088: LITTLE_ENDIAN, 00089: BIG_ENDIAN, 00090: LITTLE_FIFO, 00091: BIG_FIFO 00092: } endianness_e; 00093: 00094: typedef enum { 00095: HARD, 00096: SOFT 00097: } reset_e; 00098: 00099: typedef enum { 00100: NO_COVERAGE = 'h0000, 00101: REG_BITS = 'h0001, 00102: ADDR_MAP = 'h0002, 00103: FIELD_VALS = 'h0004, 00104: ALL_COVERAGE = 'h0007 00105: } coverage_model_e; 00106: endclass: vmm_ral 00107: 00108: 00109: class vmm_ral_callbacks extends vmm_xactor_callbacks; 00110: endclass: vmm_ral_callbacks 00111: 00112: 00126: 00127: function int vmm_ral_version::major(); 00128: major = 1; 00129: endfunction: major 00130: 00131: function int vmm_ral_version::minor(); 00132: minor = 9; 00133: endfunction: minor 00134: 00135: function int vmm_ral_version::patch(); 00136: patch = 1; 00137: endfunction: patch 00138: 00139: function string vmm_ral_version::vendor(); 00140: vendor = "Synopsys"; 00141: endfunction: vendor 00142: 00143: function void vmm_ral_version::display(string prefix); 00144: $write("%s\n", this.psdisplay(prefix)); 00145: endfunction: display 00146: 00147: function string vmm_ral_version::psdisplay(string prefix); 00148: $sformat(psdisplay, "%sVMM RAL Version %0d.%0d.%0d (%s)", 00149: prefix, this.major(), this.minor(), this.patch(), this.vendor()); 00150: endfunction: psdisplay 00151: 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: