Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / ccx / rtl / cpx_mbl_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: cpx_mbl_dp.v
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 FPGA
36module cpx_mbl_dp (
37 data_out_x_,
38 arb_grant_a,
39 arb_qsel0_a,
40 arb_qsel1_a,
41 arb_q0_holdbar_a,
42 arb_shift_a,
43 src_cpx_data_a,
44 data_prev_x_,
45 l2clk,
46 scan_in,
47 tcu_pce_ov,
48 ccx_aclk,
49 ccx_bclk,
50 tcu_scan_en,
51 scan_out,
52 ccx_aclk_out,
53 ccx_bclk_out,
54 tcu_pce_ov_out,
55 tcu_scan_en_out);
56wire pce_ov;
57wire stop;
58wire siclk_in;
59wire soclk_in;
60wire se;
61wire [149:0] src_data_a;
62wire l1clka;
63wire l1clkb;
64wire i0_scanin;
65wire i0_scanout;
66wire i1_scanin;
67wire i1_scanout;
68wire i2_scanin;
69wire i2_scanout;
70wire i3_scanin;
71wire i3_scanout;
72wire i4_scanin;
73wire i4_scanout;
74wire i5_scanin;
75wire i5_scanout;
76wire i6_scanin;
77wire i6_scanout;
78wire i7_scanin;
79wire i7_scanout;
80wire i8_scanin;
81wire i8_scanout;
82wire i9_scanin;
83wire i9_scanout;
84wire i10_scanin;
85wire i10_scanout;
86wire i11_scanin;
87wire i11_scanout;
88wire i12_scanin;
89wire i12_scanout;
90wire i13_scanin;
91wire i13_scanout;
92wire i14_scanin;
93wire i14_scanout;
94
95
96output [149:0] data_out_x_;
97
98input arb_grant_a;
99input arb_qsel0_a;
100input arb_qsel1_a;
101input arb_q0_holdbar_a;
102input arb_shift_a;
103
104
105input [149:0] src_cpx_data_a;
106input [149:0] data_prev_x_;
107
108// globals
109input l2clk;
110input scan_in;
111input tcu_pce_ov; // scan signals
112input ccx_aclk;
113input ccx_bclk;
114input tcu_scan_en;
115
116output scan_out;
117
118// buffer the high fanout nets
119output ccx_aclk_out;
120output ccx_bclk_out;
121output tcu_pce_ov_out;
122output tcu_scan_en_out;
123
124// scan renames
125assign pce_ov = tcu_pce_ov_out;
126assign stop = 1'b0;
127assign siclk_in = ccx_aclk_out;
128assign soclk_in = ccx_bclk_out;
129assign se = tcu_scan_en_out ;
130// end scan
131
132assign src_data_a[149:0] = src_cpx_data_a[149:0];
133
134//cl_dp1_l1hdr_24x gkt_hdr (
135//.l2clk(l2clk),
136//.pce(1'b1),
137//.aclk(siclk),
138//.bclk(soclk),
139//.siclk_out(siclk_out_unused),
140//.soclk_out(soclk_out_unused),
141//.l1clk(l1clk),
142//.pce_ov(pce_ov),
143//.stop(stop)
144//);
145//
146
147//l1clkhdr_dp_macro gkt_hdra
148// (
149// .l2clk (l2clk),
150// .l1en (1'b1 ),
151// .siclk_out (sia_unused),
152// .soclk_out (soa_unused),
153// .l1clk (l1clka)
154// );
155
156//l1clkhdr_dp_macro gkt_hdrb
157// (
158// .l2clk (l2clk),
159// .l1en (1'b1 ),
160// .siclk_out (sib_unused),
161// .soclk_out (sob_unused),
162// .l1clk (l1clkb)
163// );
164
165cpx_mbl_dp_buff_macro__dbuff_8x__stack_none__vertical_1__width_4 buf_hfn (
166 .din ({ccx_aclk,ccx_bclk, tcu_pce_ov, tcu_scan_en}),
167 .dout ({ccx_aclk_out,ccx_bclk_out,tcu_pce_ov_out,tcu_scan_en_out})
168);
169
170cpx_mbl_dp_ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdra
171 (
172 .l2clk (l2clk),
173 .l1en (1'b1 ),
174 .l1clk (l1clka),
175 .pce_ov(pce_ov),
176 .stop(stop),
177 .se(se)
178 );
179
180cpx_mbl_dp_ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdrb
181 (
182 .l2clk (l2clk),
183 .l1en (1'b1 ),
184 .l1clk (l1clkb),
185 .pce_ov(pce_ov),
186 .stop(stop),
187 .se(se)
188 );
189
190// ccx_new_macro_b AUTO_TEMPLATE
191// (
192//.l2clk (l2clk),
193//.l1clk (l1clk),
194//.pce0 (arb_q0_holdbar_a),
195//.pce1 (arb_qsel1_a),
196//.pce_ov (pce_ov),
197//.stop (stop),
198//.siclk_in (siclk_in),
199//.soclk_in (soclk_in),
200//.grant_a (arb_grant_a),
201//.qsel0 (arb_qsel0_a),
202//.shift (arb_shift_a),
203//.data_a (src_data_a[@"(+ 9 (* 10 @))":@"(* 10 @)"]),
204//.data_prev_x_l (data_prev_x_[@"(+ 9 (* 10 @))":@"(* 10 @)"]),
205//.data_x_l (data_out_x_[@"(+ 9 (* 10 @))":@"(* 10 @)"]),
206//);
207
208cpx_mbl_dp_ccx_new_macro__type_b_l i0 (
209 // Outputs
210 .data_x_l (data_out_x_[9:0]), // Templated
211 // Inputs
212 .scan_in(i0_scanin),
213 .scan_out(i0_scanout),
214 .l2clk (l2clk), // Templated
215 .l1clk (l1clka), // Templated
216 .pce0 (arb_q0_holdbar_a), // Templated
217 .pce1 (arb_qsel1_a), // Templated
218 .pce_ov (pce_ov), // Templated
219 .stop (stop), // Templated
220 .siclk_in (siclk_in), // Templated
221 .soclk_in (soclk_in), // Templated
222 .grant_a (arb_grant_a), // Templated
223 .qsel0 (arb_qsel0_a), // Templated
224 .shift (arb_shift_a), // Templated
225 .data_a (src_data_a[9:0]), // Templated
226 .data_prev_x_l (data_prev_x_[9:0]),
227 .se(se)); // Templated
228
229cpx_mbl_dp_ccx_new_macro__type_b_l i1 (
230 // Outputs
231 .data_x_l (data_out_x_[19:10]), // Templated
232 // Inputs
233 .scan_in(i1_scanin),
234 .scan_out(i1_scanout),
235 .l2clk (l2clk), // Templated
236 .l1clk (l1clka), // Templated
237 .pce0 (arb_q0_holdbar_a), // Templated
238 .pce1 (arb_qsel1_a), // Templated
239 .pce_ov (pce_ov), // Templated
240 .stop (stop), // Templated
241 .siclk_in (siclk_in), // Templated
242 .soclk_in (soclk_in), // Templated
243 .grant_a (arb_grant_a), // Templated
244 .qsel0 (arb_qsel0_a), // Templated
245 .shift (arb_shift_a), // Templated
246 .data_a (src_data_a[19:10]), // Templated
247 .data_prev_x_l (data_prev_x_[19:10]),
248 .se(se)); // Templated
249
250cpx_mbl_dp_ccx_new_macro__type_b_l i2 (
251 // Outputs
252 .data_x_l (data_out_x_[29:20]), // Templated
253 // Inputs
254 .scan_in(i2_scanin),
255 .scan_out(i2_scanout),
256 .l2clk (l2clk), // Templated
257 .l1clk (l1clka), // Templated
258 .pce0 (arb_q0_holdbar_a), // Templated
259 .pce1 (arb_qsel1_a), // Templated
260 .pce_ov (pce_ov), // Templated
261 .stop (stop), // Templated
262 .siclk_in (siclk_in), // Templated
263 .soclk_in (soclk_in), // Templated
264 .grant_a (arb_grant_a), // Templated
265 .qsel0 (arb_qsel0_a), // Templated
266 .shift (arb_shift_a), // Templated
267 .data_a (src_data_a[29:20]), // Templated
268 .data_prev_x_l (data_prev_x_[29:20]),
269 .se(se)); // Templated
270cpx_mbl_dp_ccx_new_macro__type_b_l i3 (
271 // Outputs
272 .data_x_l (data_out_x_[39:30]), // Templated
273 // Inputs
274 .scan_in(i3_scanin),
275 .scan_out(i3_scanout),
276 .l2clk (l2clk), // Templated
277 .l1clk (l1clka), // Templated
278 .pce0 (arb_q0_holdbar_a), // Templated
279 .pce1 (arb_qsel1_a), // Templated
280 .pce_ov (pce_ov), // Templated
281 .stop (stop), // Templated
282 .siclk_in (siclk_in), // Templated
283 .soclk_in (soclk_in), // Templated
284 .grant_a (arb_grant_a), // Templated
285 .qsel0 (arb_qsel0_a), // Templated
286 .shift (arb_shift_a), // Templated
287 .data_a (src_data_a[39:30]), // Templated
288 .data_prev_x_l (data_prev_x_[39:30]),
289 .se(se)); // Templated
290cpx_mbl_dp_ccx_new_macro__type_b_l i4 (
291 // Outputs
292 .data_x_l (data_out_x_[49:40]), // Templated
293 // Inputs
294 .scan_in(i4_scanin),
295 .scan_out(i4_scanout),
296 .l2clk (l2clk), // Templated
297 .l1clk (l1clka), // Templated
298 .pce0 (arb_q0_holdbar_a), // Templated
299 .pce1 (arb_qsel1_a), // Templated
300 .pce_ov (pce_ov), // Templated
301 .stop (stop), // Templated
302 .siclk_in (siclk_in), // Templated
303 .soclk_in (soclk_in), // Templated
304 .grant_a (arb_grant_a), // Templated
305 .qsel0 (arb_qsel0_a), // Templated
306 .shift (arb_shift_a), // Templated
307 .data_a (src_data_a[49:40]), // Templated
308 .data_prev_x_l (data_prev_x_[49:40]),
309 .se(se)); // Templated
310cpx_mbl_dp_ccx_new_macro__type_b_l i5 (
311 // Outputs
312 .data_x_l (data_out_x_[59:50]), // Templated
313 // Inputs
314 .scan_in(i5_scanin),
315 .scan_out(i5_scanout),
316 .l2clk (l2clk), // Templated
317 .l1clk (l1clka), // Templated
318 .pce0 (arb_q0_holdbar_a), // Templated
319 .pce1 (arb_qsel1_a), // Templated
320 .pce_ov (pce_ov), // Templated
321 .stop (stop), // Templated
322 .siclk_in (siclk_in), // Templated
323 .soclk_in (soclk_in), // Templated
324 .grant_a (arb_grant_a), // Templated
325 .qsel0 (arb_qsel0_a), // Templated
326 .shift (arb_shift_a), // Templated
327 .data_a (src_data_a[59:50]), // Templated
328 .data_prev_x_l (data_prev_x_[59:50]),
329 .se(se)); // Templated
330cpx_mbl_dp_ccx_new_macro__type_b_l i6 (
331 // Outputs
332 .data_x_l (data_out_x_[69:60]), // Templated
333 // Inputs
334 .scan_in(i6_scanin),
335 .scan_out(i6_scanout),
336 .l2clk (l2clk), // Templated
337 .l1clk (l1clka), // Templated
338 .pce0 (arb_q0_holdbar_a), // Templated
339 .pce1 (arb_qsel1_a), // Templated
340 .pce_ov (pce_ov), // Templated
341 .stop (stop), // Templated
342 .siclk_in (siclk_in), // Templated
343 .soclk_in (soclk_in), // Templated
344 .grant_a (arb_grant_a), // Templated
345 .qsel0 (arb_qsel0_a), // Templated
346 .shift (arb_shift_a), // Templated
347 .data_a (src_data_a[69:60]), // Templated
348 .data_prev_x_l (data_prev_x_[69:60]),
349 .se(se)); // Templated
350cpx_mbl_dp_ccx_new_macro__type_b_l i7 (
351 // Outputs
352 .data_x_l (data_out_x_[79:70]), // Templated
353 // Inputs
354 .scan_in(i7_scanin),
355 .scan_out(i7_scanout),
356 .l2clk (l2clk), // Templated
357 .l1clk (l1clka), // Templated
358 .pce0 (arb_q0_holdbar_a), // Templated
359 .pce1 (arb_qsel1_a), // Templated
360 .pce_ov (pce_ov), // Templated
361 .stop (stop), // Templated
362 .siclk_in (siclk_in), // Templated
363 .soclk_in (soclk_in), // Templated
364 .grant_a (arb_grant_a), // Templated
365 .qsel0 (arb_qsel0_a), // Templated
366 .shift (arb_shift_a), // Templated
367 .data_a (src_data_a[79:70]), // Templated
368 .data_prev_x_l (data_prev_x_[79:70]),
369 .se(se)); // Templated
370cpx_mbl_dp_ccx_new_macro__type_b_l i8 (
371 // Outputs
372 .data_x_l (data_out_x_[89:80]), // Templated
373 // Inputs
374 .scan_in(i8_scanin),
375 .scan_out(i8_scanout),
376 .l2clk (l2clk), // Templated
377 .l1clk (l1clkb), // Templated
378 .pce0 (arb_q0_holdbar_a), // Templated
379 .pce1 (arb_qsel1_a), // Templated
380 .pce_ov (pce_ov), // Templated
381 .stop (stop), // Templated
382 .siclk_in (siclk_in), // Templated
383 .soclk_in (soclk_in), // Templated
384 .grant_a (arb_grant_a), // Templated
385 .qsel0 (arb_qsel0_a), // Templated
386 .shift (arb_shift_a), // Templated
387 .data_a (src_data_a[89:80]), // Templated
388 .data_prev_x_l (data_prev_x_[89:80]),
389 .se(se)); // Templated
390cpx_mbl_dp_ccx_new_macro__type_b_l i9 (
391 // Outputs
392 .data_x_l (data_out_x_[99:90]), // Templated
393 // Inputs
394 .scan_in(i9_scanin),
395 .scan_out(i9_scanout),
396 .l2clk (l2clk), // Templated
397 .l1clk (l1clkb), // Templated
398 .pce0 (arb_q0_holdbar_a), // Templated
399 .pce1 (arb_qsel1_a), // Templated
400 .pce_ov (pce_ov), // Templated
401 .stop (stop), // Templated
402 .siclk_in (siclk_in), // Templated
403 .soclk_in (soclk_in), // Templated
404 .grant_a (arb_grant_a), // Templated
405 .qsel0 (arb_qsel0_a), // Templated
406 .shift (arb_shift_a), // Templated
407 .data_a (src_data_a[99:90]), // Templated
408 .data_prev_x_l (data_prev_x_[99:90]),
409 .se(se)); // Templated
410cpx_mbl_dp_ccx_new_macro__type_b_l i10 (
411 // Outputs
412 .data_x_l (data_out_x_[109:100]), // Templated
413 // Inputs
414 .scan_in(i10_scanin),
415 .scan_out(i10_scanout),
416 .l2clk (l2clk), // Templated
417 .l1clk (l1clkb), // Templated
418 .pce0 (arb_q0_holdbar_a), // Templated
419 .pce1 (arb_qsel1_a), // Templated
420 .pce_ov (pce_ov), // Templated
421 .stop (stop), // Templated
422 .siclk_in (siclk_in), // Templated
423 .soclk_in (soclk_in), // Templated
424 .grant_a (arb_grant_a), // Templated
425 .qsel0 (arb_qsel0_a), // Templated
426 .shift (arb_shift_a), // Templated
427 .data_a (src_data_a[109:100]), // Templated
428 .data_prev_x_l (data_prev_x_[109:100]),
429 .se(se)); // Templated
430cpx_mbl_dp_ccx_new_macro__type_b_l i11 (
431 // Outputs
432 .data_x_l (data_out_x_[119:110]), // Templated
433 // Inputs
434 .scan_in(i11_scanin),
435 .scan_out(i11_scanout),
436 .l2clk (l2clk), // Templated
437 .l1clk (l1clkb), // Templated
438 .pce0 (arb_q0_holdbar_a), // Templated
439 .pce1 (arb_qsel1_a), // Templated
440 .pce_ov (pce_ov), // Templated
441 .stop (stop), // Templated
442 .siclk_in (siclk_in), // Templated
443 .soclk_in (soclk_in), // Templated
444 .grant_a (arb_grant_a), // Templated
445 .qsel0 (arb_qsel0_a), // Templated
446 .shift (arb_shift_a), // Templated
447 .data_a (src_data_a[119:110]), // Templated
448 .data_prev_x_l (data_prev_x_[119:110]),
449 .se(se)); // Templated
450cpx_mbl_dp_ccx_new_macro__type_b_l i12 (
451 // Outputs
452 .data_x_l (data_out_x_[129:120]), // Templated
453 // Inputs
454 .scan_in(i12_scanin),
455 .scan_out(i12_scanout),
456 .l2clk (l2clk), // Templated
457 .l1clk (l1clkb), // Templated
458 .pce0 (arb_q0_holdbar_a), // Templated
459 .pce1 (arb_qsel1_a), // Templated
460 .pce_ov (pce_ov), // Templated
461 .stop (stop), // Templated
462 .siclk_in (siclk_in), // Templated
463 .soclk_in (soclk_in), // Templated
464 .grant_a (arb_grant_a), // Templated
465 .qsel0 (arb_qsel0_a), // Templated
466 .shift (arb_shift_a), // Templated
467 .data_a (src_data_a[129:120]), // Templated
468 .data_prev_x_l (data_prev_x_[129:120]),
469 .se(se)); // Templated
470cpx_mbl_dp_ccx_new_macro__type_b_l i13 (
471 // Outputs
472 .data_x_l (data_out_x_[139:130]), // Templated
473 // Inputs
474 .scan_in(i13_scanin),
475 .scan_out(i13_scanout),
476 .l2clk (l2clk), // Templated
477 .l1clk (l1clkb), // Templated
478 .pce0 (arb_q0_holdbar_a), // Templated
479 .pce1 (arb_qsel1_a), // Templated
480 .pce_ov (pce_ov), // Templated
481 .stop (stop), // Templated
482 .siclk_in (siclk_in), // Templated
483 .soclk_in (soclk_in), // Templated
484 .grant_a (arb_grant_a), // Templated
485 .qsel0 (arb_qsel0_a), // Templated
486 .shift (arb_shift_a), // Templated
487 .data_a (src_data_a[139:130]), // Templated
488 .data_prev_x_l (data_prev_x_[139:130]),
489 .se(se)); // Templated
490cpx_mbl_dp_ccx_new_macro__type_b_l i14 (
491 // Outputs
492 .data_x_l (data_out_x_[149:140]), // Templated
493 // Inputs
494 .scan_in(i14_scanin),
495 .scan_out(i14_scanout),
496 .l2clk (l2clk), // Templated
497 .l1clk (l1clkb), // Templated
498 .pce0 (arb_q0_holdbar_a), // Templated
499 .pce1 (arb_qsel1_a), // Templated
500 .pce_ov (pce_ov), // Templated
501 .stop (stop), // Templated
502 .siclk_in (siclk_in), // Templated
503 .soclk_in (soclk_in), // Templated
504 .grant_a (arb_grant_a), // Templated
505 .qsel0 (arb_qsel0_a), // Templated
506 .shift (arb_shift_a), // Templated
507 .data_a (src_data_a[149:140]), // Templated
508 .data_prev_x_l (data_prev_x_[149:140]),
509 .se(se)); // Templated
510
511// fixscan start:
512assign i14_scanin = scan_in ;
513assign i13_scanin = i14_scanout ;
514assign i12_scanin = i13_scanout ;
515assign i11_scanin = i12_scanout ;
516assign i10_scanin = i11_scanout ;
517assign i9_scanin = i10_scanout ;
518assign i8_scanin = i9_scanout ;
519assign i7_scanin = i8_scanout ;
520assign i6_scanin = i7_scanout ;
521assign i5_scanin = i6_scanout ;
522assign i4_scanin = i5_scanout ;
523assign i3_scanin = i4_scanout ;
524assign i2_scanin = i3_scanout ;
525assign i1_scanin = i2_scanout ;
526assign i0_scanin = i1_scanout ;
527assign scan_out = i0_scanout ;
528// fixscan end:
529endmodule
530
531//// scan renames
532//assign pce_ov = tcu_pce_ov;
533//assign stop = tcu_clk_stop;
534//assign siclk = tcu_aclk;
535//assign soclk = tcu_bclk;
536//// end scan
537//
538//// buffer the grant signal
539//
540//buff_macro i_buf_grant (width=1, stack=50c)
541//(
542// .din (arb_grant_a),
543// .dout (grant_a),
544// );
545//
546//msff_macro i_dff_grant_x (width=12, stack=50c)
547//(
548// .scan_in(i_dff_grant_x_scanin),
549// .scan_out(i_dff_grant_x_scanout),
550// .clk (l2clk),
551// .din ({12{grant_a}}),
552// .dout (grant_x[11:0]),
553// .en (1'b1),
554// );
555//
556//
557//// DATAPATH SECTION
558//
559//msff_macro i_dff_q1_2 (width=50, stack=50c)
560//(
561// .scan_in(i_dff_q1_2_scanin),
562// .scan_out(i_dff_q1_2_scanout),
563// .clk (l2clk),
564// .din (src_cpx_data_a[149:100]),
565// .dout (q1_dataout[149:100]),
566// .en (arb_qsel1_a),
567// );
568//
569//msff_macro i_dff_q1_1 (width=50, stack=50c)
570//(
571// .scan_in(i_dff_q1_1_scanin),
572// .scan_out(i_dff_q1_1_scanout),
573// .clk (l2clk),
574// .din (src_cpx_data_a[99:50]),
575// .dout (q1_dataout[99:50]),
576// .en (arb_qsel1_a),
577// );
578//
579//msff_macro i_dff_q1_0 (width=50, stack=50c)
580//(
581// .scan_in(i_dff_q1_0_scanin),
582// .scan_out(i_dff_q1_0_scanout),
583// .clk (l2clk),
584// .din (src_cpx_data_a[49:0]),
585// .dout (q1_dataout[49:0]),
586// .en (arb_qsel1_a),
587// );
588//
589////assign q0_datain_ca[149:0] =
590//// (arb_cpxdp_qsel0_ca ? src_cpx_data_ca[149:0] : 150'd0) |
591//// (arb_cpxdp_shift_cx ? q1_dataout[149:0] : 150'd0) ;
592//
593//
594//mux_macro i_mux_q0_2 (width=50, mux=aonpe, ports=2, stack=50c)
595//(
596// .din0 (src_cpx_data_a[149:100]),
597// .din1 (q1_dataout[149:100]),
598// .sel0 (arb_qsel0_a),
599// .sel1 (arb_shift_a),
600// .dout (q0_datain_a[149:100]),
601// );
602//
603//mux_macro i_mux_q0_1 (width=50, mux=aonpe, ports=2, stack=50c)
604//(
605// .din0 (src_cpx_data_a[99:50]),
606// .din1 (q1_dataout[99:50]),
607// .sel0 (arb_qsel0_a),
608// .sel1 (arb_shift_a),
609// .dout (q0_datain_a[99:50]),
610// );
611//
612//mux_macro i_mux_q0_0 (width=50, mux=aonpe, ports=2, stack=50c)
613//(
614// .din0 (src_cpx_data_a[49:0]),
615// .din1 (q1_dataout[49:0]),
616// .sel0 (arb_qsel0_a),
617// .sel1 (arb_shift_a),
618// .dout (q0_datain_a[49:0]),
619// );
620//
621//msff_macro i_dff_q0_2 (width=50, stack=50c)
622//(
623// .scan_in(i_dff_q0_2_scanin),
624// .scan_out(i_dff_q0_2_scanout),
625// .clk (l2clk),
626// .din (q0_datain_a[149:100]),
627// .dout (q0_dataout[149:100]),
628// .en (arb_q0_holdbar_a),
629// );
630//
631//msff_macro i_dff_q0_1 (width=50, stack=50c)
632//(
633// .scan_in(i_dff_q0_1_scanin),
634// .scan_out(i_dff_q0_1_scanout),
635// .clk (l2clk),
636// .din (q0_datain_a[99:50]),
637// .dout (q0_dataout[99:50]),
638// .en (arb_q0_holdbar_a),
639// );
640//
641//msff_macro i_dff_q0_0 (width=50, stack=50c)
642//(
643// .scan_in(i_dff_q0_0_scanin),
644// .scan_out(i_dff_q0_0_scanout),
645// .clk (l2clk),
646// .din (q0_datain_a[49:0]),
647// .dout (q0_dataout[49:0]),
648// .en (arb_q0_holdbar_a),
649// );
650//
651////MUX
652//
653//nand_macro i_nand_data_g_2 (width=50, ports=2, stack=50c)
654//(
655// .din0 (q0_dataout[149:100]),
656// .din1 ({{10{grant_x[11]}},{15{grant_x[10]}},{15{grant_x[9]}},{10{grant_x[8]}}}),
657// .dout (data_x_[149:100]),
658// );
659//
660//nand_macro i_nand_data_g_1 (width=50, ports=2, stack=50c)
661//(
662// .din0 (q0_dataout[99:50]),
663// .din1 ({{10{grant_x[7]}},{15{grant_x[6]}},{15{grant_x[5]}},{10{grant_x[4]}}}),
664// .dout (data_x_[99:50]),
665// );
666//
667//nand_macro i_nand_data_g_0 (width=50, ports=2, stack=50c)
668//(
669// .din0 (q0_dataout[49:0]),
670// .din1 ({{10{grant_x[3]}},{15{grant_x[2]}},{15{grant_x[1]}},{10{grant_x[0]}}}),
671// .dout (data_x_[49:0]),
672// );
673//
674//
675//nand_macro i_nand_data_prev_2 (width=50, ports=2, stack=50c)
676//(
677// .din0 (data_x_[149:100]),
678// .din1 (data_prev_x_[149:100]),
679// .dout (data_out_x[149:100])
680// );
681//
682//nand_macro i_nand_data_prev_1 (width=50, ports=2, stack=50c)
683//(
684// .din0 (data_x_[99:50]),
685// .din1 (data_prev_x_[99:50]),
686// .dout (data_out_x[99:50])
687// );
688//
689//nand_macro i_nand_data_prev_0 (width=50, ports=2, stack=50c)
690//(
691// .din0 (data_x_[49:0]),
692// .din1 (data_prev_x_[49:0]),
693// .dout (data_out_x[49:0])
694// );
695//
696//inv_macro i_inv_data_out_2 (width=50, stack=50c)
697//(
698// .din (data_out_x[149:100]),
699// .dout (data_out_x_[149:100])
700// );
701//
702//inv_macro i_inv_data_out_1 (width=50, stack=50c)
703//(
704// .din (data_out_x[99:50]),
705// .dout (data_out_x_[99:50])
706// );
707//
708//inv_macro i_inv_data_out_0 (width=50, stack=50c)
709//(
710// .din (data_out_x[49:0]),
711// .dout (data_out_x_[49:0])
712// );
713//
714//// fixscan start:
715//assign i_dff_grant_x_scanin = scan_in ;
716//assign i_dff_q1_2_scanin = i_dff_grant_x_scanout ;
717//assign i_dff_q1_1_scanin = i_dff_q1_2_scanout ;
718//assign i_dff_q1_0_scanin = i_dff_q1_1_scanout ;
719//assign i_dff_q0_2_scanin = i_dff_q1_0_scanout ;
720//assign i_dff_q0_1_scanin = i_dff_q0_2_scanout ;
721//assign i_dff_q0_0_scanin = i_dff_q0_1_scanout ;
722//assign scan_out = i_dff_q0_0_scanout ;
723//// fixscan end:
724//endmodule
725
726
727//
728// buff macro
729//
730//
731
732
733
734
735
736module cpx_mbl_dp_buff_macro__dbuff_8x__stack_none__vertical_1__width_4 (
737 din,
738 dout);
739 input [3:0] din;
740 output [3:0] dout;
741
742
743
744
745
746
747buff #(4) d0_0 (
748.in(din[3:0]),
749.out(dout[3:0])
750);
751
752
753
754
755
756
757
758
759endmodule
760
761
762
763
764
765
766
767
768
769// any PARAMS parms go into naming of macro
770
771module cpx_mbl_dp_ccx_l1clkhdr_ctl_macro__dl1hdr_24x (
772 l2clk,
773 l1en,
774 pce_ov,
775 stop,
776 se,
777 l1clk);
778
779
780 input l2clk;
781 input l1en;
782 input pce_ov;
783 input stop;
784 input se;
785 output l1clk;
786
787
788
789
790
791cl_sc1_l1hdr_24x c_0 (
792
793
794 .l2clk(l2clk),
795 .pce(l1en),
796 .l1clk(l1clk),
797 .se(se),
798 .pce_ov(pce_ov),
799 .stop(stop)
800);
801
802
803
804
805
806
807endmodule
808
809
810
811
812
813
814
815
816
817//
818// ccx macro
819//
820//
821
822
823
824
825
826module cpx_mbl_dp_ccx_new_macro__type_b_l (
827 l2clk,
828 l1clk,
829 pce0,
830 pce1,
831 pce_ov,
832 se,
833 stop,
834 siclk_in,
835 soclk_in,
836 scan_in,
837 grant_a,
838 qsel0,
839 shift,
840 data_a,
841 data_prev_x_l,
842 data_x_l,
843 scan_out);
844wire so5;
845wire siclk_out;
846wire soclk_out;
847wire l1clk0;
848wire l1clk1;
849wire grant_x;
850wire qsel0_buf;
851wire shift_buf;
852
853input l2clk;
854input l1clk;
855input pce0;
856input pce1;
857input pce_ov;
858input se;
859input stop;
860input siclk_in;
861input soclk_in;
862input scan_in;
863input grant_a;
864input qsel0;
865input shift;
866input [9:0] data_a;
867input [9:0] data_prev_x_l;
868output [9:0] data_x_l;
869output scan_out;
870cl_dp1_ccxhdr c0 (
871.si(scan_in),
872.so(so5),
873 .l2clk(l2clk),
874 .pce0(pce0),
875 .pce1(pce1),
876 .pce_ov(pce_ov),
877 .stop(stop),
878 .siclk_in(siclk_in),
879 .soclk_in(soclk_in),
880 .siclk_out(siclk_out),
881 .soclk_out(soclk_out),
882 .l1clk0(l1clk0),
883 .l1clk1(l1clk1),
884 .se(se),
885 .l1clk(l1clk),
886 .grant_a(grant_a),
887 .grant_x(grant_x),
888 .qsel0(qsel0),
889 .qsel0_buf(qsel0_buf),
890 .shift(shift),
891 .shift_buf(shift_buf)
892);
893
894
895
896
897
898
899ccx_mac_b #(10) mac_b(
900.siclk(siclk_out),
901.soclk(soclk_out),
902.data_a(data_a[9:0]),
903.data_prev_x_l(data_prev_x_l[9:0]),
904.data_x_l(data_x_l[9:0]),
905.si(so5),
906.so(scan_out),
907 .l1clk0(l1clk0),
908 .l1clk1(l1clk1),
909 .grant_x(grant_x),
910 .qsel0_buf(qsel0_buf),
911 .shift_buf(shift_buf)
912);
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927endmodule
928
929
930
931`endif // `ifndef FPGA
932
933`ifdef FPGA
934`timescale 1 ns / 100 ps
935module cpx_mbl_dp(data_out_x_, arb_grant_a, arb_qsel0_a, arb_qsel1_a,
936 arb_q0_holdbar_a, arb_shift_a, src_cpx_data_a, data_prev_x_, l2clk,
937 scan_in, tcu_pce_ov, ccx_aclk, ccx_bclk, tcu_scan_en, scan_out,
938 ccx_aclk_out, ccx_bclk_out, tcu_pce_ov_out, tcu_scan_en_out);
939
940 output [149:0] data_out_x_;
941 input arb_grant_a;
942 input arb_qsel0_a;
943 input arb_qsel1_a;
944 input arb_q0_holdbar_a;
945 input arb_shift_a;
946 input [149:0] src_cpx_data_a;
947 input [149:0] data_prev_x_;
948 input l2clk;
949 input scan_in;
950 input tcu_pce_ov;
951 input ccx_aclk;
952 input ccx_bclk;
953 input tcu_scan_en;
954 output scan_out;
955 output ccx_aclk_out;
956 output ccx_bclk_out;
957 output tcu_pce_ov_out;
958 output tcu_scan_en_out;
959
960 wire pce_ov;
961 wire stop;
962 wire siclk_in;
963 wire soclk_in;
964 wire se;
965 wire [149:0] src_data_a;
966 wire l1clka;
967 wire l1clkb;
968 wire i0_scanin;
969 wire i0_scanout;
970 wire i1_scanin;
971 wire i1_scanout;
972 wire i2_scanin;
973 wire i2_scanout;
974 wire i3_scanin;
975 wire i3_scanout;
976 wire i4_scanin;
977 wire i4_scanout;
978 wire i5_scanin;
979 wire i5_scanout;
980 wire i6_scanin;
981 wire i6_scanout;
982 wire i7_scanin;
983 wire i7_scanout;
984 wire i8_scanin;
985 wire i8_scanout;
986 wire i9_scanin;
987 wire i9_scanout;
988 wire i10_scanin;
989 wire i10_scanout;
990 wire i11_scanin;
991 wire i11_scanout;
992 wire i12_scanin;
993 wire i12_scanout;
994 wire i13_scanin;
995 wire i13_scanout;
996 wire i14_scanin;
997 wire i14_scanout;
998
999 assign pce_ov = tcu_pce_ov_out;
1000 assign stop = 1'b0;
1001 assign siclk_in = ccx_aclk_out;
1002 assign soclk_in = ccx_bclk_out;
1003 assign se = tcu_scan_en_out;
1004 assign src_data_a[149:0] = src_cpx_data_a[149:0];
1005 assign i14_scanin = scan_in;
1006 assign i13_scanin = i14_scanout;
1007 assign i12_scanin = i13_scanout;
1008 assign i11_scanin = i12_scanout;
1009 assign i10_scanin = i11_scanout;
1010 assign i9_scanin = i10_scanout;
1011 assign i8_scanin = i9_scanout;
1012 assign i7_scanin = i8_scanout;
1013 assign i6_scanin = i7_scanout;
1014 assign i5_scanin = i6_scanout;
1015 assign i4_scanin = i5_scanout;
1016 assign i3_scanin = i4_scanout;
1017 assign i2_scanin = i3_scanout;
1018 assign i1_scanin = i2_scanout;
1019 assign i0_scanin = i1_scanout;
1020 assign scan_out = i0_scanout;
1021
1022 buff_macro__dbuff_8x__stack_none__vertical_1__width_4 buf_hfn(
1023 .din ({ccx_aclk, ccx_bclk,
1024 tcu_pce_ov, tcu_scan_en}),
1025 .dout ({ccx_aclk_out, ccx_bclk_out,
1026 tcu_pce_ov_out, tcu_scan_en_out}));
1027 ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdra(
1028 .l2clk (l2clk),
1029 .l1en (1'b1),
1030 .l1clk (l1clka),
1031 .pce_ov (pce_ov),
1032 .stop (stop),
1033 .se (se));
1034 ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdrb(
1035 .l2clk (l2clk),
1036 .l1en (1'b1),
1037 .l1clk (l1clkb),
1038 .pce_ov (pce_ov),
1039 .stop (stop),
1040 .se (se));
1041 ccx_new_macro__type_b_l i0(
1042 .data_x_l (data_out_x_[9:0]),
1043 .scan_in (i0_scanin),
1044 .scan_out (i0_scanout),
1045 .l2clk (l2clk),
1046 .l1clk (l1clka),
1047 .pce0 (arb_q0_holdbar_a),
1048 .pce1 (arb_qsel1_a),
1049 .pce_ov (pce_ov),
1050 .stop (stop),
1051 .siclk_in (siclk_in),
1052 .soclk_in (soclk_in),
1053 .grant_a (arb_grant_a),
1054 .qsel0 (arb_qsel0_a),
1055 .shift (arb_shift_a),
1056 .data_a (src_data_a[9:0]),
1057 .data_prev_x_l (data_prev_x_[9:0]),
1058 .se (se));
1059 ccx_new_macro__type_b_l i1(
1060 .data_x_l (data_out_x_[19:10]),
1061 .scan_in (i1_scanin),
1062 .scan_out (i1_scanout),
1063 .l2clk (l2clk),
1064 .l1clk (l1clka),
1065 .pce0 (arb_q0_holdbar_a),
1066 .pce1 (arb_qsel1_a),
1067 .pce_ov (pce_ov),
1068 .stop (stop),
1069 .siclk_in (siclk_in),
1070 .soclk_in (soclk_in),
1071 .grant_a (arb_grant_a),
1072 .qsel0 (arb_qsel0_a),
1073 .shift (arb_shift_a),
1074 .data_a (src_data_a[19:10]),
1075 .data_prev_x_l (data_prev_x_[19:10]),
1076 .se (se));
1077 ccx_new_macro__type_b_l i2(
1078 .data_x_l (data_out_x_[29:20]),
1079 .scan_in (i2_scanin),
1080 .scan_out (i2_scanout),
1081 .l2clk (l2clk),
1082 .l1clk (l1clka),
1083 .pce0 (arb_q0_holdbar_a),
1084 .pce1 (arb_qsel1_a),
1085 .pce_ov (pce_ov),
1086 .stop (stop),
1087 .siclk_in (siclk_in),
1088 .soclk_in (soclk_in),
1089 .grant_a (arb_grant_a),
1090 .qsel0 (arb_qsel0_a),
1091 .shift (arb_shift_a),
1092 .data_a (src_data_a[29:20]),
1093 .data_prev_x_l (data_prev_x_[29:20]),
1094 .se (se));
1095 ccx_new_macro__type_b_l i3(
1096 .data_x_l (data_out_x_[39:30]),
1097 .scan_in (i3_scanin),
1098 .scan_out (i3_scanout),
1099 .l2clk (l2clk),
1100 .l1clk (l1clka),
1101 .pce0 (arb_q0_holdbar_a),
1102 .pce1 (arb_qsel1_a),
1103 .pce_ov (pce_ov),
1104 .stop (stop),
1105 .siclk_in (siclk_in),
1106 .soclk_in (soclk_in),
1107 .grant_a (arb_grant_a),
1108 .qsel0 (arb_qsel0_a),
1109 .shift (arb_shift_a),
1110 .data_a (src_data_a[39:30]),
1111 .data_prev_x_l (data_prev_x_[39:30]),
1112 .se (se));
1113 ccx_new_macro__type_b_l i4(
1114 .data_x_l (data_out_x_[49:40]),
1115 .scan_in (i4_scanin),
1116 .scan_out (i4_scanout),
1117 .l2clk (l2clk),
1118 .l1clk (l1clka),
1119 .pce0 (arb_q0_holdbar_a),
1120 .pce1 (arb_qsel1_a),
1121 .pce_ov (pce_ov),
1122 .stop (stop),
1123 .siclk_in (siclk_in),
1124 .soclk_in (soclk_in),
1125 .grant_a (arb_grant_a),
1126 .qsel0 (arb_qsel0_a),
1127 .shift (arb_shift_a),
1128 .data_a (src_data_a[49:40]),
1129 .data_prev_x_l (data_prev_x_[49:40]),
1130 .se (se));
1131 ccx_new_macro__type_b_l i5(
1132 .data_x_l (data_out_x_[59:50]),
1133 .scan_in (i5_scanin),
1134 .scan_out (i5_scanout),
1135 .l2clk (l2clk),
1136 .l1clk (l1clka),
1137 .pce0 (arb_q0_holdbar_a),
1138 .pce1 (arb_qsel1_a),
1139 .pce_ov (pce_ov),
1140 .stop (stop),
1141 .siclk_in (siclk_in),
1142 .soclk_in (soclk_in),
1143 .grant_a (arb_grant_a),
1144 .qsel0 (arb_qsel0_a),
1145 .shift (arb_shift_a),
1146 .data_a (src_data_a[59:50]),
1147 .data_prev_x_l (data_prev_x_[59:50]),
1148 .se (se));
1149 ccx_new_macro__type_b_l i6(
1150 .data_x_l (data_out_x_[69:60]),
1151 .scan_in (i6_scanin),
1152 .scan_out (i6_scanout),
1153 .l2clk (l2clk),
1154 .l1clk (l1clka),
1155 .pce0 (arb_q0_holdbar_a),
1156 .pce1 (arb_qsel1_a),
1157 .pce_ov (pce_ov),
1158 .stop (stop),
1159 .siclk_in (siclk_in),
1160 .soclk_in (soclk_in),
1161 .grant_a (arb_grant_a),
1162 .qsel0 (arb_qsel0_a),
1163 .shift (arb_shift_a),
1164 .data_a (src_data_a[69:60]),
1165 .data_prev_x_l (data_prev_x_[69:60]),
1166 .se (se));
1167 ccx_new_macro__type_b_l i7(
1168 .data_x_l (data_out_x_[79:70]),
1169 .scan_in (i7_scanin),
1170 .scan_out (i7_scanout),
1171 .l2clk (l2clk),
1172 .l1clk (l1clka),
1173 .pce0 (arb_q0_holdbar_a),
1174 .pce1 (arb_qsel1_a),
1175 .pce_ov (pce_ov),
1176 .stop (stop),
1177 .siclk_in (siclk_in),
1178 .soclk_in (soclk_in),
1179 .grant_a (arb_grant_a),
1180 .qsel0 (arb_qsel0_a),
1181 .shift (arb_shift_a),
1182 .data_a (src_data_a[79:70]),
1183 .data_prev_x_l (data_prev_x_[79:70]),
1184 .se (se));
1185 ccx_new_macro__type_b_l i8(
1186 .data_x_l (data_out_x_[89:80]),
1187 .scan_in (i8_scanin),
1188 .scan_out (i8_scanout),
1189 .l2clk (l2clk),
1190 .l1clk (l1clkb),
1191 .pce0 (arb_q0_holdbar_a),
1192 .pce1 (arb_qsel1_a),
1193 .pce_ov (pce_ov),
1194 .stop (stop),
1195 .siclk_in (siclk_in),
1196 .soclk_in (soclk_in),
1197 .grant_a (arb_grant_a),
1198 .qsel0 (arb_qsel0_a),
1199 .shift (arb_shift_a),
1200 .data_a (src_data_a[89:80]),
1201 .data_prev_x_l (data_prev_x_[89:80]),
1202 .se (se));
1203 ccx_new_macro__type_b_l i9(
1204 .data_x_l (data_out_x_[99:90]),
1205 .scan_in (i9_scanin),
1206 .scan_out (i9_scanout),
1207 .l2clk (l2clk),
1208 .l1clk (l1clkb),
1209 .pce0 (arb_q0_holdbar_a),
1210 .pce1 (arb_qsel1_a),
1211 .pce_ov (pce_ov),
1212 .stop (stop),
1213 .siclk_in (siclk_in),
1214 .soclk_in (soclk_in),
1215 .grant_a (arb_grant_a),
1216 .qsel0 (arb_qsel0_a),
1217 .shift (arb_shift_a),
1218 .data_a (src_data_a[99:90]),
1219 .data_prev_x_l (data_prev_x_[99:90]),
1220 .se (se));
1221 ccx_new_macro__type_b_l i10(
1222 .data_x_l (data_out_x_[109:100]),
1223 .scan_in (i10_scanin),
1224 .scan_out (i10_scanout),
1225 .l2clk (l2clk),
1226 .l1clk (l1clkb),
1227 .pce0 (arb_q0_holdbar_a),
1228 .pce1 (arb_qsel1_a),
1229 .pce_ov (pce_ov),
1230 .stop (stop),
1231 .siclk_in (siclk_in),
1232 .soclk_in (soclk_in),
1233 .grant_a (arb_grant_a),
1234 .qsel0 (arb_qsel0_a),
1235 .shift (arb_shift_a),
1236 .data_a (src_data_a[109:100]),
1237 .data_prev_x_l (data_prev_x_[109:100]),
1238 .se (se));
1239 ccx_new_macro__type_b_l i11(
1240 .data_x_l (data_out_x_[119:110]),
1241 .scan_in (i11_scanin),
1242 .scan_out (i11_scanout),
1243 .l2clk (l2clk),
1244 .l1clk (l1clkb),
1245 .pce0 (arb_q0_holdbar_a),
1246 .pce1 (arb_qsel1_a),
1247 .pce_ov (pce_ov),
1248 .stop (stop),
1249 .siclk_in (siclk_in),
1250 .soclk_in (soclk_in),
1251 .grant_a (arb_grant_a),
1252 .qsel0 (arb_qsel0_a),
1253 .shift (arb_shift_a),
1254 .data_a (src_data_a[119:110]),
1255 .data_prev_x_l (data_prev_x_[119:110]),
1256 .se (se));
1257 ccx_new_macro__type_b_l i12(
1258 .data_x_l (data_out_x_[129:120]),
1259 .scan_in (i12_scanin),
1260 .scan_out (i12_scanout),
1261 .l2clk (l2clk),
1262 .l1clk (l1clkb),
1263 .pce0 (arb_q0_holdbar_a),
1264 .pce1 (arb_qsel1_a),
1265 .pce_ov (pce_ov),
1266 .stop (stop),
1267 .siclk_in (siclk_in),
1268 .soclk_in (soclk_in),
1269 .grant_a (arb_grant_a),
1270 .qsel0 (arb_qsel0_a),
1271 .shift (arb_shift_a),
1272 .data_a (src_data_a[129:120]),
1273 .data_prev_x_l (data_prev_x_[129:120]),
1274 .se (se));
1275 ccx_new_macro__type_b_l i13(
1276 .data_x_l (data_out_x_[139:130]),
1277 .scan_in (i13_scanin),
1278 .scan_out (i13_scanout),
1279 .l2clk (l2clk),
1280 .l1clk (l1clkb),
1281 .pce0 (arb_q0_holdbar_a),
1282 .pce1 (arb_qsel1_a),
1283 .pce_ov (pce_ov),
1284 .stop (stop),
1285 .siclk_in (siclk_in),
1286 .soclk_in (soclk_in),
1287 .grant_a (arb_grant_a),
1288 .qsel0 (arb_qsel0_a),
1289 .shift (arb_shift_a),
1290 .data_a (src_data_a[139:130]),
1291 .data_prev_x_l (data_prev_x_[139:130]),
1292 .se (se));
1293 ccx_new_macro__type_b_l i14(
1294 .data_x_l (data_out_x_[149:140]),
1295 .scan_in (i14_scanin),
1296 .scan_out (i14_scanout),
1297 .l2clk (l2clk),
1298 .l1clk (l1clkb),
1299 .pce0 (arb_q0_holdbar_a),
1300 .pce1 (arb_qsel1_a),
1301 .pce_ov (pce_ov),
1302 .stop (stop),
1303 .siclk_in (siclk_in),
1304 .soclk_in (soclk_in),
1305 .grant_a (arb_grant_a),
1306 .qsel0 (arb_qsel0_a),
1307 .shift (arb_shift_a),
1308 .data_a (src_data_a[149:140]),
1309 .data_prev_x_l (data_prev_x_[149:140]),
1310 .se (se));
1311endmodule
1312
1313
1314`endif // `ifdef FPGA
1315