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