Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / ccx / rtl / cpx_dpa.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: cpx_dpa.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_dpa (
37 cpx_spc0_data_x_,
38 cpx_spc1_data_x_,
39 cpx_spc2_data_x_,
40 cpx_spc3_data_x_,
41 cpx_spc4_data_x_,
42 cpx_spc5_data_x_,
43 cpx_spc6_data_x_,
44 cpx_spc7_data_x_,
45 arb0_grant_l_a,
46 arb0_q0_holdbar_l_a,
47 arb0_qsel0_l_a,
48 arb0_qsel1_l_a,
49 arb0_shift_l_a,
50 arb1_grant_l_a,
51 arb1_q0_holdbar_l_a,
52 arb1_qsel0_l_a,
53 arb1_qsel1_l_a,
54 arb1_shift_l_a,
55 arb2_grant_l_a,
56 arb2_q0_holdbar_l_a,
57 arb2_qsel0_l_a,
58 arb2_qsel1_l_a,
59 arb2_shift_l_a,
60 arb3_grant_l_a,
61 arb3_q0_holdbar_l_a,
62 arb3_qsel0_l_a,
63 arb3_qsel1_l_a,
64 arb3_shift_l_a,
65 arb4_grant_l_a,
66 arb4_q0_holdbar_l_a,
67 arb4_qsel0_l_a,
68 arb4_qsel1_l_a,
69 arb4_shift_l_a,
70 arb5_grant_l_a,
71 arb5_q0_holdbar_l_a,
72 arb5_qsel0_l_a,
73 arb5_qsel1_l_a,
74 arb5_shift_l_a,
75 arb6_grant_l_a,
76 arb6_q0_holdbar_l_a,
77 arb6_qsel0_l_a,
78 arb6_qsel1_l_a,
79 arb6_shift_l_a,
80 arb7_grant_l_a,
81 arb7_q0_holdbar_l_a,
82 arb7_qsel0_l_a,
83 arb7_qsel1_l_a,
84 arb7_shift_l_a,
85 arb0_grant_r_a,
86 arb0_q0_holdbar_r_a,
87 arb0_qsel0_r_a,
88 arb0_qsel1_r_a,
89 arb0_shift_r_a,
90 arb1_grant_r_a,
91 arb1_q0_holdbar_r_a,
92 arb1_qsel0_r_a,
93 arb1_qsel1_r_a,
94 arb1_shift_r_a,
95 arb2_grant_r_a,
96 arb2_q0_holdbar_r_a,
97 arb2_qsel0_r_a,
98 arb2_qsel1_r_a,
99 arb2_shift_r_a,
100 arb3_grant_r_a,
101 arb3_q0_holdbar_r_a,
102 arb3_qsel0_r_a,
103 arb3_qsel1_r_a,
104 arb3_shift_r_a,
105 arb4_grant_r_a,
106 arb4_q0_holdbar_r_a,
107 arb4_qsel0_r_a,
108 arb4_qsel1_r_a,
109 arb4_shift_r_a,
110 arb5_grant_r_a,
111 arb5_q0_holdbar_r_a,
112 arb5_qsel0_r_a,
113 arb5_qsel1_r_a,
114 arb5_shift_r_a,
115 arb6_grant_r_a,
116 arb6_q0_holdbar_r_a,
117 arb6_qsel0_r_a,
118 arb6_qsel1_r_a,
119 arb6_shift_r_a,
120 arb7_grant_r_a,
121 arb7_q0_holdbar_r_a,
122 arb7_qsel0_r_a,
123 arb7_qsel1_r_a,
124 arb7_shift_r_a,
125 io_cpx_data_a,
126 scache0_cpx_data_a,
127 scache1_cpx_data_a,
128 scache2_cpx_data_a,
129 scache3_cpx_data_a,
130 scache4_cpx_data_a,
131 scache5_cpx_data_a,
132 scache6_cpx_data_a,
133 scache7_cpx_data_a,
134 l2clk,
135 scan_in,
136 tcu_pce_ov_t,
137 tcu_scan_en_t,
138 ccx_aclk_t,
139 ccx_bclk_t,
140 tcu_pce_ov_b,
141 tcu_scan_en_b,
142 ccx_aclk_b,
143 ccx_bclk_b,
144 scan_out);
145wire cpx_dps0_scanin;
146wire cpx_dps0_scanout;
147wire cpx_dps1_scanin;
148wire cpx_dps1_scanout;
149wire cpx_dps2_scanin;
150wire cpx_dps2_scanout;
151wire cpx_dps3_scanin;
152wire cpx_dps3_scanout;
153wire cpx_dps4_scanin;
154wire cpx_dps4_scanout;
155wire cpx_dps5_scanin;
156wire cpx_dps5_scanout;
157wire cpx_dps6_scanin;
158wire cpx_dps6_scanout;
159wire cpx_dps7_scanin;
160wire cpx_dps7_scanout;
161
162
163
164// Beginning of automatic outputs (from unused autoinst outputs)
165output [149:0] cpx_spc0_data_x_; // From cpx_dp0 of cpx_dp.v
166output [149:0] cpx_spc1_data_x_; // From cpx_dp1 of cpx_dp.v
167output [149:0] cpx_spc2_data_x_; // From cpx_dp2 of cpx_dp.v
168output [149:0] cpx_spc3_data_x_; // From cpx_dp3 of cpx_dp.v
169output [149:0] cpx_spc4_data_x_; // From cpx_dp4 of cpx_dp.v
170output [149:0] cpx_spc5_data_x_; // From cpx_dp5 of cpx_dp.v
171output [149:0] cpx_spc6_data_x_; // From cpx_dp6 of cpx_dp.v
172output [149:0] cpx_spc7_data_x_; // From cpx_dp7 of cpx_dp.v
173
174// End of automatics
175
176
177// Beginning of automatic inputs (from unused autoinst inputs)
178input [8:0] arb0_grant_l_a; // To cpx_dp0 of cpx_dp.v
179input [8:0] arb0_q0_holdbar_l_a; // To cpx_dp0 of cpx_dp.v
180input [8:0] arb0_qsel0_l_a; // To cpx_dp0 of cpx_dp.v
181input [8:0] arb0_qsel1_l_a; // To cpx_dp0 of cpx_dp.v
182input [8:0] arb0_shift_l_a; // To cpx_dp0 of cpx_dp.v
183input [8:0] arb1_grant_l_a; // To cpx_dp1 of cpx_dp.v
184input [8:0] arb1_q0_holdbar_l_a; // To cpx_dp1 of cpx_dp.v
185input [8:0] arb1_qsel0_l_a; // To cpx_dp1 of cpx_dp.v
186input [8:0] arb1_qsel1_l_a; // To cpx_dp1 of cpx_dp.v
187input [8:0] arb1_shift_l_a; // To cpx_dp1 of cpx_dp.v
188input [8:0] arb2_grant_l_a; // To cpx_dp2 of cpx_dp.v
189input [8:0] arb2_q0_holdbar_l_a; // To cpx_dp2 of cpx_dp.v
190input [8:0] arb2_qsel0_l_a; // To cpx_dp2 of cpx_dp.v
191input [8:0] arb2_qsel1_l_a; // To cpx_dp2 of cpx_dp.v
192input [8:0] arb2_shift_l_a; // To cpx_dp2 of cpx_dp.v
193input [8:0] arb3_grant_l_a; // To cpx_dp3 of cpx_dp.v
194input [8:0] arb3_q0_holdbar_l_a; // To cpx_dp3 of cpx_dp.v
195input [8:0] arb3_qsel0_l_a; // To cpx_dp3 of cpx_dp.v
196input [8:0] arb3_qsel1_l_a; // To cpx_dp3 of cpx_dp.v
197input [8:0] arb3_shift_l_a; // To cpx_dp3 of cpx_dp.v
198input [8:0] arb4_grant_l_a; // To cpx_dp4 of cpx_dp.v
199input [8:0] arb4_q0_holdbar_l_a; // To cpx_dp4 of cpx_dp.v
200input [8:0] arb4_qsel0_l_a; // To cpx_dp4 of cpx_dp.v
201input [8:0] arb4_qsel1_l_a; // To cpx_dp4 of cpx_dp.v
202input [8:0] arb4_shift_l_a; // To cpx_dp4 of cpx_dp.v
203input [8:0] arb5_grant_l_a; // To cpx_dp5 of cpx_dp.v
204input [8:0] arb5_q0_holdbar_l_a; // To cpx_dp5 of cpx_dp.v
205input [8:0] arb5_qsel0_l_a; // To cpx_dp5 of cpx_dp.v
206input [8:0] arb5_qsel1_l_a; // To cpx_dp5 of cpx_dp.v
207input [8:0] arb5_shift_l_a; // To cpx_dp5 of cpx_dp.v
208input [8:0] arb6_grant_l_a; // To cpx_dp6 of cpx_dp.v
209input [8:0] arb6_q0_holdbar_l_a; // To cpx_dp6 of cpx_dp.v
210input [8:0] arb6_qsel0_l_a; // To cpx_dp6 of cpx_dp.v
211input [8:0] arb6_qsel1_l_a; // To cpx_dp6 of cpx_dp.v
212input [8:0] arb6_shift_l_a; // To cpx_dp6 of cpx_dp.v
213input [8:0] arb7_grant_l_a; // To cpx_dp7 of cpx_dp.v
214input [8:0] arb7_q0_holdbar_l_a; // To cpx_dp7 of cpx_dp.v
215input [8:0] arb7_qsel0_l_a; // To cpx_dp7 of cpx_dp.v
216input [8:0] arb7_qsel1_l_a; // To cpx_dp7 of cpx_dp.v
217input [8:0] arb7_shift_l_a; // To cpx_dp7 of cpx_dp.v
218input [8:0] arb0_grant_r_a; // To cpx_dp0 of cpx_dp.v
219input [8:0] arb0_q0_holdbar_r_a; // To cpx_dp0 of cpx_dp.v
220input [8:0] arb0_qsel0_r_a; // To cpx_dp0 of cpx_dp.v
221input [8:0] arb0_qsel1_r_a; // To cpx_dp0 of cpx_dp.v
222input [8:0] arb0_shift_r_a; // To cpx_dp0 of cpx_dp.v
223input [8:0] arb1_grant_r_a; // To cpx_dp1 of cpx_dp.v
224input [8:0] arb1_q0_holdbar_r_a; // To cpx_dp1 of cpx_dp.v
225input [8:0] arb1_qsel0_r_a; // To cpx_dp1 of cpx_dp.v
226input [8:0] arb1_qsel1_r_a; // To cpx_dp1 of cpx_dp.v
227input [8:0] arb1_shift_r_a; // To cpx_dp1 of cpx_dp.v
228input [8:0] arb2_grant_r_a; // To cpx_dp2 of cpx_dp.v
229input [8:0] arb2_q0_holdbar_r_a; // To cpx_dp2 of cpx_dp.v
230input [8:0] arb2_qsel0_r_a; // To cpx_dp2 of cpx_dp.v
231input [8:0] arb2_qsel1_r_a; // To cpx_dp2 of cpx_dp.v
232input [8:0] arb2_shift_r_a; // To cpx_dp2 of cpx_dp.v
233input [8:0] arb3_grant_r_a; // To cpx_dp3 of cpx_dp.v
234input [8:0] arb3_q0_holdbar_r_a; // To cpx_dp3 of cpx_dp.v
235input [8:0] arb3_qsel0_r_a; // To cpx_dp3 of cpx_dp.v
236input [8:0] arb3_qsel1_r_a; // To cpx_dp3 of cpx_dp.v
237input [8:0] arb3_shift_r_a; // To cpx_dp3 of cpx_dp.v
238input [8:0] arb4_grant_r_a; // To cpx_dp4 of cpx_dp.v
239input [8:0] arb4_q0_holdbar_r_a; // To cpx_dp4 of cpx_dp.v
240input [8:0] arb4_qsel0_r_a; // To cpx_dp4 of cpx_dp.v
241input [8:0] arb4_qsel1_r_a; // To cpx_dp4 of cpx_dp.v
242input [8:0] arb4_shift_r_a; // To cpx_dp4 of cpx_dp.v
243input [8:0] arb5_grant_r_a; // To cpx_dp5 of cpx_dp.v
244input [8:0] arb5_q0_holdbar_r_a; // To cpx_dp5 of cpx_dp.v
245input [8:0] arb5_qsel0_r_a; // To cpx_dp5 of cpx_dp.v
246input [8:0] arb5_qsel1_r_a; // To cpx_dp5 of cpx_dp.v
247input [8:0] arb5_shift_r_a; // To cpx_dp5 of cpx_dp.v
248input [8:0] arb6_grant_r_a; // To cpx_dp6 of cpx_dp.v
249input [8:0] arb6_q0_holdbar_r_a; // To cpx_dp6 of cpx_dp.v
250input [8:0] arb6_qsel0_r_a; // To cpx_dp6 of cpx_dp.v
251input [8:0] arb6_qsel1_r_a; // To cpx_dp6 of cpx_dp.v
252input [8:0] arb6_shift_r_a; // To cpx_dp6 of cpx_dp.v
253input [8:0] arb7_grant_r_a; // To cpx_dp7 of cpx_dp.v
254input [8:0] arb7_q0_holdbar_r_a; // To cpx_dp7 of cpx_dp.v
255input [8:0] arb7_qsel0_r_a; // To cpx_dp7 of cpx_dp.v
256input [8:0] arb7_qsel1_r_a; // To cpx_dp7 of cpx_dp.v
257input [8:0] arb7_shift_r_a; // To cpx_dp7 of cpx_dp.v
258input [149:0] io_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
259input [149:0] scache0_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
260input [149:0] scache1_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
261input [149:0] scache2_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
262input [149:0] scache3_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
263input [149:0] scache4_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
264input [149:0] scache5_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
265input [149:0] scache6_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
266input [149:0] scache7_cpx_data_a; // To cpx_dp0 of cpx_dp.v, ...
267// End of automatics
268
269// globals
270input l2clk;
271input scan_in;
272input tcu_pce_ov_t; // scan signals
273input tcu_scan_en_t ;
274input ccx_aclk_t;
275input ccx_bclk_t;
276input tcu_pce_ov_b; // scan signals
277input tcu_scan_en_b ;
278input ccx_aclk_b;
279input ccx_bclk_b;
280output scan_out;
281
282
283// slices are placed in the following order
284//
285//@cpx_dps4(cpx_dpsg)
286//@cpx_dps0(cpx_dpsb)
287//@cpx_dps5(cpx_dpsf)
288//@cpx_dps1(cpx_dpsd)
289//
290//@cpx_dps3(cpx_dpsc)
291//@cpx_dps7(cpx_dpse)
292//@cpx_dps6(cpx_dpsg)
293//@cpx_dps2(cpx_dpsa)
294
295//
296// cpx_dps AUTO_TEMPLATE
297// (
298// .cpx_spc_data_x_(cpx_spc@_data_x_[149:0]),
299// .arb_grant_l_a (arb@_grant_l_a[8:0]),
300// .arb_q0_holdbar_l_a(arb@_q0_holdbar_l_a[8:0]),
301// .arb_qsel0_l_a (arb@_qsel0_l_a[8:0]),
302// .arb_qsel1_l_a (arb@_qsel1_l_a[8:0]),
303// .arb_shift_l_a (arb@_shift_l_a[8:0]),
304// .arb_grant_r_a (arb@_grant_r_a[8:0]),
305// .arb_q0_holdbar_r_a(arb@_q0_holdbar_r_a[8:0]),
306// .arb_qsel0_r_a (arb@_qsel0_r_a[8:0]),
307// .arb_qsel1_r_a (arb@_qsel1_r_a[8:0]),
308// .arb_shift_r_a (arb@_shift_r_a[8:0]),
309// );
310
311
312// DATAPATH ORGANISATION(cpx_dps0)
313// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
314// | | | | | | | | |
315// v v v v v v v v v
316// mac8-> mac0 -> mac1 <- mac2 <- mac3 <- mac4 <- mac5 <- mac6 <- mac7
317// al bl cl br br br br br bl
318// |
319// -buf------------
320// |
321// v
322// to spc0
323
324
325cpx_dpsb cpx_dps0 (
326 /*AUTOINST*/
327 // Outputs
328 .cpx_spc_data_x_ (cpx_spc0_data_x_[149:0]), // Templated
329 // Inputs
330 .arb_grant_l_a (arb0_grant_l_a[8:0]), // Templated
331 .arb_q0_holdbar_l_a (arb0_q0_holdbar_l_a[8:0]), // Templated
332 .arb_qsel0_l_a (arb0_qsel0_l_a[8:0]), // Templated
333 .arb_qsel1_l_a (arb0_qsel1_l_a[8:0]), // Templated
334 .arb_shift_l_a (arb0_shift_l_a[8:0]), // Templated
335 .arb_grant_r_a (arb0_grant_r_a[8:0]), // Templated
336 .arb_q0_holdbar_r_a (arb0_q0_holdbar_r_a[8:0]), // Templated
337 .arb_qsel0_r_a (arb0_qsel0_r_a[8:0]), // Templated
338 .arb_qsel1_r_a (arb0_qsel1_r_a[8:0]), // Templated
339 .arb_shift_r_a (arb0_shift_r_a[8:0]), // Templated
340 .io_cpx_data_a (io_cpx_data_a[149:0]),
341 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
342 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
343 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
344 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
345 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
346 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
347 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
348 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
349 .scan_in(cpx_dps0_scanin),
350 .scan_out(cpx_dps0_scanout),
351 .l2clk (l2clk),
352 .ccx_aclk (ccx_aclk_t),
353 .ccx_bclk (ccx_bclk_t),
354 .tcu_scan_en (tcu_scan_en_t),
355 .tcu_pce_ov (tcu_pce_ov_t)
356 );
357
358
359// DATAPATH ORGANISATION(cpx_dps1)
360//
361// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
362// | | | | | | | | |
363// v v v v v v v v v
364// mac8-> mac0 -> mac1 ->mac2 <- mac3 <- mac4 <- mac5 <- mac6 <- mac7
365// al bl bl bl cl br br br bl
366// |
367// --------buf--------------------
368// |
369// v
370// to spc1
371
372cpx_dpsd cpx_dps1 (
373 /*AUTOINST*/
374 // Outputs
375 .cpx_spc_data_x_ (cpx_spc1_data_x_[149:0]), // Templated
376 // Inputs
377 .arb_grant_l_a (arb1_grant_l_a[8:0]), // Templated
378 .arb_q0_holdbar_l_a (arb1_q0_holdbar_l_a[8:0]), // Templated
379 .arb_qsel0_l_a (arb1_qsel0_l_a[8:0]), // Templated
380 .arb_qsel1_l_a (arb1_qsel1_l_a[8:0]), // Templated
381 .arb_shift_l_a (arb1_shift_l_a[8:0]), // Templated
382 .arb_grant_r_a (arb1_grant_r_a[8:0]), // Templated
383 .arb_q0_holdbar_r_a (arb1_q0_holdbar_r_a[8:0]), // Templated
384 .arb_qsel0_r_a (arb1_qsel0_r_a[8:0]), // Templated
385 .arb_qsel1_r_a (arb1_qsel1_r_a[8:0]), // Templated
386 .arb_shift_r_a (arb1_shift_r_a[8:0]), // Templated
387 .io_cpx_data_a (io_cpx_data_a[149:0]),
388 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
389 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
390 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
391 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
392 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
393 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
394 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
395 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
396 .scan_in(cpx_dps1_scanin),
397 .scan_out(cpx_dps1_scanout),
398 .l2clk (l2clk),
399 .ccx_aclk (ccx_aclk_t),
400 .ccx_bclk (ccx_bclk_t),
401 .tcu_scan_en (tcu_scan_en_t),
402 .tcu_pce_ov (tcu_pce_ov_t)
403 );
404
405// DATAPATH ORGANISATION(cpx_dps2)
406//
407// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
408// | | | | | | | | |
409// v v v v v v v v v
410// mac8-> mac0 -> mac1 <- mac2 <- mac3 <- mac4 <- mac5 <- mac6 <- mac7
411// bl cl br br br br br br ar
412// |
413// --buf---
414// |
415// v
416// to spc2
417
418cpx_dpsa cpx_dps2 (
419 /*AUTOINST*/
420 // Outputs
421 .cpx_spc_data_x_ (cpx_spc2_data_x_[149:0]), // Templated
422 // Inputs
423 .arb_grant_l_a (arb2_grant_l_a[8:0]), // Templated
424 .arb_q0_holdbar_l_a (arb2_q0_holdbar_l_a[8:0]), // Templated
425 .arb_qsel0_l_a (arb2_qsel0_l_a[8:0]), // Templated
426 .arb_qsel1_l_a (arb2_qsel1_l_a[8:0]), // Templated
427 .arb_shift_l_a (arb2_shift_l_a[8:0]), // Templated
428 .arb_grant_r_a (arb2_grant_r_a[8:0]), // Templated
429 .arb_q0_holdbar_r_a (arb2_q0_holdbar_r_a[8:0]), // Templated
430 .arb_qsel0_r_a (arb2_qsel0_r_a[8:0]), // Templated
431 .arb_qsel1_r_a (arb2_qsel1_r_a[8:0]), // Templated
432 .arb_shift_r_a (arb2_shift_r_a[8:0]), // Templated
433 .io_cpx_data_a (io_cpx_data_a[149:0]),
434 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
435 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
436 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
437 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
438 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
439 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
440 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
441 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
442 .scan_in(cpx_dps2_scanin),
443 .scan_out(cpx_dps2_scanout),
444 .l2clk (l2clk),
445 .ccx_aclk (ccx_aclk_b),
446 .ccx_bclk (ccx_bclk_b),
447 .tcu_scan_en (tcu_scan_en_b),
448 .tcu_pce_ov (tcu_pce_ov_b)
449);
450
451// DATAPATH ORGANISATION(cpx_dps3)
452//
453// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
454// | | | | | | | | |
455// v v v v v v v v v
456// mac8-> mac0 -> mac1 ->mac2 <- mac3 <- mac4 <- mac5 <- mac6 <- mac7
457// al bl bl cl br br br br ar
458// |
459// --------buf------------
460// |
461// v
462// to spc3
463
464cpx_dpsc cpx_dps3 (
465 /*AUTOINST*/
466 // Outputs
467 .cpx_spc_data_x_ (cpx_spc3_data_x_[149:0]), // Templated
468 // Inputs
469 .arb_grant_l_a (arb3_grant_l_a[8:0]), // Templated
470 .arb_q0_holdbar_l_a (arb3_q0_holdbar_l_a[8:0]), // Templated
471 .arb_qsel0_l_a (arb3_qsel0_l_a[8:0]), // Templated
472 .arb_qsel1_l_a (arb3_qsel1_l_a[8:0]), // Templated
473 .arb_shift_l_a (arb3_shift_l_a[8:0]), // Templated
474 .arb_grant_r_a (arb3_grant_r_a[8:0]), // Templated
475 .arb_q0_holdbar_r_a (arb3_q0_holdbar_r_a[8:0]), // Templated
476 .arb_qsel0_r_a (arb3_qsel0_r_a[8:0]), // Templated
477 .arb_qsel1_r_a (arb3_qsel1_r_a[8:0]), // Templated
478 .arb_shift_r_a (arb3_shift_r_a[8:0]), // Templated
479 .io_cpx_data_a (io_cpx_data_a[149:0]),
480 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
481 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
482 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
483 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
484 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
485 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
486 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
487 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
488 .scan_in(cpx_dps3_scanin),
489 .scan_out(cpx_dps3_scanout),
490 .l2clk (l2clk),
491 .ccx_aclk (ccx_aclk_b),
492 .ccx_bclk (ccx_bclk_b),
493 .tcu_scan_en (tcu_scan_en_b),
494 .tcu_pce_ov (tcu_pce_ov_b)
495 );
496
497// DATAPATH ORGANISATION(cpx_dps4)
498//
499// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
500// | | | | | | | | |
501// v v v v v v v v v
502// mac8-> mac0 -> mac1 ->mac2 -> mac3 -> mac4 <- mac5 <- mac6 <- mac7
503// al bl bl bl bl bl bl cr br
504// |
505// buf
506// |
507// v
508// to spc4
509
510cpx_dpsg cpx_dps4 (
511 /*AUTOINST*/
512 // Outputs
513 .cpx_spc_data_x_ (cpx_spc4_data_x_[149:0]), // Templated
514 // Inputs
515 .arb_grant_l_a (arb4_grant_l_a[8:0]), // Templated
516 .arb_q0_holdbar_l_a (arb4_q0_holdbar_l_a[8:0]), // Templated
517 .arb_qsel0_l_a (arb4_qsel0_l_a[8:0]), // Templated
518 .arb_qsel1_l_a (arb4_qsel1_l_a[8:0]), // Templated
519 .arb_shift_l_a (arb4_shift_l_a[8:0]), // Templated
520 .arb_grant_r_a (arb4_grant_r_a[8:0]), // Templated
521 .arb_q0_holdbar_r_a (arb4_q0_holdbar_r_a[8:0]), // Templated
522 .arb_qsel0_r_a (arb4_qsel0_r_a[8:0]), // Templated
523 .arb_qsel1_r_a (arb4_qsel1_r_a[8:0]), // Templated
524 .arb_shift_r_a (arb4_shift_r_a[8:0]), // Templated
525 .io_cpx_data_a (io_cpx_data_a[149:0]),
526 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
527 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
528 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
529 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
530 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
531 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
532 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
533 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
534 .scan_in(cpx_dps4_scanin),
535 .scan_out(cpx_dps4_scanout),
536 .l2clk (l2clk),
537 .ccx_aclk (ccx_aclk_t),
538 .ccx_bclk (ccx_bclk_t),
539 .tcu_scan_en (tcu_scan_en_t),
540 .tcu_pce_ov (tcu_pce_ov_t)
541);
542
543// DATAPATH ORGANISATION(cpx_dps5)
544//
545// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
546// | | | | | | | | |
547// v v v v v v v v v
548// mac8-> mac0 -> mac1 ->mac2 -> mac3 -> mac4 -> mac5 <- mac6 <- mac7
549// al bl bl bl bl bl cr br bl
550// |
551// buf
552// |
553// v
554// to spc5
555
556
557
558cpx_dpsf cpx_dps5 (
559 /*AUTOINST*/
560 // Outputs
561 .cpx_spc_data_x_ (cpx_spc5_data_x_[149:0]), // Templated
562 // Inputs
563 .arb_grant_l_a (arb5_grant_l_a[8:0]), // Templated
564 .arb_q0_holdbar_l_a (arb5_q0_holdbar_l_a[8:0]), // Templated
565 .arb_qsel0_l_a (arb5_qsel0_l_a[8:0]), // Templated
566 .arb_qsel1_l_a (arb5_qsel1_l_a[8:0]), // Templated
567 .arb_shift_l_a (arb5_shift_l_a[8:0]), // Templated
568 .arb_grant_r_a (arb5_grant_r_a[8:0]), // Templated
569 .arb_q0_holdbar_r_a (arb5_q0_holdbar_r_a[8:0]), // Templated
570 .arb_qsel0_r_a (arb5_qsel0_r_a[8:0]), // Templated
571 .arb_qsel1_r_a (arb5_qsel1_r_a[8:0]), // Templated
572 .arb_shift_r_a (arb5_shift_r_a[8:0]), // Templated
573 .io_cpx_data_a (io_cpx_data_a[149:0]),
574 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
575 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
576 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
577 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
578 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
579 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
580 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
581 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
582 .scan_in(cpx_dps5_scanin),
583 .scan_out(cpx_dps5_scanout),
584 .l2clk (l2clk),
585 .ccx_aclk (ccx_aclk_t),
586 .ccx_bclk (ccx_bclk_t),
587 .tcu_scan_en (tcu_scan_en_t),
588 .tcu_pce_ov (tcu_pce_ov_t)
589 );
590
591// DATAPATH ORGANISATION(cpx_dps6)
592//
593// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
594// | | | | | | | | |
595// v v v v v v v v v
596// mac8-> mac0 -> mac1 ->mac2 -> mac3 -> mac4 <- mac5 <- mac6 <- mac7
597// al bl bl bl bl bl bl cr br
598// |
599// -buf--
600// |
601// v
602// to spc6
603
604
605cpx_dpsg cpx_dps6 (
606 /*AUTOINST*/
607 // Outputs
608 .cpx_spc_data_x_ (cpx_spc6_data_x_[149:0]), // Templated
609 // Inputs
610 .arb_grant_l_a (arb6_grant_l_a[8:0]), // Templated
611 .arb_q0_holdbar_l_a (arb6_q0_holdbar_l_a[8:0]), // Templated
612 .arb_qsel0_l_a (arb6_qsel0_l_a[8:0]), // Templated
613 .arb_qsel1_l_a (arb6_qsel1_l_a[8:0]), // Templated
614 .arb_shift_l_a (arb6_shift_l_a[8:0]), // Templated
615 .arb_grant_r_a (arb6_grant_r_a[8:0]), // Templated
616 .arb_q0_holdbar_r_a (arb6_q0_holdbar_r_a[8:0]), // Templated
617 .arb_qsel0_r_a (arb6_qsel0_r_a[8:0]), // Templated
618 .arb_qsel1_r_a (arb6_qsel1_r_a[8:0]), // Templated
619 .arb_shift_r_a (arb6_shift_r_a[8:0]), // Templated
620 .io_cpx_data_a (io_cpx_data_a[149:0]),
621 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
622 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
623 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
624 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
625 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
626 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
627 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
628 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
629 .scan_in(cpx_dps6_scanin),
630 .scan_out(cpx_dps6_scanout),
631 .l2clk (l2clk),
632 .ccx_aclk (ccx_aclk_b),
633 .ccx_bclk (ccx_bclk_b),
634 .tcu_scan_en (tcu_scan_en_b),
635 .tcu_pce_ov (tcu_pce_ov_b)
636);
637
638// DATAPATH ORGANISATION(cpx_dps7)
639//
640// io scache0 scache2 scache1 scache3 scache7 scache5 scache6 scache4
641// | | | | | | | | |
642// v v v v v v v v v
643// mac8-> mac0 -> mac1 ->mac2 -> mac3 <- mac4 <- mac5 <- mac6 <- mac7
644// al bl bl bl bl cr br br bl
645// |
646// buf
647// |
648// v
649// to spc7
650
651cpx_dpse cpx_dps7 (
652 /*AUTOINST*/
653 // Outputs
654 .cpx_spc_data_x_ (cpx_spc7_data_x_[149:0]), // Templated
655 // Inputs
656 .arb_grant_l_a (arb7_grant_l_a[8:0]), // Templated
657 .arb_q0_holdbar_l_a (arb7_q0_holdbar_l_a[8:0]), // Templated
658 .arb_qsel0_l_a (arb7_qsel0_l_a[8:0]), // Templated
659 .arb_qsel1_l_a (arb7_qsel1_l_a[8:0]), // Templated
660 .arb_shift_l_a (arb7_shift_l_a[8:0]), // Templated
661 .arb_grant_r_a (arb7_grant_r_a[8:0]), // Templated
662 .arb_q0_holdbar_r_a (arb7_q0_holdbar_r_a[8:0]), // Templated
663 .arb_qsel0_r_a (arb7_qsel0_r_a[8:0]), // Templated
664 .arb_qsel1_r_a (arb7_qsel1_r_a[8:0]), // Templated
665 .arb_shift_r_a (arb7_shift_r_a[8:0]), // Templated
666 .io_cpx_data_a (io_cpx_data_a[149:0]),
667 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
668 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
669 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
670 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
671 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
672 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
673 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
674 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
675 .scan_in(cpx_dps7_scanin),
676 .scan_out(cpx_dps7_scanout),
677 .l2clk (l2clk),
678 .ccx_aclk (ccx_aclk_b),
679 .ccx_bclk (ccx_bclk_b),
680 .tcu_scan_en (tcu_scan_en_b),
681 .tcu_pce_ov (tcu_pce_ov_b)
682 );
683
684// fixscan start:
685assign cpx_dps4_scanin = scan_in ;
686assign cpx_dps0_scanin = cpx_dps4_scanout ;
687assign cpx_dps5_scanin = cpx_dps0_scanout ;
688assign cpx_dps1_scanin = cpx_dps5_scanout ;
689assign cpx_dps3_scanin = cpx_dps1_scanout ;
690assign cpx_dps7_scanin = cpx_dps3_scanout ;
691assign cpx_dps6_scanin = cpx_dps7_scanout ;
692assign cpx_dps2_scanin = cpx_dps6_scanout ;
693assign scan_out = cpx_dps2_scanout ;
694// fixscan end:
695endmodule
696
697
698// Local Variables:
699// verilog-library-directories:("." "v")
700// End:
701
702
703
704
705//
706// buff macro
707//
708//
709
710
711
712
713
714module cpx_dpa_buff_macro__dbuff_32x__stack_6l__width_5 (
715 din,
716 dout);
717 input [4:0] din;
718 output [4:0] dout;
719
720
721
722
723
724
725buff #(5) d0_0 (
726.in(din[4:0]),
727.out(dout[4:0])
728);
729
730
731
732
733
734
735
736
737endmodule
738
739
740
741
742
743//
744// buff macro
745//
746//
747
748
749
750
751
752module cpx_dpa_buff_macro__dbuff_32x__stack_none__width_1 (
753 din,
754 dout);
755 input [0:0] din;
756 output [0:0] dout;
757
758
759
760
761
762
763buff #(1) d0_0 (
764.in(din[0:0]),
765.out(dout[0:0])
766);
767
768
769
770
771
772
773
774
775endmodule
776
777
778
779
780//
781// buff macro
782//
783//
784
785
786
787
788
789module cpx_dpa_buff_macro__dbuff_8x__stack_none__vertical_1__width_4 (
790 din,
791 dout);
792 input [3:0] din;
793 output [3:0] dout;
794
795
796
797
798
799
800buff #(4) d0_0 (
801.in(din[3:0]),
802.out(dout[3:0])
803);
804
805
806
807
808
809
810
811
812endmodule
813
814
815
816
817
818
819
820
821
822// any PARAMS parms go into naming of macro
823
824module cpx_dpa_ccx_l1clkhdr_ctl_macro__dl1hdr_24x (
825 l2clk,
826 l1en,
827 pce_ov,
828 stop,
829 se,
830 l1clk);
831
832
833 input l2clk;
834 input l1en;
835 input pce_ov;
836 input stop;
837 input se;
838 output l1clk;
839
840
841
842
843
844cl_sc1_l1hdr_24x c_0 (
845
846
847 .l2clk(l2clk),
848 .pce(l1en),
849 .l1clk(l1clk),
850 .se(se),
851 .pce_ov(pce_ov),
852 .stop(stop)
853);
854
855
856
857
858
859
860endmodule
861
862
863
864
865
866
867
868
869
870//
871// ccx macro
872//
873//
874
875
876
877
878
879module cpx_dpa_ccx_new_macro__type_a (
880 l2clk,
881 l1clk,
882 pce0,
883 pce1,
884 pce_ov,
885 se,
886 stop,
887 siclk_in,
888 soclk_in,
889 scan_in,
890 grant_a,
891 qsel0,
892 shift,
893 data_a,
894 data_x_l,
895 scan_out);
896wire so5;
897wire siclk_out;
898wire soclk_out;
899wire l1clk0;
900wire l1clk1;
901wire grant_x;
902wire qsel0_buf;
903wire shift_buf;
904
905input l2clk;
906input l1clk;
907input pce0;
908input pce1;
909input pce_ov;
910input se;
911input stop;
912input siclk_in;
913input soclk_in;
914input scan_in;
915input grant_a;
916input qsel0;
917input shift;
918input [9:0] data_a;
919output [9:0] data_x_l;
920output scan_out;
921cl_dp1_ccxhdr c0 (
922.si(scan_in),
923.so(so5),
924 .l2clk(l2clk),
925 .pce0(pce0),
926 .pce1(pce1),
927 .pce_ov(pce_ov),
928 .stop(stop),
929 .siclk_in(siclk_in),
930 .soclk_in(soclk_in),
931 .siclk_out(siclk_out),
932 .soclk_out(soclk_out),
933 .l1clk0(l1clk0),
934 .l1clk1(l1clk1),
935 .se(se),
936 .l1clk(l1clk),
937 .grant_a(grant_a),
938 .grant_x(grant_x),
939 .qsel0(qsel0),
940 .qsel0_buf(qsel0_buf),
941 .shift(shift),
942 .shift_buf(shift_buf)
943);
944
945
946
947
948
949
950ccx_mac_a #(10) mac_a(
951.siclk(siclk_out),
952.soclk(soclk_out),
953.data_a(data_a[9:0]),
954.data_x_l(data_x_l[9:0]),
955.si(so5),
956.so(scan_out),
957 .l1clk0(l1clk0),
958 .l1clk1(l1clk1),
959 .grant_x(grant_x),
960 .qsel0_buf(qsel0_buf),
961 .shift_buf(shift_buf)
962);
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977endmodule
978
979
980
981//
982// ccx macro
983//
984//
985
986
987
988
989
990module cpx_dpa_ccx_new_macro__type_b_l (
991 l2clk,
992 l1clk,
993 pce0,
994 pce1,
995 pce_ov,
996 se,
997 stop,
998 siclk_in,
999 soclk_in,
1000 scan_in,
1001 grant_a,
1002 qsel0,
1003 shift,
1004 data_a,
1005 data_prev_x_l,
1006 data_x_l,
1007 scan_out);
1008wire so5;
1009wire siclk_out;
1010wire soclk_out;
1011wire l1clk0;
1012wire l1clk1;
1013wire grant_x;
1014wire qsel0_buf;
1015wire shift_buf;
1016
1017input l2clk;
1018input l1clk;
1019input pce0;
1020input pce1;
1021input pce_ov;
1022input se;
1023input stop;
1024input siclk_in;
1025input soclk_in;
1026input scan_in;
1027input grant_a;
1028input qsel0;
1029input shift;
1030input [9:0] data_a;
1031input [9:0] data_prev_x_l;
1032output [9:0] data_x_l;
1033output scan_out;
1034cl_dp1_ccxhdr c0 (
1035.si(scan_in),
1036.so(so5),
1037 .l2clk(l2clk),
1038 .pce0(pce0),
1039 .pce1(pce1),
1040 .pce_ov(pce_ov),
1041 .stop(stop),
1042 .siclk_in(siclk_in),
1043 .soclk_in(soclk_in),
1044 .siclk_out(siclk_out),
1045 .soclk_out(soclk_out),
1046 .l1clk0(l1clk0),
1047 .l1clk1(l1clk1),
1048 .se(se),
1049 .l1clk(l1clk),
1050 .grant_a(grant_a),
1051 .grant_x(grant_x),
1052 .qsel0(qsel0),
1053 .qsel0_buf(qsel0_buf),
1054 .shift(shift),
1055 .shift_buf(shift_buf)
1056);
1057
1058
1059
1060
1061
1062
1063ccx_mac_b #(10) mac_b(
1064.siclk(siclk_out),
1065.soclk(soclk_out),
1066.data_a(data_a[9:0]),
1067.data_prev_x_l(data_prev_x_l[9:0]),
1068.data_x_l(data_x_l[9:0]),
1069.si(so5),
1070.so(scan_out),
1071 .l1clk0(l1clk0),
1072 .l1clk1(l1clk1),
1073 .grant_x(grant_x),
1074 .qsel0_buf(qsel0_buf),
1075 .shift_buf(shift_buf)
1076);
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091endmodule
1092
1093
1094
1095//
1096// ccx macro
1097//
1098//
1099
1100
1101
1102
1103
1104module cpx_dpa_ccx_new_macro__type_c_l (
1105 l2clk,
1106 l1clk,
1107 pce0,
1108 pce1,
1109 pce_ov,
1110 se,
1111 stop,
1112 siclk_in,
1113 soclk_in,
1114 scan_in,
1115 grant_a,
1116 qsel0,
1117 shift,
1118 data_a,
1119 data_crit_x_l,
1120 data_ncrit_x_l,
1121 data_x_l,
1122 scan_out);
1123wire so5;
1124wire siclk_out;
1125wire soclk_out;
1126wire l1clk0;
1127wire l1clk1;
1128wire grant_x;
1129wire qsel0_buf;
1130wire shift_buf;
1131
1132input l2clk;
1133input l1clk;
1134input pce0;
1135input pce1;
1136input pce_ov;
1137input se;
1138input stop;
1139input siclk_in;
1140input soclk_in;
1141input scan_in;
1142input grant_a;
1143input qsel0;
1144input shift;
1145input [9:0] data_a;
1146input [9:0] data_crit_x_l;
1147input [9:0] data_ncrit_x_l;
1148output [9:0] data_x_l;
1149output scan_out;
1150cl_dp1_ccxhdr c0 (
1151.si(scan_in),
1152.so(so5),
1153 .l2clk(l2clk),
1154 .pce0(pce0),
1155 .pce1(pce1),
1156 .pce_ov(pce_ov),
1157 .stop(stop),
1158 .siclk_in(siclk_in),
1159 .soclk_in(soclk_in),
1160 .siclk_out(siclk_out),
1161 .soclk_out(soclk_out),
1162 .l1clk0(l1clk0),
1163 .l1clk1(l1clk1),
1164 .se(se),
1165 .l1clk(l1clk),
1166 .grant_a(grant_a),
1167 .grant_x(grant_x),
1168 .qsel0(qsel0),
1169 .qsel0_buf(qsel0_buf),
1170 .shift(shift),
1171 .shift_buf(shift_buf)
1172);
1173
1174
1175
1176
1177
1178
1179ccx_mac_c #(10) mac_c(
1180.siclk(siclk_out),
1181.soclk(soclk_out),
1182.data_a(data_a[9:0]),
1183.data_crit_x_l(data_crit_x_l[9:0]),
1184.data_ncrit_x_l(data_ncrit_x_l[9:0]),
1185.data_x_l(data_x_l[9:0]),
1186.si(so5),
1187.so(scan_out),
1188 .l1clk0(l1clk0),
1189 .l1clk1(l1clk1),
1190 .grant_x(grant_x),
1191 .qsel0_buf(qsel0_buf),
1192 .shift_buf(shift_buf)
1193);
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208endmodule
1209
1210
1211//
1212// ccx macro
1213//
1214//
1215
1216
1217
1218
1219
1220module cpx_dpa_ccx_new_macro__type_b_r (
1221 l2clk,
1222 l1clk,
1223 pce0,
1224 pce1,
1225 pce_ov,
1226 se,
1227 stop,
1228 siclk_in,
1229 soclk_in,
1230 scan_in,
1231 grant_a,
1232 qsel0,
1233 shift,
1234 data_a,
1235 data_prev_x_l,
1236 data_x_l,
1237 scan_out);
1238wire so5;
1239wire siclk_out;
1240wire soclk_out;
1241wire l1clk0;
1242wire l1clk1;
1243wire grant_x;
1244wire qsel0_buf;
1245wire shift_buf;
1246
1247input l2clk;
1248input l1clk;
1249input pce0;
1250input pce1;
1251input pce_ov;
1252input se;
1253input stop;
1254input siclk_in;
1255input soclk_in;
1256input scan_in;
1257input grant_a;
1258input qsel0;
1259input shift;
1260input [9:0] data_a;
1261input [9:0] data_prev_x_l;
1262output [9:0] data_x_l;
1263output scan_out;
1264cl_dp1_ccxhdr c0 (
1265.si(scan_in),
1266.so(so5),
1267 .l2clk(l2clk),
1268 .pce0(pce0),
1269 .pce1(pce1),
1270 .pce_ov(pce_ov),
1271 .stop(stop),
1272 .siclk_in(siclk_in),
1273 .soclk_in(soclk_in),
1274 .siclk_out(siclk_out),
1275 .soclk_out(soclk_out),
1276 .l1clk0(l1clk0),
1277 .l1clk1(l1clk1),
1278 .se(se),
1279 .l1clk(l1clk),
1280 .grant_a(grant_a),
1281 .grant_x(grant_x),
1282 .qsel0(qsel0),
1283 .qsel0_buf(qsel0_buf),
1284 .shift(shift),
1285 .shift_buf(shift_buf)
1286);
1287
1288
1289
1290
1291
1292
1293ccx_mac_b #(10) mac_b(
1294.siclk(siclk_out),
1295.soclk(soclk_out),
1296.data_a(data_a[9:0]),
1297.data_prev_x_l(data_prev_x_l[9:0]),
1298.data_x_l(data_x_l[9:0]),
1299.si(so5),
1300.so(scan_out),
1301 .l1clk0(l1clk0),
1302 .l1clk1(l1clk1),
1303 .grant_x(grant_x),
1304 .qsel0_buf(qsel0_buf),
1305 .shift_buf(shift_buf)
1306);
1307
1308
1309endmodule
1310
1311
1312//// scan renames
1313//assign pce_ov = tcu_pce_ov;
1314//assign stop = tcu_clk_stop;
1315//assign siclk = tcu_aclk;
1316//assign soclk = tcu_bclk;
1317//// end scan
1318//
1319//// buffer the grant signal
1320//
1321//buff_macro i_buf_grant (width=1, stack=50c)
1322//(
1323// .din (arb_grant_a),
1324// .dout (grant_a),
1325// );
1326//
1327//msff_macro i_dff_grant_x (width=12, stack=50c)
1328//(
1329// .scan_in(i_dff_grant_x_scanin),
1330// .scan_out(i_dff_grant_x_scanout),
1331// .clk (l2clk),
1332// .din ({12{grant_a}}),
1333// .dout (grant_x[11:0]),
1334// .en (1'b1),
1335// );
1336//
1337//
1338//// DATAPATH SECTION
1339//
1340//msff_macro i_dff_q1_2 (width=50, stack=50c)
1341//(
1342// .scan_in(i_dff_q1_2_scanin),
1343// .scan_out(i_dff_q1_2_scanout),
1344// .clk (l2clk),
1345// .din (src_cpx_data_a[149:100]),
1346// .dout (q1_dataout[149:100]),
1347// .en (arb_qsel1_a),
1348// );
1349//
1350//msff_macro i_dff_q1_1 (width=50, stack=50c)
1351//(
1352// .scan_in(i_dff_q1_1_scanin),
1353// .scan_out(i_dff_q1_1_scanout),
1354// .clk (l2clk),
1355// .din (src_cpx_data_a[99:50]),
1356// .dout (q1_dataout[99:50]),
1357// .en (arb_qsel1_a),
1358// );
1359//
1360//msff_macro i_dff_q1_0 (width=50, stack=50c)
1361//(
1362// .scan_in(i_dff_q1_0_scanin),
1363// .scan_out(i_dff_q1_0_scanout),
1364// .clk (l2clk),
1365// .din (src_cpx_data_a[49:0]),
1366// .dout (q1_dataout[49:0]),
1367// .en (arb_qsel1_a),
1368// );
1369//
1370////assign q0_datain_ca[149:0] =
1371//// (arb_cpxdp_qsel0_ca ? src_cpx_data_ca[149:0] : 150'd0) |
1372//// (arb_cpxdp_shift_cx ? q1_dataout[149:0] : 150'd0) ;
1373//
1374//
1375//mux_macro i_mux_q0_2 (width=50, mux=aonpe, ports=2, stack=50c)
1376//(
1377// .din0 (src_cpx_data_a[149:100]),
1378// .din1 (q1_dataout[149:100]),
1379// .sel0 (arb_qsel0_a),
1380// .sel1 (arb_shift_a),
1381// .dout (q0_datain_a[149:100]),
1382// );
1383//
1384//mux_macro i_mux_q0_1 (width=50, mux=aonpe, ports=2, stack=50c)
1385//(
1386// .din0 (src_cpx_data_a[99:50]),
1387// .din1 (q1_dataout[99:50]),
1388// .sel0 (arb_qsel0_a),
1389// .sel1 (arb_shift_a),
1390// .dout (q0_datain_a[99:50]),
1391// );
1392//
1393//mux_macro i_mux_q0_0 (width=50, mux=aonpe, ports=2, stack=50c)
1394//(
1395// .din0 (src_cpx_data_a[49:0]),
1396// .din1 (q1_dataout[49:0]),
1397// .sel0 (arb_qsel0_a),
1398// .sel1 (arb_shift_a),
1399// .dout (q0_datain_a[49:0]),
1400// );
1401//
1402//msff_macro i_dff_q0_2 (width=50, stack=50c)
1403//(
1404// .scan_in(i_dff_q0_2_scanin),
1405// .scan_out(i_dff_q0_2_scanout),
1406// .clk (l2clk),
1407// .din (q0_datain_a[149:100]),
1408// .dout (q0_dataout[149:100]),
1409// .en (arb_q0_holdbar_a),
1410// );
1411//
1412//msff_macro i_dff_q0_1 (width=50, stack=50c)
1413//(
1414// .scan_in(i_dff_q0_1_scanin),
1415// .scan_out(i_dff_q0_1_scanout),
1416// .clk (l2clk),
1417// .din (q0_datain_a[99:50]),
1418// .dout (q0_dataout[99:50]),
1419// .en (arb_q0_holdbar_a),
1420// );
1421//
1422//msff_macro i_dff_q0_0 (width=50, stack=50c)
1423//(
1424// .scan_in(i_dff_q0_0_scanin),
1425// .scan_out(i_dff_q0_0_scanout),
1426// .clk (l2clk),
1427// .din (q0_datain_a[49:0]),
1428// .dout (q0_dataout[49:0]),
1429// .en (arb_q0_holdbar_a),
1430// );
1431//
1432//// MUX
1433//nand_macro i_nand_data_g_2 (width=50, ports=2, stack=50c)
1434//(
1435// .din0 (q0_dataout[149:100]),
1436// .din1 ({{10{grant_x[11]}},{15{grant_x[10]}},{15{grant_x[9]}},{10{grant_x[8]}}}),
1437// .dout (data_out_x_[149:100]),
1438// );
1439//
1440//nand_macro i_nand_data_g_1 (width=50, ports=2, stack=50c)
1441//(
1442// .din0 (q0_dataout[99:50]),
1443// .din1 ({{10{grant_x[7]}},{15{grant_x[6]}},{15{grant_x[5]}},{10{grant_x[4]}}}),
1444// .dout (data_out_x_[99:50]),
1445// );
1446//
1447//nand_macro i_nand_data_g_0 (width=50, ports=2, stack=50c)
1448//(
1449// .din0 (q0_dataout[49:0]),
1450// .din1 ({{10{grant_x[3]}},{15{grant_x[2]}},{15{grant_x[1]}},{10{grant_x[0]}}}),
1451// .dout (data_out_x_[49:0]),
1452// );
1453//
1454//// fixscan start:
1455//assign i_dff_grant_x_scanin = scan_in ;
1456//assign i_dff_q1_2_scanin = i_dff_grant_x_scanout ;
1457//assign i_dff_q1_1_scanin = i_dff_q1_2_scanout ;
1458//assign i_dff_q1_0_scanin = i_dff_q1_1_scanout ;
1459//assign i_dff_q0_2_scanin = i_dff_q1_0_scanout ;
1460//assign i_dff_q0_1_scanin = i_dff_q0_2_scanout ;
1461//assign i_dff_q0_0_scanin = i_dff_q0_1_scanout ;
1462//assign scan_out = i_dff_q0_0_scanout ;
1463//// fixscan end:
1464
1465
1466
1467//// scan renames
1468//assign pce_ov = tcu_pce_ov;
1469//assign stop = tcu_clk_stop;
1470//assign siclk = tcu_aclk;
1471//assign soclk = tcu_bclk;
1472//// end scan
1473//
1474//// buffer the grant signal
1475//
1476//buff_macro i_buf_grant (width=1, stack=50c)
1477//(
1478// .din (arb_grant_a),
1479// .dout (grant_a),
1480// );
1481//
1482//msff_macro i_dff_grant_x (width=12, stack=50c)
1483//(
1484// .scan_in(i_dff_grant_x_scanin),
1485// .scan_out(i_dff_grant_x_scanout),
1486// .clk (l2clk),
1487// .din ({12{grant_a}}),
1488// .dout (grant_x[11:0]),
1489// .en (1'b1),
1490// );
1491//
1492//
1493//// DATAPATH SECTION
1494//
1495//msff_macro i_dff_q1_2 (width=50, stack=50c)
1496//(
1497// .scan_in(i_dff_q1_2_scanin),
1498// .scan_out(i_dff_q1_2_scanout),
1499// .clk (l2clk),
1500// .din (src_cpx_data_a[149:100]),
1501// .dout (q1_dataout[149:100]),
1502// .en (arb_qsel1_a),
1503// );
1504//
1505//msff_macro i_dff_q1_1 (width=50, stack=50c)
1506//(
1507// .scan_in(i_dff_q1_1_scanin),
1508// .scan_out(i_dff_q1_1_scanout),
1509// .clk (l2clk),
1510// .din (src_cpx_data_a[99:50]),
1511// .dout (q1_dataout[99:50]),
1512// .en (arb_qsel1_a),
1513// );
1514//
1515//msff_macro i_dff_q1_0 (width=50, stack=50c)
1516//(
1517// .scan_in(i_dff_q1_0_scanin),
1518// .scan_out(i_dff_q1_0_scanout),
1519// .clk (l2clk),
1520// .din (src_cpx_data_a[49:0]),
1521// .dout (q1_dataout[49:0]),
1522// .en (arb_qsel1_a),
1523// );
1524//
1525////assign q0_datain_ca[149:0] =
1526//// (arb_cpxdp_qsel0_ca ? src_cpx_data_ca[149:0] : 150'd0) |
1527//// (arb_cpxdp_shift_cx ? q1_dataout[149:0] : 150'd0) ;
1528//
1529//
1530//mux_macro i_mux_q0_2 (width=50, mux=aonpe, ports=2, stack=50c)
1531//(
1532// .din0 (src_cpx_data_a[149:100]),
1533// .din1 (q1_dataout[149:100]),
1534// .sel0 (arb_qsel0_a),
1535// .sel1 (arb_shift_a),
1536// .dout (q0_datain_a[149:100]),
1537// );
1538//
1539//mux_macro i_mux_q0_1 (width=50, mux=aonpe, ports=2, stack=50c)
1540//(
1541// .din0 (src_cpx_data_a[99:50]),
1542// .din1 (q1_dataout[99:50]),
1543// .sel0 (arb_qsel0_a),
1544// .sel1 (arb_shift_a),
1545// .dout (q0_datain_a[99:50]),
1546// );
1547//
1548//mux_macro i_mux_q0_0 (width=50, mux=aonpe, ports=2, stack=50c)
1549//(
1550// .din0 (src_cpx_data_a[49:0]),
1551// .din1 (q1_dataout[49:0]),
1552// .sel0 (arb_qsel0_a),
1553// .sel1 (arb_shift_a),
1554// .dout (q0_datain_a[49:0]),
1555// );
1556//
1557//msff_macro i_dff_q0_2 (width=50, stack=50c)
1558//(
1559// .scan_in(i_dff_q0_2_scanin),
1560// .scan_out(i_dff_q0_2_scanout),
1561// .clk (l2clk),
1562// .din (q0_datain_a[149:100]),
1563// .dout (q0_dataout[149:100]),
1564// .en (arb_q0_holdbar_a),
1565// );
1566//
1567//msff_macro i_dff_q0_1 (width=50, stack=50c)
1568//(
1569// .scan_in(i_dff_q0_1_scanin),
1570// .scan_out(i_dff_q0_1_scanout),
1571// .clk (l2clk),
1572// .din (q0_datain_a[99:50]),
1573// .dout (q0_dataout[99:50]),
1574// .en (arb_q0_holdbar_a),
1575// );
1576//
1577//msff_macro i_dff_q0_0 (width=50, stack=50c)
1578//(
1579// .scan_in(i_dff_q0_0_scanin),
1580// .scan_out(i_dff_q0_0_scanout),
1581// .clk (l2clk),
1582// .din (q0_datain_a[49:0]),
1583// .dout (q0_dataout[49:0]),
1584// .en (arb_q0_holdbar_a),
1585// );
1586//
1587////MUX
1588//
1589//nand_macro i_nand_data_g_2 (width=50, ports=2, stack=50c)
1590//(
1591// .din0 (q0_dataout[149:100]),
1592// .din1 ({{10{grant_x[11]}},{15{grant_x[10]}},{15{grant_x[9]}},{10{grant_x[8]}}}),
1593// .dout (data_x_[149:100]),
1594// );
1595//
1596//nand_macro i_nand_data_g_1 (width=50, ports=2, stack=50c)
1597//(
1598// .din0 (q0_dataout[99:50]),
1599// .din1 ({{10{grant_x[7]}},{15{grant_x[6]}},{15{grant_x[5]}},{10{grant_x[4]}}}),
1600// .dout (data_x_[99:50]),
1601// );
1602//
1603//nand_macro i_nand_data_g_0 (width=50, ports=2, stack=50c)
1604//(
1605// .din0 (q0_dataout[49:0]),
1606// .din1 ({{10{grant_x[3]}},{15{grant_x[2]}},{15{grant_x[1]}},{10{grant_x[0]}}}),
1607// .dout (data_x_[49:0]),
1608// );
1609//
1610//nand_macro i_nand_data_crit_2 (width=50, ports=3, stack=50c)
1611//(
1612// .din0 (data_x_[149:100]),
1613// .din1 (data_crit_x_[149:100]),
1614// .din2 (data_ncrit_x_[149:100]),
1615// .dout (data_out_x[149:100])
1616//);
1617//
1618//nand_macro i_nand_data_crit_1 (width=50, ports=3, stack=50c)
1619//(
1620// .din0 (data_x_[99:50]),
1621// .din1 (data_crit_x_[99:50]),
1622// .din2 (data_ncrit_x_[99:50]),
1623// .dout (data_out_x[99:50])
1624//);
1625//
1626//nand_macro i_nand_data_crit_0 (width=50, ports=3, stack=50c)
1627//(
1628// .din0 (data_x_[49:0]),
1629// .din1 (data_crit_x_[49:0]),
1630// .din2 (data_ncrit_x_[49:0]),
1631// .dout (data_out_x[49:0])
1632//);
1633//
1634//inv_macro i_inv_data_out_2 (width=50, stack=50c)
1635//(
1636// .din (data_out_x[149:100]),
1637// .dout (data_out_x_[149:100])
1638// );
1639//
1640//inv_macro i_inv_data_out_1 (width=50, stack=50c)
1641//(
1642// .din (data_out_x[99:50]),
1643// .dout (data_out_x_[99:50])
1644// );
1645//
1646//inv_macro i_inv_data_out_0 (width=50, stack=50c)
1647//(
1648// .din (data_out_x[49:0]),
1649// .dout (data_out_x_[49:0])
1650// );
1651//
1652//// fixscan start:
1653//assign i_dff_grant_x_scanin = scan_in ;
1654//assign i_dff_q1_2_scanin = i_dff_grant_x_scanout ;
1655//assign i_dff_q1_1_scanin = i_dff_q1_2_scanout ;
1656//assign i_dff_q1_0_scanin = i_dff_q1_1_scanout ;
1657//assign i_dff_q0_2_scanin = i_dff_q1_0_scanout ;
1658//assign i_dff_q0_1_scanin = i_dff_q0_2_scanout ;
1659//assign i_dff_q0_0_scanin = i_dff_q0_1_scanout ;
1660//assign scan_out = i_dff_q0_0_scanout ;
1661//// fixscan end:
1662//endmodule
1663
1664
1665//
1666// ccx macro
1667//
1668//
1669
1670
1671
1672
1673
1674module cpx_dpa_ccx_new_macro__type_c_r (
1675 l2clk,
1676 l1clk,
1677 pce0,
1678 pce1,
1679 pce_ov,
1680 se,
1681 stop,
1682 siclk_in,
1683 soclk_in,
1684 scan_in,
1685 grant_a,
1686 qsel0,
1687 shift,
1688 data_a,
1689 data_crit_x_l,
1690 data_ncrit_x_l,
1691 data_x_l,
1692 scan_out);
1693wire so5;
1694wire siclk_out;
1695wire soclk_out;
1696wire l1clk0;
1697wire l1clk1;
1698wire grant_x;
1699wire qsel0_buf;
1700wire shift_buf;
1701
1702input l2clk;
1703input l1clk;
1704input pce0;
1705input pce1;
1706input pce_ov;
1707input se;
1708input stop;
1709input siclk_in;
1710input soclk_in;
1711input scan_in;
1712input grant_a;
1713input qsel0;
1714input shift;
1715input [9:0] data_a;
1716input [9:0] data_crit_x_l;
1717input [9:0] data_ncrit_x_l;
1718output [9:0] data_x_l;
1719output scan_out;
1720cl_dp1_ccxhdr c0 (
1721.si(scan_in),
1722.so(so5),
1723 .l2clk(l2clk),
1724 .pce0(pce0),
1725 .pce1(pce1),
1726 .pce_ov(pce_ov),
1727 .stop(stop),
1728 .siclk_in(siclk_in),
1729 .soclk_in(soclk_in),
1730 .siclk_out(siclk_out),
1731 .soclk_out(soclk_out),
1732 .l1clk0(l1clk0),
1733 .l1clk1(l1clk1),
1734 .se(se),
1735 .l1clk(l1clk),
1736 .grant_a(grant_a),
1737 .grant_x(grant_x),
1738 .qsel0(qsel0),
1739 .qsel0_buf(qsel0_buf),
1740 .shift(shift),
1741 .shift_buf(shift_buf)
1742);
1743
1744
1745
1746
1747
1748
1749ccx_mac_c #(10) mac_c(
1750.siclk(siclk_out),
1751.soclk(soclk_out),
1752.data_a(data_a[9:0]),
1753.data_crit_x_l(data_crit_x_l[9:0]),
1754.data_ncrit_x_l(data_ncrit_x_l[9:0]),
1755.data_x_l(data_x_l[9:0]),
1756.si(so5),
1757.so(scan_out),
1758 .l1clk0(l1clk0),
1759 .l1clk1(l1clk1),
1760 .grant_x(grant_x),
1761 .qsel0_buf(qsel0_buf),
1762 .shift_buf(shift_buf)
1763);
1764
1765endmodule
1766`endif // `ifndef FPGA
1767
1768`ifdef FPGA
1769`timescale 1 ns / 100 ps
1770module cpx_dpa(cpx_spc0_data_x_, cpx_spc1_data_x_, cpx_spc2_data_x_,
1771 cpx_spc3_data_x_, cpx_spc4_data_x_, cpx_spc5_data_x_, cpx_spc6_data_x_,
1772 cpx_spc7_data_x_, arb0_grant_l_a, arb0_q0_holdbar_l_a, arb0_qsel0_l_a,
1773 arb0_qsel1_l_a, arb0_shift_l_a, arb1_grant_l_a, arb1_q0_holdbar_l_a,
1774 arb1_qsel0_l_a, arb1_qsel1_l_a, arb1_shift_l_a, arb2_grant_l_a,
1775 arb2_q0_holdbar_l_a, arb2_qsel0_l_a, arb2_qsel1_l_a, arb2_shift_l_a,
1776 arb3_grant_l_a, arb3_q0_holdbar_l_a, arb3_qsel0_l_a, arb3_qsel1_l_a,
1777 arb3_shift_l_a, arb4_grant_l_a, arb4_q0_holdbar_l_a, arb4_qsel0_l_a,
1778 arb4_qsel1_l_a, arb4_shift_l_a, arb5_grant_l_a, arb5_q0_holdbar_l_a,
1779 arb5_qsel0_l_a, arb5_qsel1_l_a, arb5_shift_l_a, arb6_grant_l_a,
1780 arb6_q0_holdbar_l_a, arb6_qsel0_l_a, arb6_qsel1_l_a, arb6_shift_l_a,
1781 arb7_grant_l_a, arb7_q0_holdbar_l_a, arb7_qsel0_l_a, arb7_qsel1_l_a,
1782 arb7_shift_l_a, arb0_grant_r_a, arb0_q0_holdbar_r_a, arb0_qsel0_r_a,
1783 arb0_qsel1_r_a, arb0_shift_r_a, arb1_grant_r_a, arb1_q0_holdbar_r_a,
1784 arb1_qsel0_r_a, arb1_qsel1_r_a, arb1_shift_r_a, arb2_grant_r_a,
1785 arb2_q0_holdbar_r_a, arb2_qsel0_r_a, arb2_qsel1_r_a, arb2_shift_r_a,
1786 arb3_grant_r_a, arb3_q0_holdbar_r_a, arb3_qsel0_r_a, arb3_qsel1_r_a,
1787 arb3_shift_r_a, arb4_grant_r_a, arb4_q0_holdbar_r_a, arb4_qsel0_r_a,
1788 arb4_qsel1_r_a, arb4_shift_r_a, arb5_grant_r_a, arb5_q0_holdbar_r_a,
1789 arb5_qsel0_r_a, arb5_qsel1_r_a, arb5_shift_r_a, arb6_grant_r_a,
1790 arb6_q0_holdbar_r_a, arb6_qsel0_r_a, arb6_qsel1_r_a, arb6_shift_r_a,
1791 arb7_grant_r_a, arb7_q0_holdbar_r_a, arb7_qsel0_r_a, arb7_qsel1_r_a,
1792 arb7_shift_r_a, io_cpx_data_a, scache0_cpx_data_a, scache1_cpx_data_a,
1793 scache2_cpx_data_a, scache3_cpx_data_a, scache4_cpx_data_a,
1794 scache5_cpx_data_a, scache6_cpx_data_a, scache7_cpx_data_a, l2clk,
1795 scan_in, tcu_pce_ov_t, tcu_scan_en_t, ccx_aclk_t, ccx_bclk_t,
1796 tcu_pce_ov_b, tcu_scan_en_b, ccx_aclk_b, ccx_bclk_b, scan_out);
1797
1798 output [149:0] cpx_spc0_data_x_;
1799 output [149:0] cpx_spc1_data_x_;
1800 output [149:0] cpx_spc2_data_x_;
1801 output [149:0] cpx_spc3_data_x_;
1802 output [149:0] cpx_spc4_data_x_;
1803 output [149:0] cpx_spc5_data_x_;
1804 output [149:0] cpx_spc6_data_x_;
1805 output [149:0] cpx_spc7_data_x_;
1806 input [8:0] arb0_grant_l_a;
1807 input [8:0] arb0_q0_holdbar_l_a;
1808 input [8:0] arb0_qsel0_l_a;
1809 input [8:0] arb0_qsel1_l_a;
1810 input [8:0] arb0_shift_l_a;
1811 input [8:0] arb1_grant_l_a;
1812 input [8:0] arb1_q0_holdbar_l_a;
1813 input [8:0] arb1_qsel0_l_a;
1814 input [8:0] arb1_qsel1_l_a;
1815 input [8:0] arb1_shift_l_a;
1816 input [8:0] arb2_grant_l_a;
1817 input [8:0] arb2_q0_holdbar_l_a;
1818 input [8:0] arb2_qsel0_l_a;
1819 input [8:0] arb2_qsel1_l_a;
1820 input [8:0] arb2_shift_l_a;
1821 input [8:0] arb3_grant_l_a;
1822 input [8:0] arb3_q0_holdbar_l_a;
1823 input [8:0] arb3_qsel0_l_a;
1824 input [8:0] arb3_qsel1_l_a;
1825 input [8:0] arb3_shift_l_a;
1826 input [8:0] arb4_grant_l_a;
1827 input [8:0] arb4_q0_holdbar_l_a;
1828 input [8:0] arb4_qsel0_l_a;
1829 input [8:0] arb4_qsel1_l_a;
1830 input [8:0] arb4_shift_l_a;
1831 input [8:0] arb5_grant_l_a;
1832 input [8:0] arb5_q0_holdbar_l_a;
1833 input [8:0] arb5_qsel0_l_a;
1834 input [8:0] arb5_qsel1_l_a;
1835 input [8:0] arb5_shift_l_a;
1836 input [8:0] arb6_grant_l_a;
1837 input [8:0] arb6_q0_holdbar_l_a;
1838 input [8:0] arb6_qsel0_l_a;
1839 input [8:0] arb6_qsel1_l_a;
1840 input [8:0] arb6_shift_l_a;
1841 input [8:0] arb7_grant_l_a;
1842 input [8:0] arb7_q0_holdbar_l_a;
1843 input [8:0] arb7_qsel0_l_a;
1844 input [8:0] arb7_qsel1_l_a;
1845 input [8:0] arb7_shift_l_a;
1846 input [8:0] arb0_grant_r_a;
1847 input [8:0] arb0_q0_holdbar_r_a;
1848 input [8:0] arb0_qsel0_r_a;
1849 input [8:0] arb0_qsel1_r_a;
1850 input [8:0] arb0_shift_r_a;
1851 input [8:0] arb1_grant_r_a;
1852 input [8:0] arb1_q0_holdbar_r_a;
1853 input [8:0] arb1_qsel0_r_a;
1854 input [8:0] arb1_qsel1_r_a;
1855 input [8:0] arb1_shift_r_a;
1856 input [8:0] arb2_grant_r_a;
1857 input [8:0] arb2_q0_holdbar_r_a;
1858 input [8:0] arb2_qsel0_r_a;
1859 input [8:0] arb2_qsel1_r_a;
1860 input [8:0] arb2_shift_r_a;
1861 input [8:0] arb3_grant_r_a;
1862 input [8:0] arb3_q0_holdbar_r_a;
1863 input [8:0] arb3_qsel0_r_a;
1864 input [8:0] arb3_qsel1_r_a;
1865 input [8:0] arb3_shift_r_a;
1866 input [8:0] arb4_grant_r_a;
1867 input [8:0] arb4_q0_holdbar_r_a;
1868 input [8:0] arb4_qsel0_r_a;
1869 input [8:0] arb4_qsel1_r_a;
1870 input [8:0] arb4_shift_r_a;
1871 input [8:0] arb5_grant_r_a;
1872 input [8:0] arb5_q0_holdbar_r_a;
1873 input [8:0] arb5_qsel0_r_a;
1874 input [8:0] arb5_qsel1_r_a;
1875 input [8:0] arb5_shift_r_a;
1876 input [8:0] arb6_grant_r_a;
1877 input [8:0] arb6_q0_holdbar_r_a;
1878 input [8:0] arb6_qsel0_r_a;
1879 input [8:0] arb6_qsel1_r_a;
1880 input [8:0] arb6_shift_r_a;
1881 input [8:0] arb7_grant_r_a;
1882 input [8:0] arb7_q0_holdbar_r_a;
1883 input [8:0] arb7_qsel0_r_a;
1884 input [8:0] arb7_qsel1_r_a;
1885 input [8:0] arb7_shift_r_a;
1886 input [149:0] io_cpx_data_a;
1887 input [149:0] scache0_cpx_data_a;
1888 input [149:0] scache1_cpx_data_a;
1889 input [149:0] scache2_cpx_data_a;
1890 input [149:0] scache3_cpx_data_a;
1891 input [149:0] scache4_cpx_data_a;
1892 input [149:0] scache5_cpx_data_a;
1893 input [149:0] scache6_cpx_data_a;
1894 input [149:0] scache7_cpx_data_a;
1895 input l2clk;
1896 input scan_in;
1897 input tcu_pce_ov_t;
1898 input tcu_scan_en_t;
1899 input ccx_aclk_t;
1900 input ccx_bclk_t;
1901 input tcu_pce_ov_b;
1902 input tcu_scan_en_b;
1903 input ccx_aclk_b;
1904 input ccx_bclk_b;
1905 output scan_out;
1906
1907 wire cpx_dps0_scanin;
1908 wire cpx_dps0_scanout;
1909 wire cpx_dps1_scanin;
1910 wire cpx_dps1_scanout;
1911 wire cpx_dps2_scanin;
1912 wire cpx_dps2_scanout;
1913 wire cpx_dps3_scanin;
1914 wire cpx_dps3_scanout;
1915 wire cpx_dps4_scanin;
1916 wire cpx_dps4_scanout;
1917 wire cpx_dps5_scanin;
1918 wire cpx_dps5_scanout;
1919 wire cpx_dps6_scanin;
1920 wire cpx_dps6_scanout;
1921 wire cpx_dps7_scanin;
1922 wire cpx_dps7_scanout;
1923
1924 assign cpx_dps4_scanin = scan_in;
1925 assign cpx_dps0_scanin = cpx_dps4_scanout;
1926 assign cpx_dps5_scanin = cpx_dps0_scanout;
1927 assign cpx_dps1_scanin = cpx_dps5_scanout;
1928 assign cpx_dps3_scanin = cpx_dps1_scanout;
1929 assign cpx_dps7_scanin = cpx_dps3_scanout;
1930 assign cpx_dps6_scanin = cpx_dps7_scanout;
1931 assign cpx_dps2_scanin = cpx_dps6_scanout;
1932 assign scan_out = cpx_dps2_scanout;
1933
1934 cpx_dpsb cpx_dps0(
1935 .cpx_spc_data_x_ (cpx_spc0_data_x_[149:0]),
1936 .arb_grant_l_a (arb0_grant_l_a[8:0]),
1937 .arb_q0_holdbar_l_a (arb0_q0_holdbar_l_a[8:0]),
1938 .arb_qsel0_l_a (arb0_qsel0_l_a[8:0]),
1939 .arb_qsel1_l_a (arb0_qsel1_l_a[8:0]),
1940 .arb_shift_l_a (arb0_shift_l_a[8:0]),
1941 .arb_grant_r_a (arb0_grant_r_a[8:0]),
1942 .arb_q0_holdbar_r_a (arb0_q0_holdbar_r_a[8:0]),
1943 .arb_qsel0_r_a (arb0_qsel0_r_a[8:0]),
1944 .arb_qsel1_r_a (arb0_qsel1_r_a[8:0]),
1945 .arb_shift_r_a (arb0_shift_r_a[8:0]),
1946 .io_cpx_data_a (io_cpx_data_a[149:0]),
1947 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
1948 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
1949 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
1950 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
1951 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
1952 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
1953 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
1954 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
1955 .scan_in (cpx_dps0_scanin),
1956 .scan_out (cpx_dps0_scanout),
1957 .l2clk (l2clk),
1958 .ccx_aclk (ccx_aclk_t),
1959 .ccx_bclk (ccx_bclk_t),
1960 .tcu_scan_en (tcu_scan_en_t),
1961 .tcu_pce_ov (tcu_pce_ov_t));
1962 cpx_dpsd cpx_dps1(
1963 .cpx_spc_data_x_ (cpx_spc1_data_x_[149:0]),
1964 .arb_grant_l_a (arb1_grant_l_a[8:0]),
1965 .arb_q0_holdbar_l_a (arb1_q0_holdbar_l_a[8:0]),
1966 .arb_qsel0_l_a (arb1_qsel0_l_a[8:0]),
1967 .arb_qsel1_l_a (arb1_qsel1_l_a[8:0]),
1968 .arb_shift_l_a (arb1_shift_l_a[8:0]),
1969 .arb_grant_r_a (arb1_grant_r_a[8:0]),
1970 .arb_q0_holdbar_r_a (arb1_q0_holdbar_r_a[8:0]),
1971 .arb_qsel0_r_a (arb1_qsel0_r_a[8:0]),
1972 .arb_qsel1_r_a (arb1_qsel1_r_a[8:0]),
1973 .arb_shift_r_a (arb1_shift_r_a[8:0]),
1974 .io_cpx_data_a (io_cpx_data_a[149:0]),
1975 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
1976 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
1977 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
1978 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
1979 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
1980 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
1981 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
1982 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
1983 .scan_in (cpx_dps1_scanin),
1984 .scan_out (cpx_dps1_scanout),
1985 .l2clk (l2clk),
1986 .ccx_aclk (ccx_aclk_t),
1987 .ccx_bclk (ccx_bclk_t),
1988 .tcu_scan_en (tcu_scan_en_t),
1989 .tcu_pce_ov (tcu_pce_ov_t));
1990 cpx_dpsa cpx_dps2(
1991 .cpx_spc_data_x_ (cpx_spc2_data_x_[149:0]),
1992 .arb_grant_l_a (arb2_grant_l_a[8:0]),
1993 .arb_q0_holdbar_l_a (arb2_q0_holdbar_l_a[8:0]),
1994 .arb_qsel0_l_a (arb2_qsel0_l_a[8:0]),
1995 .arb_qsel1_l_a (arb2_qsel1_l_a[8:0]),
1996 .arb_shift_l_a (arb2_shift_l_a[8:0]),
1997 .arb_grant_r_a (arb2_grant_r_a[8:0]),
1998 .arb_q0_holdbar_r_a (arb2_q0_holdbar_r_a[8:0]),
1999 .arb_qsel0_r_a (arb2_qsel0_r_a[8:0]),
2000 .arb_qsel1_r_a (arb2_qsel1_r_a[8:0]),
2001 .arb_shift_r_a (arb2_shift_r_a[8:0]),
2002 .io_cpx_data_a (io_cpx_data_a[149:0]),
2003 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
2004 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
2005 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
2006 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
2007 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
2008 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
2009 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
2010 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
2011 .scan_in (cpx_dps2_scanin),
2012 .scan_out (cpx_dps2_scanout),
2013 .l2clk (l2clk),
2014 .ccx_aclk (ccx_aclk_b),
2015 .ccx_bclk (ccx_bclk_b),
2016 .tcu_scan_en (tcu_scan_en_b),
2017 .tcu_pce_ov (tcu_pce_ov_b));
2018 cpx_dpsc cpx_dps3(
2019 .cpx_spc_data_x_ (cpx_spc3_data_x_[149:0]),
2020 .arb_grant_l_a (arb3_grant_l_a[8:0]),
2021 .arb_q0_holdbar_l_a (arb3_q0_holdbar_l_a[8:0]),
2022 .arb_qsel0_l_a (arb3_qsel0_l_a[8:0]),
2023 .arb_qsel1_l_a (arb3_qsel1_l_a[8:0]),
2024 .arb_shift_l_a (arb3_shift_l_a[8:0]),
2025 .arb_grant_r_a (arb3_grant_r_a[8:0]),
2026 .arb_q0_holdbar_r_a (arb3_q0_holdbar_r_a[8:0]),
2027 .arb_qsel0_r_a (arb3_qsel0_r_a[8:0]),
2028 .arb_qsel1_r_a (arb3_qsel1_r_a[8:0]),
2029 .arb_shift_r_a (arb3_shift_r_a[8:0]),
2030 .io_cpx_data_a (io_cpx_data_a[149:0]),
2031 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
2032 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
2033 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
2034 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
2035 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
2036 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
2037 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
2038 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
2039 .scan_in (cpx_dps3_scanin),
2040 .scan_out (cpx_dps3_scanout),
2041 .l2clk (l2clk),
2042 .ccx_aclk (ccx_aclk_b),
2043 .ccx_bclk (ccx_bclk_b),
2044 .tcu_scan_en (tcu_scan_en_b),
2045 .tcu_pce_ov (tcu_pce_ov_b));
2046 cpx_dpsg cpx_dps4(
2047 .cpx_spc_data_x_ (cpx_spc4_data_x_[149:0]),
2048 .arb_grant_l_a (arb4_grant_l_a[8:0]),
2049 .arb_q0_holdbar_l_a (arb4_q0_holdbar_l_a[8:0]),
2050 .arb_qsel0_l_a (arb4_qsel0_l_a[8:0]),
2051 .arb_qsel1_l_a (arb4_qsel1_l_a[8:0]),
2052 .arb_shift_l_a (arb4_shift_l_a[8:0]),
2053 .arb_grant_r_a (arb4_grant_r_a[8:0]),
2054 .arb_q0_holdbar_r_a (arb4_q0_holdbar_r_a[8:0]),
2055 .arb_qsel0_r_a (arb4_qsel0_r_a[8:0]),
2056 .arb_qsel1_r_a (arb4_qsel1_r_a[8:0]),
2057 .arb_shift_r_a (arb4_shift_r_a[8:0]),
2058 .io_cpx_data_a (io_cpx_data_a[149:0]),
2059 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
2060 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
2061 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
2062 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
2063 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
2064 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
2065 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
2066 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
2067 .scan_in (cpx_dps4_scanin),
2068 .scan_out (cpx_dps4_scanout),
2069 .l2clk (l2clk),
2070 .ccx_aclk (ccx_aclk_t),
2071 .ccx_bclk (ccx_bclk_t),
2072 .tcu_scan_en (tcu_scan_en_t),
2073 .tcu_pce_ov (tcu_pce_ov_t));
2074 cpx_dpsf cpx_dps5(
2075 .cpx_spc_data_x_ (cpx_spc5_data_x_[149:0]),
2076 .arb_grant_l_a (arb5_grant_l_a[8:0]),
2077 .arb_q0_holdbar_l_a (arb5_q0_holdbar_l_a[8:0]),
2078 .arb_qsel0_l_a (arb5_qsel0_l_a[8:0]),
2079 .arb_qsel1_l_a (arb5_qsel1_l_a[8:0]),
2080 .arb_shift_l_a (arb5_shift_l_a[8:0]),
2081 .arb_grant_r_a (arb5_grant_r_a[8:0]),
2082 .arb_q0_holdbar_r_a (arb5_q0_holdbar_r_a[8:0]),
2083 .arb_qsel0_r_a (arb5_qsel0_r_a[8:0]),
2084 .arb_qsel1_r_a (arb5_qsel1_r_a[8:0]),
2085 .arb_shift_r_a (arb5_shift_r_a[8:0]),
2086 .io_cpx_data_a (io_cpx_data_a[149:0]),
2087 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
2088 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
2089 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
2090 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
2091 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
2092 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
2093 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
2094 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
2095 .scan_in (cpx_dps5_scanin),
2096 .scan_out (cpx_dps5_scanout),
2097 .l2clk (l2clk),
2098 .ccx_aclk (ccx_aclk_t),
2099 .ccx_bclk (ccx_bclk_t),
2100 .tcu_scan_en (tcu_scan_en_t),
2101 .tcu_pce_ov (tcu_pce_ov_t));
2102 cpx_dpsg cpx_dps6(
2103 .cpx_spc_data_x_ (cpx_spc6_data_x_[149:0]),
2104 .arb_grant_l_a (arb6_grant_l_a[8:0]),
2105 .arb_q0_holdbar_l_a (arb6_q0_holdbar_l_a[8:0]),
2106 .arb_qsel0_l_a (arb6_qsel0_l_a[8:0]),
2107 .arb_qsel1_l_a (arb6_qsel1_l_a[8:0]),
2108 .arb_shift_l_a (arb6_shift_l_a[8:0]),
2109 .arb_grant_r_a (arb6_grant_r_a[8:0]),
2110 .arb_q0_holdbar_r_a (arb6_q0_holdbar_r_a[8:0]),
2111 .arb_qsel0_r_a (arb6_qsel0_r_a[8:0]),
2112 .arb_qsel1_r_a (arb6_qsel1_r_a[8:0]),
2113 .arb_shift_r_a (arb6_shift_r_a[8:0]),
2114 .io_cpx_data_a (io_cpx_data_a[149:0]),
2115 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
2116 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
2117 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
2118 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
2119 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
2120 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
2121 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
2122 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
2123 .scan_in (cpx_dps6_scanin),
2124 .scan_out (cpx_dps6_scanout),
2125 .l2clk (l2clk),
2126 .ccx_aclk (ccx_aclk_b),
2127 .ccx_bclk (ccx_bclk_b),
2128 .tcu_scan_en (tcu_scan_en_b),
2129 .tcu_pce_ov (tcu_pce_ov_b));
2130 cpx_dpse cpx_dps7(
2131 .cpx_spc_data_x_ (cpx_spc7_data_x_[149:0]),
2132 .arb_grant_l_a (arb7_grant_l_a[8:0]),
2133 .arb_q0_holdbar_l_a (arb7_q0_holdbar_l_a[8:0]),
2134 .arb_qsel0_l_a (arb7_qsel0_l_a[8:0]),
2135 .arb_qsel1_l_a (arb7_qsel1_l_a[8:0]),
2136 .arb_shift_l_a (arb7_shift_l_a[8:0]),
2137 .arb_grant_r_a (arb7_grant_r_a[8:0]),
2138 .arb_q0_holdbar_r_a (arb7_q0_holdbar_r_a[8:0]),
2139 .arb_qsel0_r_a (arb7_qsel0_r_a[8:0]),
2140 .arb_qsel1_r_a (arb7_qsel1_r_a[8:0]),
2141 .arb_shift_r_a (arb7_shift_r_a[8:0]),
2142 .io_cpx_data_a (io_cpx_data_a[149:0]),
2143 .scache0_cpx_data_a (scache0_cpx_data_a[149:0]),
2144 .scache1_cpx_data_a (scache1_cpx_data_a[149:0]),
2145 .scache2_cpx_data_a (scache2_cpx_data_a[149:0]),
2146 .scache3_cpx_data_a (scache3_cpx_data_a[149:0]),
2147 .scache4_cpx_data_a (scache4_cpx_data_a[149:0]),
2148 .scache5_cpx_data_a (scache5_cpx_data_a[149:0]),
2149 .scache6_cpx_data_a (scache6_cpx_data_a[149:0]),
2150 .scache7_cpx_data_a (scache7_cpx_data_a[149:0]),
2151 .scan_in (cpx_dps7_scanin),
2152 .scan_out (cpx_dps7_scanout),
2153 .l2clk (l2clk),
2154 .ccx_aclk (ccx_aclk_b),
2155 .ccx_bclk (ccx_bclk_b),
2156 .tcu_scan_en (tcu_scan_en_b),
2157 .tcu_pce_ov (tcu_pce_ov_b));
2158endmodule
2159
2160
2161`endif // `ifdef FPGA
2162