Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / common / vera / classes / ccx_tag_class.vrh
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: ccx_tag_class.vrh
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35#ifndef INC__TMP_CCX_TAG_CLASS_VRH
36#define INC__TMP_CCX_TAG_CLASS_VRH
37
38extern class TAG_MEM {
39 string name;
40 reg type;
41 reg [2:0] max_tag;
42 reg [6:0] max_line;
43 reg [239:0] tag_mem [128];
44 task new (
45 reg new_type,
46 reg [6:0] new_max_line,
47 reg [2:0] new_max_tag,
48 integer inst=0
49 );
50 task dump_mem (
51 integer msglevel
52 );
53 task dump_line (
54 string why,
55 reg [6:0] index,
56 integer msglevel
57 );
58 task dump_group (
59 string why,
60 reg [5:0] index
61 );
62 task write_tag (
63 reg [2:0] way,
64 reg [6:0] index,
65 reg [28:0] tag,
66 reg valid,
67 reg hitCheck=0
68 );
69 function reg [3:0] get_way (
70 string why,
71 reg [6:0] index,
72 reg [28:0] tag
73 );
74 task search_tagmem (
75 var reg valid,
76 var reg [6:0] index
77 );
78 task get_tag (
79 reg [6:0] index,
80 var reg valid,
81 var reg [28:0] tag
82 );
83 task read_line (
84 reg [6:0] index,
85 var reg [28:0] tag0,
86 var reg [28:0] tag1,
87 var reg [28:0] tag2,
88 var reg [28:0] tag3,
89 var reg [28:0] tag4,
90 var reg [28:0] tag5,
91 var reg [28:0] tag6,
92 var reg [28:0] tag7,
93 var reg valid0,
94 var reg valid1,
95 var reg valid2,
96 var reg valid3,
97 var reg valid4,
98 var reg valid5,
99 var reg valid6,
100 var reg valid7
101 );
102 function reg line_valid (
103 reg [6:0] index
104 );
105 task error_check (
106 reg [2:0] way,
107 reg [6:0] index
108 );
109 task create_vector (reg format,
110 reg [3:0] way,
111 var reg [31:0] vect
112 );
113 task evict_group (reg [28:0] evict_tag,
114 reg [4:0] evict_index,
115 var reg [111:0] inv_vect
116 );
117
118}
119
120#endif