Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / ccx / rtl / ccx_arb.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: ccx_arb.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 ccx_arb (
37 arb_grant_a,
38 arb_q0_holdbar_a,
39 arb_qsel0_a,
40 arb_qsel1_a,
41 arb_shift_a,
42 arb_src0_grant_a,
43 arb_src1_grant_a,
44 arb_src2_grant_a,
45 arb_src3_grant_a,
46 arb_src4_grant_a,
47 arb_src5_grant_a,
48 arb_src6_grant_a,
49 arb_src7_grant_a,
50 arb_src8_grant_a,
51 ccx_dest_atom_a,
52 ccx_dest_data_rdy_a,
53 src0_arb_atom_q,
54 src0_arb_req_q,
55 src1_arb_atom_q,
56 src1_arb_req_q,
57 src2_arb_atom_q,
58 src2_arb_req_q,
59 src3_arb_atom_q,
60 src3_arb_req_q,
61 src4_arb_atom_q,
62 src4_arb_req_q,
63 src5_arb_atom_q,
64 src5_arb_req_q,
65 src6_arb_atom_q,
66 src6_arb_req_q,
67 src7_arb_atom_q,
68 src7_arb_req_q,
69 src8_arb_atom_q,
70 src8_arb_req_q,
71 stall_q_d1,
72 tcu_scan_en,
73 l2clk,
74 scan_in,
75 tcu_pce_ov,
76 ccx_aclk,
77 ccx_bclk,
78 scan_out);
79wire direction;
80wire [17:0] write_fifo_a;
81wire [2:0] fifo_rptr_a;
82wire [1:0] fifo_read_select;
83wire input_req_sel_a;
84wire input_req_sel_a_;
85wire fifo_req_sel_a;
86wire [8:0] qfullbar_a;
87wire [8:0] atom_x;
88wire [8:0] grant_a;
89wire req_pkt_empty_a;
90wire arc_scanin;
91wire arc_scanout;
92wire tcu_pce_ov_out;
93wire tcu_scan_en_out;
94wire ccx_aclk_out;
95wire ccx_bclk_out;
96wire ard_scanin;
97wire ard_scanout;
98wire [8:0] atom_a;
99wire [8:0] req_a;
100
101
102// Beginning of automatic outputs (from unused autoinst outputs)
103output [8:0] arb_grant_a; // From i_arbdp of ccx_ard_dp.v
104output [8:0] arb_q0_holdbar_a; // From i_arbctl of ccx_arc_ctl.v
105output [8:0] arb_qsel0_a; // From i_arbctl of ccx_arc_ctl.v
106output [8:0] arb_qsel1_a; // From i_arbctl of ccx_arc_ctl.v
107output [8:0] arb_shift_a; // From i_arbctl of ccx_arc_ctl.v
108output arb_src0_grant_a; // From i_arbdp of ccx_ard_dp.v
109output arb_src1_grant_a; // From i_arbdp of ccx_ard_dp.v
110output arb_src2_grant_a; // From i_arbdp of ccx_ard_dp.v
111output arb_src3_grant_a; // From i_arbdp of ccx_ard_dp.v
112output arb_src4_grant_a; // From i_arbdp of ccx_ard_dp.v
113output arb_src5_grant_a; // From i_arbdp of ccx_ard_dp.v
114output arb_src6_grant_a; // From i_arbdp of ccx_ard_dp.v
115output arb_src7_grant_a; // From i_arbdp of ccx_ard_dp.v
116output arb_src8_grant_a; // From i_arbdp of ccx_ard_dp.v
117output ccx_dest_atom_a; // From i_arbctl of ccx_arc_ctl.v
118output ccx_dest_data_rdy_a; // From i_arbctl of ccx_arc_ctl.v
119
120// End of automatics
121
122
123// Beginning of automatic inputs (from unused autoinst inputs)
124
125input src0_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
126input src0_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
127input src1_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
128input src1_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
129input src2_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
130input src2_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
131input src3_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
132input src3_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
133input src4_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
134input src4_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
135input src5_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
136input src5_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
137input src6_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
138input src6_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
139input src7_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
140input src7_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
141input src8_arb_atom_q; // To i_arbctl of ccx_arc_ctl.v, ...
142input src8_arb_req_q; // To i_arbctl of ccx_arc_ctl.v, ...
143input stall_q_d1; // To i_arbctl of ccx_arc_ctl.v
144// End of automatics
145
146//globals
147input tcu_scan_en ;
148input l2clk;
149input scan_in;
150input tcu_pce_ov; // scan signals
151input ccx_aclk;
152input ccx_bclk;
153output scan_out;
154
155ccx_arc_ctl arc (
156 /*AUTOINST*/
157 // Outputs
158 .direction (direction),
159 .write_fifo_a (write_fifo_a[17:0]),
160 .fifo_rptr_a (fifo_rptr_a[2:0]),
161 .fifo_read_select (fifo_read_select[1:0]),
162 .input_req_sel_a (input_req_sel_a),
163 .input_req_sel_a_ (input_req_sel_a_),
164 .fifo_req_sel_a (fifo_req_sel_a),
165 .qfullbar_a (qfullbar_a[8:0]),
166 .atom_x (atom_x[8:0]),
167 .arb_qsel0_a (arb_qsel0_a[8:0]),
168 .arb_qsel1_a (arb_qsel1_a[8:0]),
169 .arb_shift_a (arb_shift_a[8:0]),
170 .arb_q0_holdbar_a (arb_q0_holdbar_a[8:0]),
171 // Inputs
172 .grant_a (grant_a[8:0]),
173 .req_pkt_empty_a (req_pkt_empty_a),
174 .scan_in(arc_scanin),
175 .scan_out(arc_scanout),
176 .l2clk (l2clk),
177 .tcu_pce_ov (tcu_pce_ov_out),
178 .tcu_scan_en (tcu_scan_en_out),
179 .ccx_aclk (ccx_aclk_out),
180 .ccx_bclk (ccx_bclk_out),
181 .atom_a(atom_a[8:0]),
182 .req_a(req_a[8:0])
183);
184
185ccx_ard_dp ard (
186 /*AUTOINST*/
187 // Outputs
188 .arb_grant_a (arb_grant_a[8:0]),
189 .arb_src8_grant_a (arb_src8_grant_a),
190 .arb_src7_grant_a (arb_src7_grant_a),
191 .arb_src6_grant_a (arb_src6_grant_a),
192 .arb_src5_grant_a (arb_src5_grant_a),
193 .arb_src4_grant_a (arb_src4_grant_a),
194 .arb_src3_grant_a (arb_src3_grant_a),
195 .arb_src2_grant_a (arb_src2_grant_a),
196 .arb_src1_grant_a (arb_src1_grant_a),
197 .arb_src0_grant_a (arb_src0_grant_a),
198 .ccx_dest_data_rdy_a (ccx_dest_data_rdy_a),
199 .ccx_dest_atom_a (ccx_dest_atom_a),
200 .req_pkt_empty_a (req_pkt_empty_a),
201 .grant_a (grant_a[8:0]),
202 // Inputs
203 .src8_arb_atom_q (src8_arb_atom_q),
204 .src7_arb_atom_q (src7_arb_atom_q),
205 .src6_arb_atom_q (src6_arb_atom_q),
206 .src5_arb_atom_q (src5_arb_atom_q),
207 .src4_arb_atom_q (src4_arb_atom_q),
208 .src3_arb_atom_q (src3_arb_atom_q),
209 .src2_arb_atom_q (src2_arb_atom_q),
210 .src1_arb_atom_q (src1_arb_atom_q),
211 .src0_arb_atom_q (src0_arb_atom_q),
212 .src8_arb_req_q (src8_arb_req_q),
213 .src7_arb_req_q (src7_arb_req_q),
214 .src6_arb_req_q (src6_arb_req_q),
215 .src5_arb_req_q (src5_arb_req_q),
216 .src4_arb_req_q (src4_arb_req_q),
217 .src3_arb_req_q (src3_arb_req_q),
218 .src2_arb_req_q (src2_arb_req_q),
219 .src1_arb_req_q (src1_arb_req_q),
220 .src0_arb_req_q (src0_arb_req_q),
221 .qfullbar_a (qfullbar_a[8:0]),
222 .direction (direction),
223 .fifo_req_sel_a (fifo_req_sel_a),
224 .input_req_sel_a (input_req_sel_a),
225 .input_req_sel_a_ (input_req_sel_a_),
226 .write_fifo_a (write_fifo_a[17:0]),
227 .fifo_rptr_a (fifo_rptr_a[2:0]),
228 .fifo_read_select (fifo_read_select[1:0]),
229 .atom_x (atom_x[8:0]),
230 .stall_q_d1 (stall_q_d1),
231 .scan_in(ard_scanin),
232 .scan_out(ard_scanout),
233 .l2clk (l2clk),
234 .tcu_pce_ov (tcu_pce_ov),
235 .req_a(req_a[8:0]),
236 .atom_a(atom_a[8:0]),
237 .tcu_scan_en(tcu_scan_en),
238 .ccx_aclk(ccx_aclk),
239 .ccx_bclk(ccx_bclk),
240 .tcu_pce_ov_out(tcu_pce_ov_out),
241 .tcu_scan_en_out(tcu_scan_en_out),
242 .ccx_aclk_out(ccx_aclk_out),
243 .ccx_bclk_out(ccx_bclk_out));
244
245
246// fixscan start:
247assign arc_scanin = scan_in ;
248assign ard_scanin = arc_scanout ;
249assign scan_out = ard_scanout ;
250// fixscan end:
251endmodule
252
253// Local Variables:
254// verilog-library-directories:("." "./v")
255// End:
256
257
258
259
260// any PARAMS parms go into naming of macro
261
262module ccx_arb_l1clkhdr_ctl_macro (
263 l2clk,
264 l1en,
265 pce_ov,
266 stop,
267 se,
268 l1clk);
269
270
271 input l2clk;
272 input l1en;
273 input pce_ov;
274 input stop;
275 input se;
276 output l1clk;
277
278
279
280
281
282cl_sc1_l1hdr_8x c_0 (
283
284
285 .l2clk(l2clk),
286 .pce(l1en),
287 .l1clk(l1clk),
288 .se(se),
289 .pce_ov(pce_ov),
290 .stop(stop)
291);
292
293
294
295endmodule
296
297
298
299
300
301
302
303
304
305
306
307
308
309// any PARAMS parms go into naming of macro
310
311module ccx_arb_msff_ctl_macro__width_5 (
312 din,
313 l1clk,
314 scan_in,
315 siclk,
316 soclk,
317 dout,
318 scan_out);
319wire [4:0] fdin;
320wire [3:0] so;
321
322 input [4:0] din;
323 input l1clk;
324 input scan_in;
325
326
327 input siclk;
328 input soclk;
329
330 output [4:0] dout;
331 output scan_out;
332assign fdin[4:0] = din[4:0];
333
334
335
336
337
338
339dff #(5) d0_0 (
340.l1clk(l1clk),
341.siclk(siclk),
342.soclk(soclk),
343.d(fdin[4:0]),
344.si({scan_in,so[3:0]}),
345.so({so[3:0],scan_out}),
346.q(dout[4:0])
347);
348
349
350
351
352
353
354
355
356
357
358
359
360endmodule
361
362
363
364
365
366
367
368
369
370
371
372
373
374// any PARAMS parms go into naming of macro
375
376module ccx_arb_msff_ctl_macro (
377 din,
378 l1clk,
379 scan_in,
380 siclk,
381 soclk,
382 dout,
383 scan_out);
384wire [0:0] fdin;
385
386 input [0:0] din;
387 input l1clk;
388 input scan_in;
389
390
391 input siclk;
392 input soclk;
393
394 output [0:0] dout;
395 output scan_out;
396assign fdin[0:0] = din[0:0];
397
398
399
400
401
402
403dff #(1) d0_0 (
404.l1clk(l1clk),
405.siclk(siclk),
406.soclk(soclk),
407.d(fdin[0:0]),
408.si(scan_in),
409.so(scan_out),
410.q(dout[0:0])
411);
412
413
414
415
416
417
418
419
420
421
422
423
424endmodule
425
426
427
428// Description: Spare gate macro for control blocks
429//
430// Param num controls the number of times the macro is added
431// flops=0 can be used to use only combination spare logic
432
433
434module ccx_arb_spare_ctl_macro__num_10 (
435 l1clk,
436 scan_in,
437 siclk,
438 soclk,
439 scan_out);
440wire si_0;
441wire so_0;
442wire spare0_flop_unused;
443wire spare0_buf_32x_unused;
444wire spare0_nand3_8x_unused;
445wire spare0_inv_8x_unused;
446wire spare0_aoi22_4x_unused;
447wire spare0_buf_8x_unused;
448wire spare0_oai22_4x_unused;
449wire spare0_inv_16x_unused;
450wire spare0_nand2_16x_unused;
451wire spare0_nor3_4x_unused;
452wire spare0_nand2_8x_unused;
453wire spare0_buf_16x_unused;
454wire spare0_nor2_16x_unused;
455wire spare0_inv_32x_unused;
456wire si_1;
457wire so_1;
458wire spare1_flop_unused;
459wire spare1_buf_32x_unused;
460wire spare1_nand3_8x_unused;
461wire spare1_inv_8x_unused;
462wire spare1_aoi22_4x_unused;
463wire spare1_buf_8x_unused;
464wire spare1_oai22_4x_unused;
465wire spare1_inv_16x_unused;
466wire spare1_nand2_16x_unused;
467wire spare1_nor3_4x_unused;
468wire spare1_nand2_8x_unused;
469wire spare1_buf_16x_unused;
470wire spare1_nor2_16x_unused;
471wire spare1_inv_32x_unused;
472wire si_2;
473wire so_2;
474wire spare2_flop_unused;
475wire spare2_buf_32x_unused;
476wire spare2_nand3_8x_unused;
477wire spare2_inv_8x_unused;
478wire spare2_aoi22_4x_unused;
479wire spare2_buf_8x_unused;
480wire spare2_oai22_4x_unused;
481wire spare2_inv_16x_unused;
482wire spare2_nand2_16x_unused;
483wire spare2_nor3_4x_unused;
484wire spare2_nand2_8x_unused;
485wire spare2_buf_16x_unused;
486wire spare2_nor2_16x_unused;
487wire spare2_inv_32x_unused;
488wire si_3;
489wire so_3;
490wire spare3_flop_unused;
491wire spare3_buf_32x_unused;
492wire spare3_nand3_8x_unused;
493wire spare3_inv_8x_unused;
494wire spare3_aoi22_4x_unused;
495wire spare3_buf_8x_unused;
496wire spare3_oai22_4x_unused;
497wire spare3_inv_16x_unused;
498wire spare3_nand2_16x_unused;
499wire spare3_nor3_4x_unused;
500wire spare3_nand2_8x_unused;
501wire spare3_buf_16x_unused;
502wire spare3_nor2_16x_unused;
503wire spare3_inv_32x_unused;
504wire si_4;
505wire so_4;
506wire spare4_flop_unused;
507wire spare4_buf_32x_unused;
508wire spare4_nand3_8x_unused;
509wire spare4_inv_8x_unused;
510wire spare4_aoi22_4x_unused;
511wire spare4_buf_8x_unused;
512wire spare4_oai22_4x_unused;
513wire spare4_inv_16x_unused;
514wire spare4_nand2_16x_unused;
515wire spare4_nor3_4x_unused;
516wire spare4_nand2_8x_unused;
517wire spare4_buf_16x_unused;
518wire spare4_nor2_16x_unused;
519wire spare4_inv_32x_unused;
520wire si_5;
521wire so_5;
522wire spare5_flop_unused;
523wire spare5_buf_32x_unused;
524wire spare5_nand3_8x_unused;
525wire spare5_inv_8x_unused;
526wire spare5_aoi22_4x_unused;
527wire spare5_buf_8x_unused;
528wire spare5_oai22_4x_unused;
529wire spare5_inv_16x_unused;
530wire spare5_nand2_16x_unused;
531wire spare5_nor3_4x_unused;
532wire spare5_nand2_8x_unused;
533wire spare5_buf_16x_unused;
534wire spare5_nor2_16x_unused;
535wire spare5_inv_32x_unused;
536wire si_6;
537wire so_6;
538wire spare6_flop_unused;
539wire spare6_buf_32x_unused;
540wire spare6_nand3_8x_unused;
541wire spare6_inv_8x_unused;
542wire spare6_aoi22_4x_unused;
543wire spare6_buf_8x_unused;
544wire spare6_oai22_4x_unused;
545wire spare6_inv_16x_unused;
546wire spare6_nand2_16x_unused;
547wire spare6_nor3_4x_unused;
548wire spare6_nand2_8x_unused;
549wire spare6_buf_16x_unused;
550wire spare6_nor2_16x_unused;
551wire spare6_inv_32x_unused;
552wire si_7;
553wire so_7;
554wire spare7_flop_unused;
555wire spare7_buf_32x_unused;
556wire spare7_nand3_8x_unused;
557wire spare7_inv_8x_unused;
558wire spare7_aoi22_4x_unused;
559wire spare7_buf_8x_unused;
560wire spare7_oai22_4x_unused;
561wire spare7_inv_16x_unused;
562wire spare7_nand2_16x_unused;
563wire spare7_nor3_4x_unused;
564wire spare7_nand2_8x_unused;
565wire spare7_buf_16x_unused;
566wire spare7_nor2_16x_unused;
567wire spare7_inv_32x_unused;
568wire si_8;
569wire so_8;
570wire spare8_flop_unused;
571wire spare8_buf_32x_unused;
572wire spare8_nand3_8x_unused;
573wire spare8_inv_8x_unused;
574wire spare8_aoi22_4x_unused;
575wire spare8_buf_8x_unused;
576wire spare8_oai22_4x_unused;
577wire spare8_inv_16x_unused;
578wire spare8_nand2_16x_unused;
579wire spare8_nor3_4x_unused;
580wire spare8_nand2_8x_unused;
581wire spare8_buf_16x_unused;
582wire spare8_nor2_16x_unused;
583wire spare8_inv_32x_unused;
584wire si_9;
585wire so_9;
586wire spare9_flop_unused;
587wire spare9_buf_32x_unused;
588wire spare9_nand3_8x_unused;
589wire spare9_inv_8x_unused;
590wire spare9_aoi22_4x_unused;
591wire spare9_buf_8x_unused;
592wire spare9_oai22_4x_unused;
593wire spare9_inv_16x_unused;
594wire spare9_nand2_16x_unused;
595wire spare9_nor3_4x_unused;
596wire spare9_nand2_8x_unused;
597wire spare9_buf_16x_unused;
598wire spare9_nor2_16x_unused;
599wire spare9_inv_32x_unused;
600
601
602input l1clk;
603input scan_in;
604input siclk;
605input soclk;
606output scan_out;
607
608cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
609 .siclk(siclk),
610 .soclk(soclk),
611 .si(si_0),
612 .so(so_0),
613 .d(1'b0),
614 .q(spare0_flop_unused));
615assign si_0 = scan_in;
616
617cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
618 .out(spare0_buf_32x_unused));
619cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
620 .in1(1'b1),
621 .in2(1'b1),
622 .out(spare0_nand3_8x_unused));
623cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
624 .out(spare0_inv_8x_unused));
625cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
626 .in01(1'b1),
627 .in10(1'b1),
628 .in11(1'b1),
629 .out(spare0_aoi22_4x_unused));
630cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
631 .out(spare0_buf_8x_unused));
632cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
633 .in01(1'b1),
634 .in10(1'b1),
635 .in11(1'b1),
636 .out(spare0_oai22_4x_unused));
637cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
638 .out(spare0_inv_16x_unused));
639cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
640 .in1(1'b1),
641 .out(spare0_nand2_16x_unused));
642cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
643 .in1(1'b0),
644 .in2(1'b0),
645 .out(spare0_nor3_4x_unused));
646cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
647 .in1(1'b1),
648 .out(spare0_nand2_8x_unused));
649cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
650 .out(spare0_buf_16x_unused));
651cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
652 .in1(1'b0),
653 .out(spare0_nor2_16x_unused));
654cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
655 .out(spare0_inv_32x_unused));
656
657cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
658 .siclk(siclk),
659 .soclk(soclk),
660 .si(si_1),
661 .so(so_1),
662 .d(1'b0),
663 .q(spare1_flop_unused));
664assign si_1 = so_0;
665
666cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
667 .out(spare1_buf_32x_unused));
668cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
669 .in1(1'b1),
670 .in2(1'b1),
671 .out(spare1_nand3_8x_unused));
672cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
673 .out(spare1_inv_8x_unused));
674cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
675 .in01(1'b1),
676 .in10(1'b1),
677 .in11(1'b1),
678 .out(spare1_aoi22_4x_unused));
679cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
680 .out(spare1_buf_8x_unused));
681cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
682 .in01(1'b1),
683 .in10(1'b1),
684 .in11(1'b1),
685 .out(spare1_oai22_4x_unused));
686cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
687 .out(spare1_inv_16x_unused));
688cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
689 .in1(1'b1),
690 .out(spare1_nand2_16x_unused));
691cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
692 .in1(1'b0),
693 .in2(1'b0),
694 .out(spare1_nor3_4x_unused));
695cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
696 .in1(1'b1),
697 .out(spare1_nand2_8x_unused));
698cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
699 .out(spare1_buf_16x_unused));
700cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
701 .in1(1'b0),
702 .out(spare1_nor2_16x_unused));
703cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
704 .out(spare1_inv_32x_unused));
705
706cl_sc1_msff_8x spare2_flop (.l1clk(l1clk),
707 .siclk(siclk),
708 .soclk(soclk),
709 .si(si_2),
710 .so(so_2),
711 .d(1'b0),
712 .q(spare2_flop_unused));
713assign si_2 = so_1;
714
715cl_u1_buf_32x spare2_buf_32x (.in(1'b1),
716 .out(spare2_buf_32x_unused));
717cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1),
718 .in1(1'b1),
719 .in2(1'b1),
720 .out(spare2_nand3_8x_unused));
721cl_u1_inv_8x spare2_inv_8x (.in(1'b1),
722 .out(spare2_inv_8x_unused));
723cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1),
724 .in01(1'b1),
725 .in10(1'b1),
726 .in11(1'b1),
727 .out(spare2_aoi22_4x_unused));
728cl_u1_buf_8x spare2_buf_8x (.in(1'b1),
729 .out(spare2_buf_8x_unused));
730cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1),
731 .in01(1'b1),
732 .in10(1'b1),
733 .in11(1'b1),
734 .out(spare2_oai22_4x_unused));
735cl_u1_inv_16x spare2_inv_16x (.in(1'b1),
736 .out(spare2_inv_16x_unused));
737cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1),
738 .in1(1'b1),
739 .out(spare2_nand2_16x_unused));
740cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0),
741 .in1(1'b0),
742 .in2(1'b0),
743 .out(spare2_nor3_4x_unused));
744cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1),
745 .in1(1'b1),
746 .out(spare2_nand2_8x_unused));
747cl_u1_buf_16x spare2_buf_16x (.in(1'b1),
748 .out(spare2_buf_16x_unused));
749cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0),
750 .in1(1'b0),
751 .out(spare2_nor2_16x_unused));
752cl_u1_inv_32x spare2_inv_32x (.in(1'b1),
753 .out(spare2_inv_32x_unused));
754
755cl_sc1_msff_8x spare3_flop (.l1clk(l1clk),
756 .siclk(siclk),
757 .soclk(soclk),
758 .si(si_3),
759 .so(so_3),
760 .d(1'b0),
761 .q(spare3_flop_unused));
762assign si_3 = so_2;
763
764cl_u1_buf_32x spare3_buf_32x (.in(1'b1),
765 .out(spare3_buf_32x_unused));
766cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1),
767 .in1(1'b1),
768 .in2(1'b1),
769 .out(spare3_nand3_8x_unused));
770cl_u1_inv_8x spare3_inv_8x (.in(1'b1),
771 .out(spare3_inv_8x_unused));
772cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1),
773 .in01(1'b1),
774 .in10(1'b1),
775 .in11(1'b1),
776 .out(spare3_aoi22_4x_unused));
777cl_u1_buf_8x spare3_buf_8x (.in(1'b1),
778 .out(spare3_buf_8x_unused));
779cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1),
780 .in01(1'b1),
781 .in10(1'b1),
782 .in11(1'b1),
783 .out(spare3_oai22_4x_unused));
784cl_u1_inv_16x spare3_inv_16x (.in(1'b1),
785 .out(spare3_inv_16x_unused));
786cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1),
787 .in1(1'b1),
788 .out(spare3_nand2_16x_unused));
789cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0),
790 .in1(1'b0),
791 .in2(1'b0),
792 .out(spare3_nor3_4x_unused));
793cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1),
794 .in1(1'b1),
795 .out(spare3_nand2_8x_unused));
796cl_u1_buf_16x spare3_buf_16x (.in(1'b1),
797 .out(spare3_buf_16x_unused));
798cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0),
799 .in1(1'b0),
800 .out(spare3_nor2_16x_unused));
801cl_u1_inv_32x spare3_inv_32x (.in(1'b1),
802 .out(spare3_inv_32x_unused));
803
804cl_sc1_msff_8x spare4_flop (.l1clk(l1clk),
805 .siclk(siclk),
806 .soclk(soclk),
807 .si(si_4),
808 .so(so_4),
809 .d(1'b0),
810 .q(spare4_flop_unused));
811assign si_4 = so_3;
812
813cl_u1_buf_32x spare4_buf_32x (.in(1'b1),
814 .out(spare4_buf_32x_unused));
815cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1),
816 .in1(1'b1),
817 .in2(1'b1),
818 .out(spare4_nand3_8x_unused));
819cl_u1_inv_8x spare4_inv_8x (.in(1'b1),
820 .out(spare4_inv_8x_unused));
821cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1),
822 .in01(1'b1),
823 .in10(1'b1),
824 .in11(1'b1),
825 .out(spare4_aoi22_4x_unused));
826cl_u1_buf_8x spare4_buf_8x (.in(1'b1),
827 .out(spare4_buf_8x_unused));
828cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1),
829 .in01(1'b1),
830 .in10(1'b1),
831 .in11(1'b1),
832 .out(spare4_oai22_4x_unused));
833cl_u1_inv_16x spare4_inv_16x (.in(1'b1),
834 .out(spare4_inv_16x_unused));
835cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1),
836 .in1(1'b1),
837 .out(spare4_nand2_16x_unused));
838cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0),
839 .in1(1'b0),
840 .in2(1'b0),
841 .out(spare4_nor3_4x_unused));
842cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1),
843 .in1(1'b1),
844 .out(spare4_nand2_8x_unused));
845cl_u1_buf_16x spare4_buf_16x (.in(1'b1),
846 .out(spare4_buf_16x_unused));
847cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0),
848 .in1(1'b0),
849 .out(spare4_nor2_16x_unused));
850cl_u1_inv_32x spare4_inv_32x (.in(1'b1),
851 .out(spare4_inv_32x_unused));
852
853cl_sc1_msff_8x spare5_flop (.l1clk(l1clk),
854 .siclk(siclk),
855 .soclk(soclk),
856 .si(si_5),
857 .so(so_5),
858 .d(1'b0),
859 .q(spare5_flop_unused));
860assign si_5 = so_4;
861
862cl_u1_buf_32x spare5_buf_32x (.in(1'b1),
863 .out(spare5_buf_32x_unused));
864cl_u1_nand3_8x spare5_nand3_8x (.in0(1'b1),
865 .in1(1'b1),
866 .in2(1'b1),
867 .out(spare5_nand3_8x_unused));
868cl_u1_inv_8x spare5_inv_8x (.in(1'b1),
869 .out(spare5_inv_8x_unused));
870cl_u1_aoi22_4x spare5_aoi22_4x (.in00(1'b1),
871 .in01(1'b1),
872 .in10(1'b1),
873 .in11(1'b1),
874 .out(spare5_aoi22_4x_unused));
875cl_u1_buf_8x spare5_buf_8x (.in(1'b1),
876 .out(spare5_buf_8x_unused));
877cl_u1_oai22_4x spare5_oai22_4x (.in00(1'b1),
878 .in01(1'b1),
879 .in10(1'b1),
880 .in11(1'b1),
881 .out(spare5_oai22_4x_unused));
882cl_u1_inv_16x spare5_inv_16x (.in(1'b1),
883 .out(spare5_inv_16x_unused));
884cl_u1_nand2_16x spare5_nand2_16x (.in0(1'b1),
885 .in1(1'b1),
886 .out(spare5_nand2_16x_unused));
887cl_u1_nor3_4x spare5_nor3_4x (.in0(1'b0),
888 .in1(1'b0),
889 .in2(1'b0),
890 .out(spare5_nor3_4x_unused));
891cl_u1_nand2_8x spare5_nand2_8x (.in0(1'b1),
892 .in1(1'b1),
893 .out(spare5_nand2_8x_unused));
894cl_u1_buf_16x spare5_buf_16x (.in(1'b1),
895 .out(spare5_buf_16x_unused));
896cl_u1_nor2_16x spare5_nor2_16x (.in0(1'b0),
897 .in1(1'b0),
898 .out(spare5_nor2_16x_unused));
899cl_u1_inv_32x spare5_inv_32x (.in(1'b1),
900 .out(spare5_inv_32x_unused));
901
902cl_sc1_msff_8x spare6_flop (.l1clk(l1clk),
903 .siclk(siclk),
904 .soclk(soclk),
905 .si(si_6),
906 .so(so_6),
907 .d(1'b0),
908 .q(spare6_flop_unused));
909assign si_6 = so_5;
910
911cl_u1_buf_32x spare6_buf_32x (.in(1'b1),
912 .out(spare6_buf_32x_unused));
913cl_u1_nand3_8x spare6_nand3_8x (.in0(1'b1),
914 .in1(1'b1),
915 .in2(1'b1),
916 .out(spare6_nand3_8x_unused));
917cl_u1_inv_8x spare6_inv_8x (.in(1'b1),
918 .out(spare6_inv_8x_unused));
919cl_u1_aoi22_4x spare6_aoi22_4x (.in00(1'b1),
920 .in01(1'b1),
921 .in10(1'b1),
922 .in11(1'b1),
923 .out(spare6_aoi22_4x_unused));
924cl_u1_buf_8x spare6_buf_8x (.in(1'b1),
925 .out(spare6_buf_8x_unused));
926cl_u1_oai22_4x spare6_oai22_4x (.in00(1'b1),
927 .in01(1'b1),
928 .in10(1'b1),
929 .in11(1'b1),
930 .out(spare6_oai22_4x_unused));
931cl_u1_inv_16x spare6_inv_16x (.in(1'b1),
932 .out(spare6_inv_16x_unused));
933cl_u1_nand2_16x spare6_nand2_16x (.in0(1'b1),
934 .in1(1'b1),
935 .out(spare6_nand2_16x_unused));
936cl_u1_nor3_4x spare6_nor3_4x (.in0(1'b0),
937 .in1(1'b0),
938 .in2(1'b0),
939 .out(spare6_nor3_4x_unused));
940cl_u1_nand2_8x spare6_nand2_8x (.in0(1'b1),
941 .in1(1'b1),
942 .out(spare6_nand2_8x_unused));
943cl_u1_buf_16x spare6_buf_16x (.in(1'b1),
944 .out(spare6_buf_16x_unused));
945cl_u1_nor2_16x spare6_nor2_16x (.in0(1'b0),
946 .in1(1'b0),
947 .out(spare6_nor2_16x_unused));
948cl_u1_inv_32x spare6_inv_32x (.in(1'b1),
949 .out(spare6_inv_32x_unused));
950
951cl_sc1_msff_8x spare7_flop (.l1clk(l1clk),
952 .siclk(siclk),
953 .soclk(soclk),
954 .si(si_7),
955 .so(so_7),
956 .d(1'b0),
957 .q(spare7_flop_unused));
958assign si_7 = so_6;
959
960cl_u1_buf_32x spare7_buf_32x (.in(1'b1),
961 .out(spare7_buf_32x_unused));
962cl_u1_nand3_8x spare7_nand3_8x (.in0(1'b1),
963 .in1(1'b1),
964 .in2(1'b1),
965 .out(spare7_nand3_8x_unused));
966cl_u1_inv_8x spare7_inv_8x (.in(1'b1),
967 .out(spare7_inv_8x_unused));
968cl_u1_aoi22_4x spare7_aoi22_4x (.in00(1'b1),
969 .in01(1'b1),
970 .in10(1'b1),
971 .in11(1'b1),
972 .out(spare7_aoi22_4x_unused));
973cl_u1_buf_8x spare7_buf_8x (.in(1'b1),
974 .out(spare7_buf_8x_unused));
975cl_u1_oai22_4x spare7_oai22_4x (.in00(1'b1),
976 .in01(1'b1),
977 .in10(1'b1),
978 .in11(1'b1),
979 .out(spare7_oai22_4x_unused));
980cl_u1_inv_16x spare7_inv_16x (.in(1'b1),
981 .out(spare7_inv_16x_unused));
982cl_u1_nand2_16x spare7_nand2_16x (.in0(1'b1),
983 .in1(1'b1),
984 .out(spare7_nand2_16x_unused));
985cl_u1_nor3_4x spare7_nor3_4x (.in0(1'b0),
986 .in1(1'b0),
987 .in2(1'b0),
988 .out(spare7_nor3_4x_unused));
989cl_u1_nand2_8x spare7_nand2_8x (.in0(1'b1),
990 .in1(1'b1),
991 .out(spare7_nand2_8x_unused));
992cl_u1_buf_16x spare7_buf_16x (.in(1'b1),
993 .out(spare7_buf_16x_unused));
994cl_u1_nor2_16x spare7_nor2_16x (.in0(1'b0),
995 .in1(1'b0),
996 .out(spare7_nor2_16x_unused));
997cl_u1_inv_32x spare7_inv_32x (.in(1'b1),
998 .out(spare7_inv_32x_unused));
999
1000cl_sc1_msff_8x spare8_flop (.l1clk(l1clk),
1001 .siclk(siclk),
1002 .soclk(soclk),
1003 .si(si_8),
1004 .so(so_8),
1005 .d(1'b0),
1006 .q(spare8_flop_unused));
1007assign si_8 = so_7;
1008
1009cl_u1_buf_32x spare8_buf_32x (.in(1'b1),
1010 .out(spare8_buf_32x_unused));
1011cl_u1_nand3_8x spare8_nand3_8x (.in0(1'b1),
1012 .in1(1'b1),
1013 .in2(1'b1),
1014 .out(spare8_nand3_8x_unused));
1015cl_u1_inv_8x spare8_inv_8x (.in(1'b1),
1016 .out(spare8_inv_8x_unused));
1017cl_u1_aoi22_4x spare8_aoi22_4x (.in00(1'b1),
1018 .in01(1'b1),
1019 .in10(1'b1),
1020 .in11(1'b1),
1021 .out(spare8_aoi22_4x_unused));
1022cl_u1_buf_8x spare8_buf_8x (.in(1'b1),
1023 .out(spare8_buf_8x_unused));
1024cl_u1_oai22_4x spare8_oai22_4x (.in00(1'b1),
1025 .in01(1'b1),
1026 .in10(1'b1),
1027 .in11(1'b1),
1028 .out(spare8_oai22_4x_unused));
1029cl_u1_inv_16x spare8_inv_16x (.in(1'b1),
1030 .out(spare8_inv_16x_unused));
1031cl_u1_nand2_16x spare8_nand2_16x (.in0(1'b1),
1032 .in1(1'b1),
1033 .out(spare8_nand2_16x_unused));
1034cl_u1_nor3_4x spare8_nor3_4x (.in0(1'b0),
1035 .in1(1'b0),
1036 .in2(1'b0),
1037 .out(spare8_nor3_4x_unused));
1038cl_u1_nand2_8x spare8_nand2_8x (.in0(1'b1),
1039 .in1(1'b1),
1040 .out(spare8_nand2_8x_unused));
1041cl_u1_buf_16x spare8_buf_16x (.in(1'b1),
1042 .out(spare8_buf_16x_unused));
1043cl_u1_nor2_16x spare8_nor2_16x (.in0(1'b0),
1044 .in1(1'b0),
1045 .out(spare8_nor2_16x_unused));
1046cl_u1_inv_32x spare8_inv_32x (.in(1'b1),
1047 .out(spare8_inv_32x_unused));
1048
1049cl_sc1_msff_8x spare9_flop (.l1clk(l1clk),
1050 .siclk(siclk),
1051 .soclk(soclk),
1052 .si(si_9),
1053 .so(so_9),
1054 .d(1'b0),
1055 .q(spare9_flop_unused));
1056assign si_9 = so_8;
1057
1058cl_u1_buf_32x spare9_buf_32x (.in(1'b1),
1059 .out(spare9_buf_32x_unused));
1060cl_u1_nand3_8x spare9_nand3_8x (.in0(1'b1),
1061 .in1(1'b1),
1062 .in2(1'b1),
1063 .out(spare9_nand3_8x_unused));
1064cl_u1_inv_8x spare9_inv_8x (.in(1'b1),
1065 .out(spare9_inv_8x_unused));
1066cl_u1_aoi22_4x spare9_aoi22_4x (.in00(1'b1),
1067 .in01(1'b1),
1068 .in10(1'b1),
1069 .in11(1'b1),
1070 .out(spare9_aoi22_4x_unused));
1071cl_u1_buf_8x spare9_buf_8x (.in(1'b1),
1072 .out(spare9_buf_8x_unused));
1073cl_u1_oai22_4x spare9_oai22_4x (.in00(1'b1),
1074 .in01(1'b1),
1075 .in10(1'b1),
1076 .in11(1'b1),
1077 .out(spare9_oai22_4x_unused));
1078cl_u1_inv_16x spare9_inv_16x (.in(1'b1),
1079 .out(spare9_inv_16x_unused));
1080cl_u1_nand2_16x spare9_nand2_16x (.in0(1'b1),
1081 .in1(1'b1),
1082 .out(spare9_nand2_16x_unused));
1083cl_u1_nor3_4x spare9_nor3_4x (.in0(1'b0),
1084 .in1(1'b0),
1085 .in2(1'b0),
1086 .out(spare9_nor3_4x_unused));
1087cl_u1_nand2_8x spare9_nand2_8x (.in0(1'b1),
1088 .in1(1'b1),
1089 .out(spare9_nand2_8x_unused));
1090cl_u1_buf_16x spare9_buf_16x (.in(1'b1),
1091 .out(spare9_buf_16x_unused));
1092cl_u1_nor2_16x spare9_nor2_16x (.in0(1'b0),
1093 .in1(1'b0),
1094 .out(spare9_nor2_16x_unused));
1095cl_u1_inv_32x spare9_inv_32x (.in(1'b1),
1096 .out(spare9_inv_32x_unused));
1097assign scan_out = so_9;
1098
1099
1100
1101endmodule
1102
1103
1104
1105//
1106// buff macro
1107//
1108//
1109
1110
1111
1112
1113
1114module ccx_arb_buff_macro__dbuff_16x__stack_none__width_4 (
1115 din,
1116 dout);
1117 input [3:0] din;
1118 output [3:0] dout;
1119
1120
1121
1122
1123
1124
1125buff #(4) d0_0 (
1126.in(din[3:0]),
1127.out(dout[3:0])
1128);
1129
1130
1131
1132
1133
1134
1135
1136
1137endmodule
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147// any PARAMS parms go into naming of macro
1148
1149module ccx_arb_msff_macro__dmsff_16x__stack_10c__width_10 (
1150 din,
1151 clk,
1152 en,
1153 se,
1154 scan_in,
1155 siclk,
1156 soclk,
1157 pce_ov,
1158 stop,
1159 dout,
1160 scan_out);
1161wire l1clk;
1162wire siclk_out;
1163wire soclk_out;
1164wire [8:0] so;
1165
1166 input [9:0] din;
1167
1168
1169 input clk;
1170 input en;
1171 input se;
1172 input scan_in;
1173 input siclk;
1174 input soclk;
1175 input pce_ov;
1176 input stop;
1177
1178
1179
1180 output [9:0] dout;
1181
1182
1183 output scan_out;
1184
1185
1186
1187
1188cl_dp1_l1hdr_8x c0_0 (
1189.l2clk(clk),
1190.pce(en),
1191.aclk(siclk),
1192.bclk(soclk),
1193.l1clk(l1clk),
1194 .se(se),
1195 .pce_ov(pce_ov),
1196 .stop(stop),
1197 .siclk_out(siclk_out),
1198 .soclk_out(soclk_out)
1199);
1200dff #(10) d0_0 (
1201.l1clk(l1clk),
1202.siclk(siclk_out),
1203.soclk(soclk_out),
1204.d(din[9:0]),
1205.si({scan_in,so[8:0]}),
1206.so({so[8:0],scan_out}),
1207.q(dout[9:0])
1208);
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229endmodule
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239//
1240// nand macro for ports = 2,3,4
1241//
1242//
1243
1244
1245
1246
1247
1248module ccx_arb_nand_macro__dnand_1x__ports_2__stack_10c__width_9 (
1249 din0,
1250 din1,
1251 dout);
1252 input [8:0] din0;
1253 input [8:0] din1;
1254 output [8:0] dout;
1255
1256
1257
1258
1259
1260
1261nand2 #(9) d0_0 (
1262.in0(din0[8:0]),
1263.in1(din1[8:0]),
1264.out(dout[8:0])
1265);
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275endmodule
1276
1277
1278
1279
1280
1281//
1282// invert macro
1283//
1284//
1285
1286
1287
1288
1289
1290module ccx_arb_inv_macro__dinv_24x__stack_10c__width_10 (
1291 din,
1292 dout);
1293 input [9:0] din;
1294 output [9:0] dout;
1295
1296
1297
1298
1299
1300
1301inv #(10) d0_0 (
1302.in(din[9:0]),
1303.out(dout[9:0])
1304);
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314endmodule
1315
1316
1317
1318
1319
1320//
1321// buff macro
1322//
1323//
1324
1325
1326
1327
1328
1329module ccx_arb_buff_macro__dbuff_32x__minbuff_1__stack_none__width_19 (
1330 din,
1331 dout);
1332 input [18:0] din;
1333 output [18:0] dout;
1334
1335
1336
1337
1338
1339
1340buff #(19) d0_0 (
1341.in(din[18:0]),
1342.out(dout[18:0])
1343);
1344
1345
1346
1347
1348
1349
1350
1351
1352endmodule
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362// any PARAMS parms go into naming of macro
1363
1364module ccx_arb_msff_macro__stack_10c__width_10 (
1365 din,
1366 clk,
1367 en,
1368 se,
1369 scan_in,
1370 siclk,
1371 soclk,
1372 pce_ov,
1373 stop,
1374 dout,
1375 scan_out);
1376wire l1clk;
1377wire siclk_out;
1378wire soclk_out;
1379wire [8:0] so;
1380
1381 input [9:0] din;
1382
1383
1384 input clk;
1385 input en;
1386 input se;
1387 input scan_in;
1388 input siclk;
1389 input soclk;
1390 input pce_ov;
1391 input stop;
1392
1393
1394
1395 output [9:0] dout;
1396
1397
1398 output scan_out;
1399
1400
1401
1402
1403cl_dp1_l1hdr_8x c0_0 (
1404.l2clk(clk),
1405.pce(en),
1406.aclk(siclk),
1407.bclk(soclk),
1408.l1clk(l1clk),
1409 .se(se),
1410 .pce_ov(pce_ov),
1411 .stop(stop),
1412 .siclk_out(siclk_out),
1413 .soclk_out(soclk_out)
1414);
1415dff #(10) d0_0 (
1416.l1clk(l1clk),
1417.siclk(siclk_out),
1418.soclk(soclk_out),
1419.d(din[9:0]),
1420.si({scan_in,so[8:0]}),
1421.so({so[8:0],scan_out}),
1422.q(dout[9:0])
1423);
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444endmodule
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1455// also for pass-gate with decoder
1456
1457
1458
1459
1460
1461// any PARAMS parms go into naming of macro
1462
1463module ccx_arb_mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10 (
1464 din0,
1465 din1,
1466 sel0,
1467 dout);
1468wire psel0;
1469wire psel1;
1470
1471 input [9:0] din0;
1472 input [9:0] din1;
1473 input sel0;
1474 output [9:0] dout;
1475
1476
1477
1478
1479
1480cl_dp1_penc2_8x c0_0 (
1481 .sel0(sel0),
1482 .psel0(psel0),
1483 .psel1(psel1)
1484);
1485
1486mux2s #(10) d0_0 (
1487 .sel0(psel0),
1488 .sel1(psel1),
1489 .in0(din0[9:0]),
1490 .in1(din1[9:0]),
1491.dout(dout[9:0])
1492);
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506endmodule
1507
1508
1509// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1510// also for pass-gate with decoder
1511
1512
1513
1514
1515
1516// any PARAMS parms go into naming of macro
1517
1518module ccx_arb_mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10 (
1519 din0,
1520 din1,
1521 din2,
1522 din3,
1523 din4,
1524 din5,
1525 din6,
1526 din7,
1527 sel,
1528 dout);
1529wire psel0;
1530wire psel1;
1531wire psel2;
1532wire psel3;
1533wire psel4;
1534wire psel5;
1535wire psel6;
1536wire psel7;
1537
1538 input [9:0] din0;
1539 input [9:0] din1;
1540 input [9:0] din2;
1541 input [9:0] din3;
1542 input [9:0] din4;
1543 input [9:0] din5;
1544 input [9:0] din6;
1545 input [9:0] din7;
1546 input [2:0] sel;
1547 output [9:0] dout;
1548
1549
1550
1551
1552
1553cl_dp1_pdec8_8x c0_0 (
1554 .test(1'b1),
1555 .sel0(sel[0]),
1556 .sel1(sel[1]),
1557 .sel2(sel[2]),
1558 .psel0(psel0),
1559 .psel1(psel1),
1560 .psel2(psel2),
1561 .psel3(psel3),
1562 .psel4(psel4),
1563 .psel5(psel5),
1564 .psel6(psel6),
1565 .psel7(psel7)
1566);
1567
1568mux8s #(10) d0_0 (
1569 .sel0(psel0),
1570 .sel1(psel1),
1571 .sel2(psel2),
1572 .sel3(psel3),
1573 .sel4(psel4),
1574 .sel5(psel5),
1575 .sel6(psel6),
1576 .sel7(psel7),
1577 .in0(din0[9:0]),
1578 .in1(din1[9:0]),
1579 .in2(din2[9:0]),
1580 .in3(din3[9:0]),
1581 .in4(din4[9:0]),
1582 .in5(din5[9:0]),
1583 .in6(din6[9:0]),
1584 .in7(din7[9:0]),
1585.dout(dout[9:0])
1586);
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600endmodule
1601
1602
1603// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1604// also for pass-gate with decoder
1605
1606
1607
1608
1609
1610// any PARAMS parms go into naming of macro
1611
1612module ccx_arb_mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10 (
1613 din0,
1614 din1,
1615 din2,
1616 din3,
1617 sel,
1618 dout);
1619wire psel0;
1620wire psel1;
1621wire psel2;
1622wire psel3;
1623
1624 input [9:0] din0;
1625 input [9:0] din1;
1626 input [9:0] din2;
1627 input [9:0] din3;
1628 input [1:0] sel;
1629 output [9:0] dout;
1630
1631
1632
1633
1634
1635cl_dp1_pdec4_8x c0_0 (
1636 .test(1'b1),
1637 .sel0(sel[0]),
1638 .sel1(sel[1]),
1639 .psel0(psel0),
1640 .psel1(psel1),
1641 .psel2(psel2),
1642 .psel3(psel3)
1643);
1644
1645mux4s #(10) d0_0 (
1646 .sel0(psel0),
1647 .sel1(psel1),
1648 .sel2(psel2),
1649 .sel3(psel3),
1650 .in0(din0[9:0]),
1651 .in1(din1[9:0]),
1652 .in2(din2[9:0]),
1653 .in3(din3[9:0]),
1654.dout(dout[9:0])
1655);
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669endmodule
1670
1671
1672// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1673// also for pass-gate with decoder
1674
1675
1676
1677
1678
1679// any PARAMS parms go into naming of macro
1680
1681module ccx_arb_mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10 (
1682 din0,
1683 sel0,
1684 din1,
1685 sel1,
1686 dout);
1687wire buffout0;
1688wire buffout1;
1689
1690 input [9:0] din0;
1691 input sel0;
1692 input [9:0] din1;
1693 input sel1;
1694 output [9:0] dout;
1695
1696
1697
1698
1699
1700cl_dp1_muxbuff2_8x c0_0 (
1701 .in0(sel0),
1702 .in1(sel1),
1703 .out0(buffout0),
1704 .out1(buffout1)
1705);
1706mux2s #(10) d0_0 (
1707 .sel0(buffout0),
1708 .sel1(buffout1),
1709 .in0(din0[9:0]),
1710 .in1(din1[9:0]),
1711.dout(dout[9:0])
1712);
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726endmodule
1727
1728
1729//
1730// buff macro
1731//
1732//
1733
1734
1735
1736
1737
1738module ccx_arb_buff_macro__dbuff_8x__stack_10c__width_1 (
1739 din,
1740 dout);
1741 input [0:0] din;
1742 output [0:0] dout;
1743
1744
1745
1746
1747
1748
1749buff #(1) d0_0 (
1750.in(din[0:0]),
1751.out(dout[0:0])
1752);
1753
1754
1755
1756
1757
1758
1759
1760
1761endmodule
1762
1763
1764
1765
1766
1767//
1768// nand macro for ports = 2,3,4
1769//
1770//
1771
1772
1773
1774
1775
1776module ccx_arb_nand_macro__dnand_4x__ports_3__stack_10c__width_10 (
1777 din0,
1778 din1,
1779 din2,
1780 dout);
1781 input [9:0] din0;
1782 input [9:0] din1;
1783 input [9:0] din2;
1784 output [9:0] dout;
1785
1786
1787
1788
1789
1790
1791nand3 #(10) d0_0 (
1792.in0(din0[9:0]),
1793.in1(din1[9:0]),
1794.in2(din2[9:0]),
1795.out(dout[9:0])
1796);
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806endmodule
1807
1808
1809
1810
1811
1812//
1813// nand macro for ports = 2,3,4
1814//
1815//
1816
1817
1818
1819
1820
1821module ccx_arb_nand_macro__dnand_4x__ports_2__stack_10c__width_10 (
1822 din0,
1823 din1,
1824 dout);
1825 input [9:0] din0;
1826 input [9:0] din1;
1827 output [9:0] dout;
1828
1829
1830
1831
1832
1833
1834nand2 #(10) d0_0 (
1835.in0(din0[9:0]),
1836.in1(din1[9:0]),
1837.out(dout[9:0])
1838);
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848endmodule
1849
1850
1851
1852
1853
1854//
1855// nand macro for ports = 2,3,4
1856//
1857//
1858
1859
1860
1861
1862
1863module ccx_arb_nand_macro__dnand_12x__ports_2__stack_10c__width_10 (
1864 din0,
1865 din1,
1866 dout);
1867 input [9:0] din0;
1868 input [9:0] din1;
1869 output [9:0] dout;
1870
1871
1872
1873
1874
1875
1876nand2 #(10) d0_0 (
1877.in0(din0[9:0]),
1878.in1(din1[9:0]),
1879.out(dout[9:0])
1880);
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890endmodule
1891
1892
1893
1894
1895
1896//
1897// invert macro
1898//
1899//
1900
1901
1902
1903
1904
1905module ccx_arb_inv_macro__dinv_2x__stack_10c__width_9 (
1906 din,
1907 dout);
1908 input [8:0] din;
1909 output [8:0] dout;
1910
1911
1912
1913
1914
1915
1916inv #(9) d0_0 (
1917.in(din[8:0]),
1918.out(dout[8:0])
1919);
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929endmodule
1930
1931
1932
1933
1934
1935// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1936// also for pass-gate with decoder
1937
1938
1939
1940
1941
1942// any PARAMS parms go into naming of macro
1943
1944module ccx_arb_mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9 (
1945 din0,
1946 din1,
1947 sel0,
1948 dout);
1949wire psel0;
1950wire psel1;
1951
1952 input [8:0] din0;
1953 input [8:0] din1;
1954 input sel0;
1955 output [8:0] dout;
1956
1957
1958
1959
1960
1961cl_dp1_penc2_8x c0_0 (
1962 .sel0(sel0),
1963 .psel0(psel0),
1964 .psel1(psel1)
1965);
1966
1967mux2s #(9) d0_0 (
1968 .sel0(psel0),
1969 .sel1(psel1),
1970 .in0(din0[8:0]),
1971 .in1(din1[8:0]),
1972.dout(dout[8:0])
1973);
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987endmodule
1988
1989
1990//
1991// nand macro for ports = 2,3,4
1992//
1993//
1994
1995
1996
1997
1998
1999module ccx_arb_nand_macro__dnand_4x__ports_3__stack_10c__width_1 (
2000 din0,
2001 din1,
2002 din2,
2003 dout);
2004 input [0:0] din0;
2005 input [0:0] din1;
2006 input [0:0] din2;
2007 output [0:0] dout;
2008
2009
2010
2011
2012
2013
2014nand3 #(1) d0_0 (
2015.in0(din0[0:0]),
2016.in1(din1[0:0]),
2017.in2(din2[0:0]),
2018.out(dout[0:0])
2019);
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029endmodule
2030
2031
2032
2033
2034
2035//
2036// nand macro for ports = 2,3,4
2037//
2038//
2039
2040
2041
2042
2043
2044module ccx_arb_nand_macro__dnand_12x__ports_2__stack_10c__width_1 (
2045 din0,
2046 din1,
2047 dout);
2048 input [0:0] din0;
2049 input [0:0] din1;
2050 output [0:0] dout;
2051
2052
2053
2054
2055
2056
2057nand2 #(1) d0_0 (
2058.in0(din0[0:0]),
2059.in1(din1[0:0]),
2060.out(dout[0:0])
2061);
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071endmodule
2072
2073
2074
2075
2076
2077//
2078// invert macro
2079//
2080//
2081
2082
2083
2084
2085
2086module ccx_arb_inv_macro__dinv_4x__stack_10c__width_1 (
2087 din,
2088 dout);
2089 input [0:0] din;
2090 output [0:0] dout;
2091
2092
2093
2094
2095
2096
2097inv #(1) d0_0 (
2098.in(din[0:0]),
2099.out(dout[0:0])
2100);
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110endmodule
2111
2112
2113
2114
2115
2116//
2117// invert macro
2118//
2119//
2120
2121
2122
2123
2124
2125module ccx_arb_inv_macro__dinv_12x__stack_10c__width_9 (
2126 din,
2127 dout);
2128 input [8:0] din;
2129 output [8:0] dout;
2130
2131
2132
2133
2134
2135
2136inv #(9) d0_0 (
2137.in(din[8:0]),
2138.out(dout[8:0])
2139);
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149endmodule
2150
2151
2152
2153
2154
2155//
2156// and macro for ports = 2,3,4
2157//
2158//
2159
2160
2161
2162
2163
2164module ccx_arb_and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 (
2165 din0,
2166 din1,
2167 din2,
2168 din3,
2169 dout);
2170 input [1:0] din0;
2171 input [1:0] din1;
2172 input [1:0] din2;
2173 input [1:0] din3;
2174 output [1:0] dout;
2175
2176
2177
2178
2179
2180
2181and4 #(2) d0_0 (
2182.in0(din0[1:0]),
2183.in1(din1[1:0]),
2184.in2(din2[1:0]),
2185.in3(din3[1:0]),
2186.out(dout[1:0])
2187);
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197endmodule
2198
2199
2200
2201
2202
2203//
2204// and macro for ports = 2,3,4
2205//
2206//
2207
2208
2209
2210
2211
2212module ccx_arb_and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 (
2213 din0,
2214 din1,
2215 din2,
2216 dout);
2217 input [3:0] din0;
2218 input [3:0] din1;
2219 input [3:0] din2;
2220 output [3:0] dout;
2221
2222
2223
2224
2225
2226
2227and3 #(4) d0_0 (
2228.in0(din0[3:0]),
2229.in1(din1[3:0]),
2230.in2(din2[3:0]),
2231.out(dout[3:0])
2232);
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242endmodule
2243
2244
2245
2246
2247
2248//
2249// nor macro for ports = 2,3
2250//
2251//
2252
2253
2254
2255
2256
2257module ccx_arb_nor_macro__dnor_8x__ports_2__stack_10c__width_3 (
2258 din0,
2259 din1,
2260 dout);
2261 input [2:0] din0;
2262 input [2:0] din1;
2263 output [2:0] dout;
2264
2265
2266
2267
2268
2269
2270nor2 #(3) d0_0 (
2271.in0(din0[2:0]),
2272.in1(din1[2:0]),
2273.out(dout[2:0])
2274);
2275
2276
2277
2278
2279
2280
2281
2282endmodule
2283
2284
2285
2286
2287
2288//
2289// nand macro for ports = 2,3,4
2290//
2291//
2292
2293
2294
2295
2296
2297module ccx_arb_nand_macro__dnand_2x__ports_2__stack_10c__width_5 (
2298 din0,
2299 din1,
2300 dout);
2301 input [4:0] din0;
2302 input [4:0] din1;
2303 output [4:0] dout;
2304
2305
2306
2307
2308
2309
2310nand2 #(5) d0_0 (
2311.in0(din0[4:0]),
2312.in1(din1[4:0]),
2313.out(dout[4:0])
2314);
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324endmodule
2325
2326
2327
2328
2329
2330//
2331// nand macro for ports = 2,3,4
2332//
2333//
2334
2335
2336
2337
2338
2339module ccx_arb_nand_macro__dnand_8x__ports_2__stack_10c__width_1 (
2340 din0,
2341 din1,
2342 dout);
2343 input [0:0] din0;
2344 input [0:0] din1;
2345 output [0:0] dout;
2346
2347
2348
2349
2350
2351
2352nand2 #(1) d0_0 (
2353.in0(din0[0:0]),
2354.in1(din1[0:0]),
2355.out(dout[0:0])
2356);
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366endmodule
2367
2368
2369
2370
2371
2372//
2373// invert macro
2374//
2375//
2376
2377
2378
2379
2380
2381module ccx_arb_inv_macro__dinv_4x__stack_10c__width_5 (
2382 din,
2383 dout);
2384 input [4:0] din;
2385 output [4:0] dout;
2386
2387
2388
2389
2390
2391
2392inv #(5) d0_0 (
2393.in(din[4:0]),
2394.out(dout[4:0])
2395);
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405endmodule
2406
2407
2408
2409
2410
2411//
2412// nand macro for ports = 2,3,4
2413//
2414//
2415
2416
2417
2418
2419
2420module ccx_arb_nand_macro__dnand_8x__ports_3__stack_10c__width_8 (
2421 din0,
2422 din1,
2423 din2,
2424 dout);
2425 input [7:0] din0;
2426 input [7:0] din1;
2427 input [7:0] din2;
2428 output [7:0] dout;
2429
2430
2431
2432
2433
2434
2435nand3 #(8) d0_0 (
2436.in0(din0[7:0]),
2437.in1(din1[7:0]),
2438.in2(din2[7:0]),
2439.out(dout[7:0])
2440);
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450endmodule
2451
2452
2453
2454
2455
2456//
2457// nand macro for ports = 2,3,4
2458//
2459//
2460
2461
2462
2463
2464
2465module ccx_arb_nand_macro__dnand_32x__ports_2__stack_10c__width_9 (
2466 din0,
2467 din1,
2468 dout);
2469 input [8:0] din0;
2470 input [8:0] din1;
2471 output [8:0] dout;
2472
2473
2474
2475
2476
2477
2478nand2 #(9) d0_0 (
2479.in0(din0[8:0]),
2480.in1(din1[8:0]),
2481.out(dout[8:0])
2482);
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492endmodule
2493
2494
2495
2496
2497
2498//
2499// buff macro
2500//
2501//
2502
2503
2504
2505
2506
2507module ccx_arb_buff_macro__dbuff_48x__stack_10c__width_9 (
2508 din,
2509 dout);
2510 input [8:0] din;
2511 output [8:0] dout;
2512
2513
2514
2515
2516
2517
2518buff #(9) d0_0 (
2519.in(din[8:0]),
2520.out(dout[8:0])
2521);
2522
2523
2524
2525
2526
2527
2528
2529
2530endmodule
2531
2532
2533
2534
2535
2536//
2537// buff macro
2538//
2539//
2540
2541
2542
2543
2544
2545module ccx_arb_buff_macro__dbuff_32x__stack_10c__width_9 (
2546 din,
2547 dout);
2548 input [8:0] din;
2549 output [8:0] dout;
2550
2551
2552
2553
2554
2555
2556buff #(9) d0_0 (
2557.in(din[8:0]),
2558.out(dout[8:0])
2559);
2560
2561
2562
2563
2564
2565
2566
2567
2568endmodule
2569
2570
2571
2572
2573
2574//
2575// buff macro
2576//
2577//
2578
2579
2580
2581
2582
2583module ccx_arb_buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9 (
2584 din,
2585 dout);
2586 input [8:0] din;
2587 output [8:0] dout;
2588
2589
2590
2591
2592
2593
2594buff #(9) d0_0 (
2595.in(din[8:0]),
2596.out(dout[8:0])
2597);
2598
2599
2600
2601
2602
2603
2604
2605
2606endmodule
2607
2608
2609
2610
2611
2612//
2613// invert macro
2614//
2615//
2616
2617
2618
2619
2620
2621module ccx_arb_inv_macro__dinv_8x__stack_10c__width_9 (
2622 din,
2623 dout);
2624 input [8:0] din;
2625 output [8:0] dout;
2626
2627
2628
2629
2630
2631
2632inv #(9) d0_0 (
2633.in(din[8:0]),
2634.out(dout[8:0])
2635);
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645endmodule
2646
2647
2648
2649
2650
2651//
2652// nand macro for ports = 2,3,4
2653//
2654//
2655
2656
2657
2658
2659
2660module ccx_arb_nand_macro__dnand_1x__ports_3__stack_10c__width_9 (
2661 din0,
2662 din1,
2663 din2,
2664 dout);
2665 input [8:0] din0;
2666 input [8:0] din1;
2667 input [8:0] din2;
2668 output [8:0] dout;
2669
2670
2671
2672
2673
2674
2675nand3 #(9) d0_0 (
2676.in0(din0[8:0]),
2677.in1(din1[8:0]),
2678.in2(din2[8:0]),
2679.out(dout[8:0])
2680);
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690endmodule
2691
2692
2693
2694
2695
2696//
2697// nand macro for ports = 2,3,4
2698//
2699//
2700
2701
2702
2703
2704
2705module ccx_arb_nand_macro__dnand_1x__ports_2__stack_10c__width_10 (
2706 din0,
2707 din1,
2708 dout);
2709 input [9:0] din0;
2710 input [9:0] din1;
2711 output [9:0] dout;
2712
2713
2714
2715
2716
2717
2718nand2 #(10) d0_0 (
2719.in0(din0[9:0]),
2720.in1(din1[9:0]),
2721.out(dout[9:0])
2722);
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732endmodule
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742// any PARAMS parms go into naming of macro
2743
2744module ccx_arb_msff_macro__dmsff_8x__stack_10c__stack_10c__width_10 (
2745 din,
2746 clk,
2747 en,
2748 se,
2749 scan_in,
2750 siclk,
2751 soclk,
2752 pce_ov,
2753 stop,
2754 dout,
2755 scan_out);
2756wire l1clk;
2757wire siclk_out;
2758wire soclk_out;
2759wire [8:0] so;
2760
2761 input [9:0] din;
2762
2763
2764 input clk;
2765 input en;
2766 input se;
2767 input scan_in;
2768 input siclk;
2769 input soclk;
2770 input pce_ov;
2771 input stop;
2772
2773
2774
2775 output [9:0] dout;
2776
2777
2778 output scan_out;
2779
2780
2781
2782
2783cl_dp1_l1hdr_8x c0_0 (
2784.l2clk(clk),
2785.pce(en),
2786.aclk(siclk),
2787.bclk(soclk),
2788.l1clk(l1clk),
2789 .se(se),
2790 .pce_ov(pce_ov),
2791 .stop(stop),
2792 .siclk_out(siclk_out),
2793 .soclk_out(soclk_out)
2794);
2795dff #(10) d0_0 (
2796.l1clk(l1clk),
2797.siclk(siclk_out),
2798.soclk(soclk_out),
2799.d(din[9:0]),
2800.si({scan_in,so[8:0]}),
2801.so({so[8:0],scan_out}),
2802.q(dout[9:0])
2803);
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824endmodule
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834//
2835// nand macro for ports = 2,3,4
2836//
2837//
2838
2839
2840
2841
2842
2843module ccx_arb_nand_macro__dnand_2x__ports_2__stack_10c__width_9 (
2844 din0,
2845 din1,
2846 dout);
2847 input [8:0] din0;
2848 input [8:0] din1;
2849 output [8:0] dout;
2850
2851
2852
2853
2854
2855
2856nand2 #(9) d0_0 (
2857.in0(din0[8:0]),
2858.in1(din1[8:0]),
2859.out(dout[8:0])
2860);
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870endmodule
2871
2872
2873
2874
2875
2876//
2877// nand macro for ports = 2,3,4
2878//
2879//
2880
2881
2882
2883
2884
2885module ccx_arb_nand_macro__dnand_4x__ports_3__stack_10c__width_9 (
2886 din0,
2887 din1,
2888 din2,
2889 dout);
2890 input [8:0] din0;
2891 input [8:0] din1;
2892 input [8:0] din2;
2893 output [8:0] dout;
2894
2895
2896
2897
2898
2899
2900nand3 #(9) d0_0 (
2901.in0(din0[8:0]),
2902.in1(din1[8:0]),
2903.in2(din2[8:0]),
2904.out(dout[8:0])
2905);
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915endmodule
2916
2917
2918
2919
2920
2921//
2922// nand macro for ports = 2,3,4
2923//
2924//
2925
2926
2927
2928
2929
2930module ccx_arb_nand_macro__dnand_8x__ports_2__stack_10c__width_9 (
2931 din0,
2932 din1,
2933 dout);
2934 input [8:0] din0;
2935 input [8:0] din1;
2936 output [8:0] dout;
2937
2938
2939
2940
2941
2942
2943nand2 #(9) d0_0 (
2944.in0(din0[8:0]),
2945.in1(din1[8:0]),
2946.out(dout[8:0])
2947);
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957endmodule
2958
2959
2960
2961
2962
2963//
2964// nor macro for ports = 2,3
2965//
2966//
2967
2968
2969
2970
2971
2972module ccx_arb_nor_macro__dnor_4x__ports_3__stack_10c__width_6 (
2973 din0,
2974 din1,
2975 din2,
2976 dout);
2977 input [5:0] din0;
2978 input [5:0] din1;
2979 input [5:0] din2;
2980 output [5:0] dout;
2981
2982
2983
2984
2985
2986
2987nor3 #(6) d0_0 (
2988.in0(din0[5:0]),
2989.in1(din1[5:0]),
2990.in2(din2[5:0]),
2991.out(dout[5:0])
2992);
2993
2994
2995
2996
2997
2998
2999
3000endmodule
3001
3002
3003
3004
3005
3006//
3007// nand macro for ports = 2,3,4
3008//
3009//
3010
3011
3012
3013
3014
3015module ccx_arb_nand_macro__dnand_8x__ports_3__stack_10c__width_2 (
3016 din0,
3017 din1,
3018 din2,
3019 dout);
3020 input [1:0] din0;
3021 input [1:0] din1;
3022 input [1:0] din2;
3023 output [1:0] dout;
3024
3025
3026
3027
3028
3029
3030nand3 #(2) d0_0 (
3031.in0(din0[1:0]),
3032.in1(din1[1:0]),
3033.in2(din2[1:0]),
3034.out(dout[1:0])
3035);
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045endmodule
3046
3047
3048
3049
3050
3051//
3052// invert macro
3053//
3054//
3055
3056
3057
3058
3059
3060module ccx_arb_inv_macro__dinv_32x__stack_10c__width_1 (
3061 din,
3062 dout);
3063 input [0:0] din;
3064 output [0:0] dout;
3065
3066
3067
3068
3069
3070
3071inv #(1) d0_0 (
3072.in(din[0:0]),
3073.out(dout[0:0])
3074);
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084endmodule
3085
3086
3087
3088
3089
3090//
3091// buff macro
3092//
3093//
3094
3095
3096
3097
3098
3099module ccx_arb_buff_macro__dbuff_32x__stack_none__width_1 (
3100 din,
3101 dout);
3102 input [0:0] din;
3103 output [0:0] dout;
3104
3105
3106
3107
3108
3109
3110buff #(1) d0_0 (
3111.in(din[0:0]),
3112.out(dout[0:0])
3113);
3114
3115
3116
3117
3118
3119
3120
3121
3122endmodule
3123
3124
3125
3126
3127
3128//
3129// nand macro for ports = 2,3,4
3130//
3131//
3132
3133
3134
3135
3136
3137module ccx_arb_nand_macro__dnand_1x__ports_3__stack_10c__width_3 (
3138 din0,
3139 din1,
3140 din2,
3141 dout);
3142 input [2:0] din0;
3143 input [2:0] din1;
3144 input [2:0] din2;
3145 output [2:0] dout;
3146
3147
3148
3149
3150
3151
3152nand3 #(3) d0_0 (
3153.in0(din0[2:0]),
3154.in1(din1[2:0]),
3155.in2(din2[2:0]),
3156.out(dout[2:0])
3157);
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167endmodule
3168
3169
3170
3171
3172
3173//
3174// nor macro for ports = 2,3
3175//
3176//
3177
3178
3179
3180
3181
3182module ccx_arb_nor_macro__dnor_4x__ports_3__stack_10c__width_1 (
3183 din0,
3184 din1,
3185 din2,
3186 dout);
3187 input [0:0] din0;
3188 input [0:0] din1;
3189 input [0:0] din2;
3190 output [0:0] dout;
3191
3192
3193
3194
3195
3196
3197nor3 #(1) d0_0 (
3198.in0(din0[0:0]),
3199.in1(din1[0:0]),
3200.in2(din2[0:0]),
3201.out(dout[0:0])
3202);
3203
3204
3205
3206
3207
3208
3209
3210endmodule
3211
3212
3213
3214
3215
3216//
3217// buff macro
3218//
3219//
3220
3221
3222
3223
3224
3225module ccx_arb_buff_macro__dbuff_8x__stack_none__width_1 (
3226 din,
3227 dout);
3228 input [0:0] din;
3229 output [0:0] dout;
3230
3231
3232
3233
3234
3235
3236buff #(1) d0_0 (
3237.in(din[0:0]),
3238.out(dout[0:0])
3239);
3240
3241
3242
3243
3244
3245
3246
3247
3248endmodule
3249
3250
3251
3252`endif // `ifndef FPGA
3253
3254`ifdef FPGA
3255
3256/* Source file "ccx_arb_vj.v", line 2 */
3257// No timescale specified
3258module ccx_arb(arb_grant_a, arb_q0_holdbar_a, arb_qsel0_a, arb_qsel1_a,
3259 arb_shift_a, arb_src0_grant_a, arb_src1_grant_a, arb_src2_grant_a,
3260 arb_src3_grant_a, arb_src4_grant_a, arb_src5_grant_a, arb_src6_grant_a,
3261 arb_src7_grant_a, arb_src8_grant_a, ccx_dest_atom_a,
3262 ccx_dest_data_rdy_a, src0_arb_atom_q, src0_arb_req_q, src1_arb_atom_q,
3263 src1_arb_req_q, src2_arb_atom_q, src2_arb_req_q, src3_arb_atom_q,
3264 src3_arb_req_q, src4_arb_atom_q, src4_arb_req_q, src5_arb_atom_q,
3265 src5_arb_req_q, src6_arb_atom_q, src6_arb_req_q, src7_arb_atom_q,
3266 src7_arb_req_q, src8_arb_atom_q, src8_arb_req_q, stall_q_d1,
3267 tcu_scan_en, l2clk, scan_in, tcu_pce_ov, ccx_aclk, ccx_bclk, scan_out);
3268
3269 output [8:0] arb_grant_a;
3270 output [8:0] arb_q0_holdbar_a;
3271 output [8:0] arb_qsel0_a;
3272 output [8:0] arb_qsel1_a;
3273 output [8:0] arb_shift_a;
3274 output arb_src0_grant_a;
3275 output arb_src1_grant_a;
3276 output arb_src2_grant_a;
3277 output arb_src3_grant_a;
3278 output arb_src4_grant_a;
3279 output arb_src5_grant_a;
3280 output arb_src6_grant_a;
3281 output arb_src7_grant_a;
3282 output arb_src8_grant_a;
3283 output ccx_dest_atom_a;
3284 output ccx_dest_data_rdy_a;
3285 input src0_arb_atom_q;
3286 input src0_arb_req_q;
3287 input src1_arb_atom_q;
3288 input src1_arb_req_q;
3289 input src2_arb_atom_q;
3290 input src2_arb_req_q;
3291 input src3_arb_atom_q;
3292 input src3_arb_req_q;
3293 input src4_arb_atom_q;
3294 input src4_arb_req_q;
3295 input src5_arb_atom_q;
3296 input src5_arb_req_q;
3297 input src6_arb_atom_q;
3298 input src6_arb_req_q;
3299 input src7_arb_atom_q;
3300 input src7_arb_req_q;
3301 input src8_arb_atom_q;
3302 input src8_arb_req_q;
3303 input stall_q_d1;
3304 input tcu_scan_en;
3305 input l2clk;
3306 input scan_in;
3307 input tcu_pce_ov;
3308 input ccx_aclk;
3309 input ccx_bclk;
3310 output scan_out;
3311
3312 wire direction;
3313 wire [17:0] write_fifo_a;
3314 wire [2:0] fifo_rptr_a;
3315 wire [1:0] fifo_read_select;
3316 wire input_req_sel_a;
3317 wire input_req_sel_a_;
3318 wire fifo_req_sel_a;
3319 wire [8:0] qfullbar_a;
3320 wire [8:0] atom_x;
3321 wire [8:0] grant_a;
3322 wire req_pkt_empty_a;
3323 wire arc_scanin;
3324 wire arc_scanout;
3325 wire tcu_pce_ov_out;
3326 wire tcu_scan_en_out;
3327 wire ccx_aclk_out;
3328 wire ccx_bclk_out;
3329 wire ard_scanin;
3330 wire ard_scanout;
3331 wire [8:0] atom_a;
3332 wire [8:0] req_a;
3333
3334 assign arc_scanin = scan_in;
3335 assign ard_scanin = arc_scanout;
3336 assign scan_out = ard_scanout;
3337
3338 ccx_arc_ctl arc(
3339 .direction (direction),
3340 .write_fifo_a (write_fifo_a[17:0]),
3341 .fifo_rptr_a (fifo_rptr_a[2:0]),
3342 .fifo_read_select (fifo_read_select[1:0]),
3343 .input_req_sel_a (input_req_sel_a),
3344 .input_req_sel_a_ (input_req_sel_a_),
3345 .fifo_req_sel_a (fifo_req_sel_a),
3346 .qfullbar_a (qfullbar_a[8:0]),
3347 .atom_x (atom_x[8:0]),
3348 .arb_qsel0_a (arb_qsel0_a[8:0]),
3349 .arb_qsel1_a (arb_qsel1_a[8:0]),
3350 .arb_shift_a (arb_shift_a[8:0]),
3351 .arb_q0_holdbar_a (arb_q0_holdbar_a[8:0]),
3352 .grant_a (grant_a[8:0]),
3353 .req_pkt_empty_a (req_pkt_empty_a),
3354 .scan_in (arc_scanin),
3355 .scan_out (arc_scanout),
3356 .l2clk (l2clk),
3357 .tcu_pce_ov (tcu_pce_ov_out),
3358 .tcu_scan_en (tcu_scan_en_out),
3359 .ccx_aclk (ccx_aclk_out),
3360 .ccx_bclk (ccx_bclk_out),
3361 .atom_a (atom_a[8:0]),
3362 .req_a (req_a[8:0]));
3363 ccx_ard_dp ard(
3364 .arb_grant_a (arb_grant_a[8:0]),
3365 .arb_src8_grant_a (arb_src8_grant_a),
3366 .arb_src7_grant_a (arb_src7_grant_a),
3367 .arb_src6_grant_a (arb_src6_grant_a),
3368 .arb_src5_grant_a (arb_src5_grant_a),
3369 .arb_src4_grant_a (arb_src4_grant_a),
3370 .arb_src3_grant_a (arb_src3_grant_a),
3371 .arb_src2_grant_a (arb_src2_grant_a),
3372 .arb_src1_grant_a (arb_src1_grant_a),
3373 .arb_src0_grant_a (arb_src0_grant_a),
3374 .ccx_dest_data_rdy_a (ccx_dest_data_rdy_a),
3375 .ccx_dest_atom_a (ccx_dest_atom_a),
3376 .req_pkt_empty_a (req_pkt_empty_a),
3377 .grant_a (grant_a[8:0]),
3378 .src8_arb_atom_q (src8_arb_atom_q),
3379 .src7_arb_atom_q (src7_arb_atom_q),
3380 .src6_arb_atom_q (src6_arb_atom_q),
3381 .src5_arb_atom_q (src5_arb_atom_q),
3382 .src4_arb_atom_q (src4_arb_atom_q),
3383 .src3_arb_atom_q (src3_arb_atom_q),
3384 .src2_arb_atom_q (src2_arb_atom_q),
3385 .src1_arb_atom_q (src1_arb_atom_q),
3386 .src0_arb_atom_q (src0_arb_atom_q),
3387 .src8_arb_req_q (src8_arb_req_q),
3388 .src7_arb_req_q (src7_arb_req_q),
3389 .src6_arb_req_q (src6_arb_req_q),
3390 .src5_arb_req_q (src5_arb_req_q),
3391 .src4_arb_req_q (src4_arb_req_q),
3392 .src3_arb_req_q (src3_arb_req_q),
3393 .src2_arb_req_q (src2_arb_req_q),
3394 .src1_arb_req_q (src1_arb_req_q),
3395 .src0_arb_req_q (src0_arb_req_q),
3396 .qfullbar_a (qfullbar_a[8:0]),
3397 .direction (direction),
3398 .fifo_req_sel_a (fifo_req_sel_a),
3399 .input_req_sel_a (input_req_sel_a),
3400 .input_req_sel_a_ (input_req_sel_a_),
3401 .write_fifo_a (write_fifo_a[17:0]),
3402 .fifo_rptr_a (fifo_rptr_a[2:0]),
3403 .fifo_read_select (fifo_read_select[1:0]),
3404 .atom_x (atom_x[8:0]),
3405 .stall_q_d1 (stall_q_d1),
3406 .scan_in (ard_scanin),
3407 .scan_out (ard_scanout),
3408 .l2clk (l2clk),
3409 .tcu_pce_ov (tcu_pce_ov),
3410 .req_a (req_a[8:0]),
3411 .atom_a (atom_a[8:0]),
3412 .tcu_scan_en (tcu_scan_en),
3413 .ccx_aclk (ccx_aclk),
3414 .ccx_bclk (ccx_bclk),
3415 .tcu_pce_ov_out (tcu_pce_ov_out),
3416 .tcu_scan_en_out (tcu_scan_en_out),
3417 .ccx_aclk_out (ccx_aclk_out),
3418 .ccx_bclk_out (ccx_bclk_out));
3419endmodule
3420
3421`endif // `ifdef FPGA
3422