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