Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / niu / vera / smx_drv / include / meta_monitor.if.vri
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: meta_monitor.if.vri
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#ifdef NIU_GATE
36
37// Do nothing
38
39
40#else
41#ifndef METAMON_IF
42#define METAMON_IF
43
44#define OUTPUT_EDGE PHOLD
45#define INPUT_EDGE PSAMPLE #-1
46#define OUTPUT_SKEW #1
47
48#define META_RESP_PATH NIU_DUV_PATH.tds.niu_smx
49#define META_PATH NIU_DUV_PATH.tds.niu_meta_arb // where NIU_DUV_PATH=TOP.cpu
50
51
52interface metamon_write_if
53{
54 input clk CLOCK verilog_node META_PATH.niu_clk";
55 input dmc_meta0_req INPUT_EDGE verilog_node META_PATH.dmc_meta0_req";
56 input [7:0] dmc_meta0_req_cmd INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_cmd";
57 input [5:0] dmc_meta0_transid INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_transID";
58 input [1:0] dmc_meta0_port_num INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_port_num";
59 input [4:0] dmc_meta0_dma_num INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_dma_num";
60 input [1:0] dmc_meta0_func_num INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_func_num";
61 input [13:0] dmc_meta0_req_length INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_length";
62 input [63:0] dmc_meta0_req_address INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_address";
63 input [7:0] dmc_meta0_clientid INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_client";
64 input [127:0] dmc_meta0_data INPUT_EDGE verilog_node META_PATH.dmc_meta0_data";
65 input dmc_meta0_data_valid INPUT_EDGE verilog_node META_PATH.dmc_meta0_data_valid";
66 input dmc_meta0_transfer_complete INPUT_EDGE verilog_node META_PATH.dmc_meta0_transfer_complete";
67 input [3:0] dmc_meta0_status INPUT_EDGE verilog_node META_PATH.dmc_meta0_status";
68 input [15:0] dmc_meta0_req_byteenable INPUT_EDGE verilog_node META_PATH.dmc_meta0_req_byteenable";
69
70 input meta_dmc0_req_accept INPUT_EDGE verilog_node META_PATH.meta_dmc0_req_accept";
71 input meta_dmc0_data_req INPUT_EDGE verilog_node META_PATH.meta_dmc0_data_req";
72//input meta_dmc0_req_errors INPUT_EDGE verilog_node META_PATH.meta_dmc0_req_errors";
73}
74
75port metamon_write_port
76{
77 clk;
78 command;
79 address;
80 command_request;
81 length;
82 dma_num;
83 func_num;
84 port_num;
85 transid;
86 client_id;
87 data;
88 data_valid;
89 byte_enables;
90
91 command_accept;
92 data_req;
93 transfer_complete;
94}
95
96bind metamon_write_port metamon_write_pbind
97{
98 clk metamon_write_if.clk;
99 command_request metamon_write_if.dmc_meta0_req;
100 command metamon_write_if.dmc_meta0_req_cmd;
101 address metamon_write_if.dmc_meta0_req_address;
102 length metamon_write_if.dmc_meta0_req_length;
103 dma_num metamon_write_if.dmc_meta0_dma_num;
104 func_num metamon_write_if.dmc_meta0_func_num;
105 port_num metamon_write_if.dmc_meta0_port_num;
106 transid metamon_write_if.dmc_meta0_transid;
107 client_id metamon_write_if.dmc_meta0_clientid;
108 data metamon_write_if.dmc_meta0_data;
109 data_valid metamon_write_if.dmc_meta0_data_valid;
110 byte_enables metamon_write_if.dmc_meta0_req_byteenable;
111 command_accept metamon_write_if.meta_dmc0_req_accept;
112 data_req metamon_write_if.meta_dmc0_data_req;
113 transfer_complete metamon_write_if.dmc_meta0_transfer_complete;
114}
115
116
117interface metamon_read_if
118{
119 input clk CLOCK verilog_node META_PATH.niu_clk";
120 input dmc_meta1_req INPUT_EDGE verilog_node META_PATH.dmc_meta1_req";
121 input [7:0] dmc_meta1_req_cmd INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_cmd";
122 input [5:0] dmc_meta1_transid INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_transID";
123 input [1:0] dmc_meta1_port_num INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_port_num";
124 input [4:0] dmc_meta1_dma_num INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_dma_num";
125 input [1:0] dmc_meta1_func_num INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_func_num";
126 input [13:0] dmc_meta1_req_length INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_length";
127 input [63:0] dmc_meta1_req_address INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_address";
128 input [7:0] dmc_meta1_clientid INPUT_EDGE verilog_node META_PATH.dmc_meta1_req_client";
129 input meta_dmc1_req_accept INPUT_EDGE verilog_node META_PATH.meta_dmc1_req_accept";
130//input meta_dmc1_req_errors INPUT_EDGE verilog_node META_PATH.meta_dmc1_req_errors";
131}
132
133port metamon_read_port
134{
135 clk;
136 command;
137 address;
138 command_request;
139 length;
140 dma_num;
141 func_num;
142 port_num;
143 transid;
144 client_id;
145
146 command_accept;
147}
148
149bind metamon_read_port metamon_read_pbind
150{
151 clk metamon_read_if.clk;
152 command_request metamon_read_if.dmc_meta1_req;
153 command metamon_read_if.dmc_meta1_req_cmd;
154 address metamon_read_if.dmc_meta1_req_address;
155 length metamon_read_if.dmc_meta1_req_length;
156 dma_num metamon_read_if.dmc_meta1_dma_num;
157 func_num metamon_read_if.dmc_meta1_func_num;
158 port_num metamon_read_if.dmc_meta1_port_num;
159 transid metamon_read_if.dmc_meta1_transid;
160 client_id metamon_read_if.dmc_meta1_clientid;
161 command_accept metamon_read_if.meta_dmc1_req_accept;
162}
163
164
165
166interface metamon_response_if
167{
168 input clk CLOCK verilog_node META_RESP_PATH.niu_clk";
169 input meta_dmc_resp_ready INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_ready";
170 input [7:0] meta_dmc_resp_cmd INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_cmd";
171 input [5:0] meta_dmc_resp_transid INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_transID";
172 input [1:0] meta_dmc_resp_port_num INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_port_num";
173 input [4:0] meta_dmc_resp_dma_num INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_dma_num";
174 input [13:0] meta_dmc_resp_length INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_length";
175 input [63:0] meta_dmc_resp_address INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_address";
176 input [7:0] meta_dmc_resp_clientid INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_client";
177 input [15:0] meta_dmc_resp_byteenable INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_byteenable";
178 input [127:0] meta_dmc_resp_data INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_data";
179 input [7:0] meta_dmc_resp_data_valid INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_data_valid";
180 input [3:0] meta_dmc_status INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_data_status";
181
182 input [7:0] meta_dmc_resp_complete INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_complete";
183 input [7:0] meta_dmc_trans_complete INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_resp_transfer_cmpl";
184 input [7:0] dmc_meta_resp_accept INPUT_EDGE verilog_node META_PATH.dmc_meta_resp_accept";
185}
186
187port metamon_response_port
188{
189 clk;
190 resp_command;
191 address;
192 resp_ready;
193 length;
194 dma_num;
195 port_num;
196 transid;
197 client_id;
198 resp_accept;
199 data;
200 byte_enables;
201 status;
202 data_valid;
203 resp_complete;
204 transfer_complete;
205}
206
207bind metamon_response_port metamon_resp_pbind
208{
209 clk metamon_response_if.clk;
210 resp_command metamon_response_if.meta_dmc_resp_cmd;
211 address metamon_response_if.meta_dmc_resp_address;
212 resp_ready metamon_response_if.meta_dmc_resp_ready;
213 length metamon_response_if.meta_dmc_resp_length;
214 dma_num metamon_response_if.meta_dmc_resp_dma_num;
215 port_num metamon_response_if.meta_dmc_resp_port_num;
216 transid metamon_response_if.meta_dmc_resp_transid;
217 client_id metamon_response_if.meta_dmc_resp_clientid;
218 resp_accept metamon_response_if.dmc_meta_resp_accept;
219 data metamon_response_if.meta_dmc_resp_data;
220 byte_enables metamon_response_if.meta_dmc_resp_byteenable;
221 status metamon_response_if.meta_dmc_status;
222 data_valid metamon_response_if.meta_dmc_resp_data_valid;
223 resp_complete metamon_response_if.meta_dmc_resp_complete;
224 transfer_complete metamon_response_if.meta_dmc_trans_complete;
225}
226
227#endif
228
229
230interface metamon_ack_if
231{
232 input clk CLOCK verilog_node META_RESP_PATH.niu_clk";
233 input [7:0] meta_dmc_ack_cmd INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_cmd[7:0]";
234 input [5:0] meta_dmc_ack_transID INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_transID[5:0]";
235 input [4:0] meta_dmc_ack_dma_num INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_dma_num[4:0]";
236 input meta_dmc_ack_client INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_client_rdmc";
237 input meta_dmc_ack_ready INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_ready";
238 input dmc_meta_ack_accept INPUT_EDGE verilog_node META_RESP_PATH.rdmc_meta_ack_accept";
239 input meta_dmc_ack_complete INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_complete";
240 input meta_dmc_ack_transfer_cmpl INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_transfer_cmpl[7:0]";
241
242//input [3:0] meta_dmc_ack_cmd_status INPUT_EDGE verilog_node META_RESP_PATH.meta_dmc_ack_cmd_status[3:0]";
243}
244
245port metamon_ack_port
246{
247 clk;
248 ack_command;
249 transid;
250 dma_num;
251 client_id;
252 ack_ready;
253 ack_accept;
254 ack_complete;
255 ack_xfer_complete;
256
257//ack_status;
258}
259
260bind metamon_ack_port metamon_ack_pbind
261{
262 clk metamon_ack_if.clk;
263 ack_command metamon_ack_if.meta_dmc_ack_cmd;
264 transid metamon_ack_if.meta_dmc_ack_transID;
265 dma_num metamon_ack_if.meta_dmc_ack_dma_num;
266 client_id metamon_ack_if.meta_dmc_ack_client;
267 ack_ready metamon_ack_if.meta_dmc_ack_ready;
268 ack_accept metamon_ack_if.dmc_meta_ack_accept;
269 ack_complete metamon_ack_if.meta_dmc_ack_complete;
270 ack_xfer_complete metamon_ack_if.meta_dmc_ack_transfer_cmpl;
271
272//ack_status metamon_ack_if.meta_dmc_ack_cmd_status;
273}
274
275interface metamon_arb_write_req_if
276{
277 input clk CLOCK verilog_node META_PATH.niu_clk";
278 input rcr_arb0_req INPUT_EDGE verilog_node META_PATH.rcr_arb0_req";
279 input rdc_arb0_req INPUT_EDGE verilog_node META_PATH.rdc_arb0_req";
280 input tdmc_arb0_req INPUT_EDGE verilog_node META_PATH.tdmc_arb0_req";
281 input meta_dmc0_req_accept INPUT_EDGE verilog_node META_PATH.meta_dmc0_req_accept";
282}
283
284port metamon_arb_wr_req_port
285{
286 clk;
287 rcr_arb0_req;
288 rdc_arb0_req;
289 tdmc_arb0_req;
290 meta_dmc0_req_accept;
291}
292
293bind metamon_arb_wr_req_port metamon_arb_wr_req_pbind
294{
295 clk metamon_arb_write_req_if.clk;
296 rcr_arb0_req metamon_arb_write_req_if.rcr_arb0_req;
297 rdc_arb0_req metamon_arb_write_req_if.rdc_arb0_req;
298 tdmc_arb0_req metamon_arb_write_req_if.tdmc_arb0_req;
299 meta_dmc0_req_accept metamon_arb_write_req_if.meta_dmc0_req_accept;
300}
301
302interface metamon_arb_read_req_if
303{
304 input clk CLOCK verilog_node META_PATH.niu_clk";
305 input zcp_arb1_req INPUT_EDGE verilog_node META_PATH.zcp_arb1_req";
306 input rbr_arb1_req INPUT_EDGE verilog_node META_PATH.rbr_arb1_req";
307 input tdmc_arb1_req INPUT_EDGE verilog_node META_PATH.tdmc_arb1_req";
308 input txc_arb1_req INPUT_EDGE verilog_node META_PATH.txc_arb1_req";
309 input meta_dmc1_req_accept INPUT_EDGE verilog_node META_PATH.meta_dmc1_req_accept";
310}
311
312port metamon_arb_rd_req_port
313{
314 clk;
315 zcp_arb1_req;
316 rbr_arb1_req;
317 tdmc_arb1_req;
318 txc_arb1_req;
319 meta_dmc1_req_accept;
320}
321
322bind metamon_arb_rd_req_port metamon_arb_rd_req_pbind
323{
324 clk metamon_arb_read_req_if.clk;
325 zcp_arb1_req metamon_arb_read_req_if.zcp_arb1_req;
326 rbr_arb1_req metamon_arb_read_req_if.rbr_arb1_req;
327 tdmc_arb1_req metamon_arb_read_req_if.tdmc_arb1_req;
328 txc_arb1_req metamon_arb_read_req_if.txc_arb1_req;
329 meta_dmc1_req_accept metamon_arb_read_req_if.meta_dmc1_req_accept;
330}
331
332
333#endif // if NIU_GATE... else...endif
334// End