Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / ccx / rtl / ccx_ard_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: ccx_ard_dp.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35`ifndef FPGA
36module ccx_ard_dp (
37 arb_grant_a,
38 arb_src8_grant_a,
39 arb_src7_grant_a,
40 arb_src6_grant_a,
41 arb_src5_grant_a,
42 arb_src4_grant_a,
43 arb_src3_grant_a,
44 arb_src2_grant_a,
45 arb_src1_grant_a,
46 arb_src0_grant_a,
47 ccx_dest_data_rdy_a,
48 ccx_dest_atom_a,
49 req_pkt_empty_a,
50 grant_a,
51 req_a,
52 atom_a,
53 src8_arb_atom_q,
54 src7_arb_atom_q,
55 src6_arb_atom_q,
56 src5_arb_atom_q,
57 src4_arb_atom_q,
58 src3_arb_atom_q,
59 src2_arb_atom_q,
60 src1_arb_atom_q,
61 src0_arb_atom_q,
62 src8_arb_req_q,
63 src7_arb_req_q,
64 src6_arb_req_q,
65 src5_arb_req_q,
66 src4_arb_req_q,
67 src3_arb_req_q,
68 src2_arb_req_q,
69 src1_arb_req_q,
70 src0_arb_req_q,
71 qfullbar_a,
72 direction,
73 fifo_req_sel_a,
74 input_req_sel_a,
75 input_req_sel_a_,
76 write_fifo_a,
77 fifo_rptr_a,
78 fifo_read_select,
79 atom_x,
80 stall_q_d1,
81 tcu_scan_en,
82 l2clk,
83 scan_in,
84 tcu_pce_ov,
85 ccx_aclk,
86 ccx_bclk,
87 scan_out,
88 tcu_pce_ov_out,
89 tcu_scan_en_out,
90 ccx_aclk_out,
91 ccx_bclk_out);
92wire pce_ov;
93wire stop;
94wire siclk;
95wire soclk;
96wire se;
97wire [8:0] atom_q;
98wire [8:0] req_q;
99wire i_dff_atom_a_scanin;
100wire i_dff_atom_a_scanout;
101wire direction_;
102wire dir_a_;
103wire [8:0] atom_int_a;
104wire i_dff_req_a_scanin;
105wire i_dff_req_a_scanout;
106wire dir_a;
107wire [8:0] input_req_a_;
108wire [8:0] input_req_a;
109wire [9:0] fifo_wdata_prebuf;
110wire [9:0] fifo_wdata;
111wire i_dff_fmem17_scanin;
112wire i_dff_fmem17_scanout;
113wire [9:0] fifo_rdata17;
114wire i_dff_fmem16_scanin;
115wire i_dff_fmem16_scanout;
116wire [9:0] fifo_rdata16;
117wire [9:0] fifo_rdata17_16;
118wire i_dff_fmem15_scanin;
119wire i_dff_fmem15_scanout;
120wire [9:0] fifo_rdata15;
121wire i_dff_fmem14_scanin;
122wire i_dff_fmem14_scanout;
123wire [9:0] fifo_rdata14;
124wire i_dff_fmem13_scanin;
125wire i_dff_fmem13_scanout;
126wire [9:0] fifo_rdata13;
127wire i_dff_fmem12_scanin;
128wire i_dff_fmem12_scanout;
129wire [9:0] fifo_rdata12;
130wire i_dff_fmem11_scanin;
131wire i_dff_fmem11_scanout;
132wire [9:0] fifo_rdata11;
133wire i_dff_fmem10_scanin;
134wire i_dff_fmem10_scanout;
135wire [9:0] fifo_rdata10;
136wire i_dff_fmem9_scanin;
137wire i_dff_fmem9_scanout;
138wire [9:0] fifo_rdata9;
139wire i_dff_fmem8_scanin;
140wire i_dff_fmem8_scanout;
141wire [9:0] fifo_rdata8;
142wire [9:0] fifo_rdata15_8;
143wire i_dff_fmem7_scanin;
144wire i_dff_fmem7_scanout;
145wire [9:0] fifo_rdata7;
146wire i_dff_fmem6_scanin;
147wire i_dff_fmem6_scanout;
148wire [9:0] fifo_rdata6;
149wire i_dff_fmem5_scanin;
150wire i_dff_fmem5_scanout;
151wire [9:0] fifo_rdata5;
152wire i_dff_fmem4_scanin;
153wire i_dff_fmem4_scanout;
154wire [9:0] fifo_rdata4;
155wire i_dff_fmem3_scanin;
156wire i_dff_fmem3_scanout;
157wire [9:0] fifo_rdata3;
158wire i_dff_fmem2_scanin;
159wire i_dff_fmem2_scanout;
160wire [9:0] fifo_rdata2;
161wire i_dff_fmem1_scanin;
162wire i_dff_fmem1_scanout;
163wire [9:0] fifo_rdata1;
164wire i_dff_fmem0_scanin;
165wire i_dff_fmem0_scanout;
166wire [9:0] fifo_rdata0;
167wire [9:0] fifo_rdata7_0;
168wire fifo_dir;
169wire [8:0] fifo_req;
170wire qual_dir;
171wire [8:0] qual_req;
172wire current_req_sel_a;
173wire fq_dir;
174wire [8:0] fq_req;
175wire i_dff_reqreg_scanin;
176wire i_dff_reqreg_scanout;
177wire fq_dir_a_prebuf;
178wire [8:0] fq_req_a;
179wire fq_dir_a;
180wire input_dir_a_;
181wire [8:0] input_req_qfullbar_a_;
182wire fq_input_dir_a_;
183wire [8:0] fq_input_req_a_;
184wire dir;
185wire [8:0] req;
186wire [8:0] atom_req_a_;
187wire [8:0] atom_req_a;
188wire [8:0] atom;
189wire stall_a_;
190wire input_dira_stall_;
191wire fq_input_dira_stall_;
192wire dira;
193wire fq_dir_a_;
194wire input_dird_stall_;
195wire fq_input_dird_stall_;
196wire dird;
197wire r8_;
198wire r7_;
199wire r6_;
200wire r5_;
201wire r4_;
202wire r3_;
203wire r2_;
204wire r1_;
205wire r0_;
206wire ra_or_7654_;
207wire ra_or_3210_;
208wire ra_or_654_;
209wire ra_d54x;
210wire ra_or_543_;
211wire ra_or_210_;
212wire ra_or_32_;
213wire ra_or_21_;
214wire ra_or_10_;
215wire ra_d8_;
216wire ra_d7_;
217wire ra_d6_;
218wire ra_d4_;
219wire ra_d3_;
220wire [8:0] grant_asc_;
221wire ra_d8;
222wire ra_d7;
223wire ra_d6;
224wire ra_d4;
225wire ra_d3;
226wire [8:0] reqd;
227wire rd7_;
228wire rd6_;
229wire rd5_;
230wire rd4_;
231wire rd3_;
232wire rd2_;
233wire rd1_;
234wire rd0_;
235wire rd_or_7654_;
236wire rd_or_3210_;
237wire rd_or_654_;
238wire rd_d54x;
239wire rd_or_543_;
240wire rd_or_210_;
241wire rd_or_32_;
242wire rd_or_21_;
243wire rd_or_10_;
244wire rd_d8_;
245wire rd_d7_;
246wire rd_d6_;
247wire rd_d4_;
248wire rd_d3_;
249wire [8:0] grant_dsc_;
250wire rd_d8;
251wire rd_d7;
252wire rd_d6;
253wire rd_d4;
254wire rd_d3;
255wire [8:0] grant_des_;
256wire [8:0] grant_int_a;
257wire [8:0] grant_a_;
258wire [8:0] qual_atomic_d1_;
259wire [8:0] set_qual_atomic;
260wire [8:0] qual_atomic_d1;
261wire [8:0] hold_qual_atomic;
262wire stall_q_d1_;
263wire [8:0] qual_atomic;
264wire i_dff_qual_atomic_d1_scanin;
265wire i_dff_qual_atomic_d1_scanout;
266wire [8:0] req_nogrant_;
267wire [8:0] atom_2pass_;
268wire qreq_8_6_;
269wire qreq_5_3_;
270wire qreq_2_0_;
271wire drdy_8_6;
272wire drdy_5_3;
273wire drdy_2_0;
274wire req_pkt_empty_a_;
275wire data_rdy_a;
276wire atom_8_6;
277wire atom_5_3;
278wire atom_2_0;
279wire ccx_dest_atom_a_;
280wire scan_out_prebuf;
281
282
283//Primary outputs to ccx datapaths
284output [8:0] arb_grant_a; //to ccx datapath
285
286//Output to source: sparc or sctag grant flops
287output arb_src8_grant_a;
288output arb_src7_grant_a;
289output arb_src6_grant_a;
290output arb_src5_grant_a;
291output arb_src4_grant_a;
292output arb_src3_grant_a;
293output arb_src2_grant_a;
294output arb_src1_grant_a;
295output arb_src0_grant_a;
296
297output ccx_dest_data_rdy_a; //
298output ccx_dest_atom_a;
299
300//Output to arb control logic
301output req_pkt_empty_a;
302output [8:0] grant_a;
303output [8:0] req_a;
304output [8:0] atom_a;
305
306
307//Primary inputs from sources
308input src8_arb_atom_q;
309input src7_arb_atom_q;
310input src6_arb_atom_q;
311input src5_arb_atom_q;
312input src4_arb_atom_q;
313input src3_arb_atom_q;
314input src2_arb_atom_q;
315input src1_arb_atom_q;
316input src0_arb_atom_q;
317
318input src8_arb_req_q;
319input src7_arb_req_q;
320input src6_arb_req_q;
321input src5_arb_req_q;
322input src4_arb_req_q;
323input src3_arb_req_q;
324input src2_arb_req_q;
325input src1_arb_req_q;
326input src0_arb_req_q;
327
328//Primary inputs from arbiter control logic
329input [8:0] qfullbar_a;
330input direction; // priority encoder direction
331input fifo_req_sel_a;
332//input current_req_sel_a;
333input input_req_sel_a;
334input input_req_sel_a_;
335input [17:0] write_fifo_a; //write pointer for fifo.
336input [2:0] fifo_rptr_a; //read pointer for fifo
337input [1:0] fifo_read_select; //read pointer for fifo
338input [8:0] atom_x;
339input stall_q_d1; // stall request from dest, flopped inside ccx
340
341//Global signals
342input tcu_scan_en ;
343input l2clk;
344input scan_in;
345input tcu_pce_ov; // scan signals
346input ccx_aclk;
347input ccx_bclk;
348output scan_out;
349
350// buffer HFN and drive to ctl
351output tcu_pce_ov_out;
352output tcu_scan_en_out;
353output ccx_aclk_out;
354output ccx_bclk_out;
355
356
357// scan renames
358assign pce_ov = tcu_pce_ov_out;
359assign stop = 1'b0;
360assign siclk = ccx_aclk_out;
361assign soclk = ccx_bclk_out;
362assign se = tcu_scan_en_out;
363// end scan
364
365
366// buffer hfn
367
368
369ccx_ard_dp_buff_macro__dbuff_16x__stack_none__width_4 i_buf_hfn (
370 .din ({tcu_pce_ov, tcu_scan_en, ccx_aclk, ccx_bclk}),
371 .dout ({tcu_pce_ov_out, tcu_scan_en_out, ccx_aclk_out, ccx_bclk_out})
372);
373
374assign atom_q[8:0] = { src8_arb_atom_q,
375 src7_arb_atom_q,
376 src6_arb_atom_q,
377 src5_arb_atom_q,
378 src4_arb_atom_q,
379 src3_arb_atom_q,
380 src2_arb_atom_q,
381 src1_arb_atom_q,
382 src0_arb_atom_q };
383
384assign req_q[8:0] = { src8_arb_req_q,
385 src7_arb_req_q,
386 src6_arb_req_q,
387 src5_arb_req_q,
388 src4_arb_req_q,
389 src3_arb_req_q,
390 src2_arb_req_q,
391 src1_arb_req_q,
392 src0_arb_req_q };
393
394ccx_ard_dp_msff_macro__dmsff_16x__stack_10c__width_10 i_dff_atom_a
395(
396 .scan_in(i_dff_atom_a_scanin),
397 .scan_out(i_dff_atom_a_scanout),
398 .clk (l2clk),
399 .din ({direction_, atom_q[8:0]}),
400 .dout ({dir_a_, atom_int_a[8:0]}),
401 .en (1'b1),
402 .se(se),
403 .siclk(siclk),
404 .soclk(soclk),
405 .pce_ov(pce_ov),
406 .stop(stop)
407 );
408
409ccx_ard_dp_msff_macro__dmsff_16x__stack_10c__width_10 i_dff_req_a
410(
411 .scan_in(i_dff_req_a_scanin),
412 .scan_out(i_dff_req_a_scanout),
413 .clk (l2clk),
414 .din ({direction,req_q[8:0]}),
415 .dout ({dir_a,req_a[8:0]}),
416 .en (1'b1),
417 .se(se),
418 .siclk(siclk),
419 .soclk(soclk),
420 .pce_ov(pce_ov),
421 .stop(stop)
422 );
423
424
425//BEGIN FIFO SECTION
426
427
428// Do not accept a request for a queue that is full.
429ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_inreq_a
430(
431 .din0 (qfullbar_a[8:0]),
432 .din1 (req_a[8:0]),
433 .dout (input_req_a_[8:0])
434 );
435
436ccx_ard_dp_inv_macro__dinv_24x__stack_10c__width_10 i_inv_inreq_a
437(
438 .din ({direction,input_req_a_[8:0]}),
439 .dout ({direction_,input_req_a[8:0]})
440 );
441
442
443// flop memory
444assign fifo_wdata_prebuf[9:0] = {dir_a,input_req_a[8:0]};
445ccx_ard_dp_buff_macro__dbuff_32x__minbuff_1__stack_none__width_19 i_buf_fifo_wdata (
446 .din ({atom_int_a[8:0], fifo_wdata_prebuf[9:0]}),
447 .dout ({atom_a[8:0], fifo_wdata[9:0]})
448);
449
450
451
452ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem17 (
453 .scan_in(i_dff_fmem17_scanin),
454 .scan_out(i_dff_fmem17_scanout),
455 .clk (l2clk),
456 .din (fifo_wdata[9:0]),
457 .dout (fifo_rdata17[9:0]),
458 .en (write_fifo_a[17]),
459 .se(se),
460 .siclk(siclk),
461 .soclk(soclk),
462 .pce_ov(pce_ov),
463 .stop(stop)
464);
465
466ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem16 (
467 .scan_in(i_dff_fmem16_scanin),
468 .scan_out(i_dff_fmem16_scanout),
469 .clk (l2clk),
470 .din (fifo_wdata[9:0]),
471 .dout (fifo_rdata16[9:0]),
472 .en (write_fifo_a[16]),
473 .se(se),
474 .siclk(siclk),
475 .soclk(soclk),
476 .pce_ov(pce_ov),
477 .stop(stop)
478);
479
480ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10 i_mux_fmem17_16 (
481 .din0 (fifo_rdata17[9:0]),
482 .din1 (fifo_rdata16[9:0]),
483 .sel0 (fifo_rptr_a[0]),
484 .dout (fifo_rdata17_16[9:0])
485);
486
487ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem15 (
488 .scan_in(i_dff_fmem15_scanin),
489 .scan_out(i_dff_fmem15_scanout),
490 .clk (l2clk),
491 .din (fifo_wdata[9:0]),
492 .dout (fifo_rdata15[9:0]),
493 .en (write_fifo_a[15]),
494 .se(se),
495 .siclk(siclk),
496 .soclk(soclk),
497 .pce_ov(pce_ov),
498 .stop(stop)
499);
500
501ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem14 (
502 .scan_in(i_dff_fmem14_scanin),
503 .scan_out(i_dff_fmem14_scanout),
504 .clk (l2clk),
505 .din (fifo_wdata[9:0]),
506 .dout (fifo_rdata14[9:0]),
507 .en (write_fifo_a[14]),
508 .se(se),
509 .siclk(siclk),
510 .soclk(soclk),
511 .pce_ov(pce_ov),
512 .stop(stop)
513);
514
515ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem13 (
516 .scan_in(i_dff_fmem13_scanin),
517 .scan_out(i_dff_fmem13_scanout),
518 .clk (l2clk),
519 .din (fifo_wdata[9:0]),
520 .dout (fifo_rdata13[9:0]),
521 .en (write_fifo_a[13]),
522 .se(se),
523 .siclk(siclk),
524 .soclk(soclk),
525 .pce_ov(pce_ov),
526 .stop(stop)
527);
528
529ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem12 (
530 .scan_in(i_dff_fmem12_scanin),
531 .scan_out(i_dff_fmem12_scanout),
532 .clk (l2clk),
533 .din (fifo_wdata[9:0]),
534 .dout (fifo_rdata12[9:0]),
535 .en (write_fifo_a[12]),
536 .se(se),
537 .siclk(siclk),
538 .soclk(soclk),
539 .pce_ov(pce_ov),
540 .stop(stop)
541);
542
543
544ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem11 (
545 .scan_in(i_dff_fmem11_scanin),
546 .scan_out(i_dff_fmem11_scanout),
547 .clk (l2clk),
548 .din (fifo_wdata[9:0]),
549 .dout (fifo_rdata11[9:0]),
550 .en (write_fifo_a[11]),
551 .se(se),
552 .siclk(siclk),
553 .soclk(soclk),
554 .pce_ov(pce_ov),
555 .stop(stop)
556);
557
558ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem10 (
559 .scan_in(i_dff_fmem10_scanin),
560 .scan_out(i_dff_fmem10_scanout),
561 .clk (l2clk),
562 .din (fifo_wdata[9:0]),
563 .dout (fifo_rdata10[9:0]),
564 .en (write_fifo_a[10]),
565 .se(se),
566 .siclk(siclk),
567 .soclk(soclk),
568 .pce_ov(pce_ov),
569 .stop(stop)
570);
571
572ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem9 (
573 .scan_in(i_dff_fmem9_scanin),
574 .scan_out(i_dff_fmem9_scanout),
575 .clk (l2clk),
576 .din (fifo_wdata[9:0]),
577 .dout (fifo_rdata9[9:0]),
578 .en (write_fifo_a[9]),
579 .se(se),
580 .siclk(siclk),
581 .soclk(soclk),
582 .pce_ov(pce_ov),
583 .stop(stop)
584);
585
586ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem8 (
587 .scan_in(i_dff_fmem8_scanin),
588 .scan_out(i_dff_fmem8_scanout),
589 .clk (l2clk),
590 .din (fifo_wdata[9:0]),
591 .dout (fifo_rdata8[9:0]),
592 .en (write_fifo_a[8]),
593 .se(se),
594 .siclk(siclk),
595 .soclk(soclk),
596 .pce_ov(pce_ov),
597 .stop(stop)
598);
599
600ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10 i_mux_fmem15_8 (
601 .din0 (fifo_rdata8[9:0]),
602 .din1 (fifo_rdata9[9:0]),
603 .din2 (fifo_rdata10[9:0]),
604 .din3 (fifo_rdata11[9:0]),
605 .din4 (fifo_rdata12[9:0]),
606 .din5 (fifo_rdata13[9:0]),
607 .din6 (fifo_rdata14[9:0]),
608 .din7 (fifo_rdata15[9:0]),
609 .sel (fifo_rptr_a[2:0]),
610 .dout (fifo_rdata15_8[9:0])
611);
612
613ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem7 (
614 .scan_in(i_dff_fmem7_scanin),
615 .scan_out(i_dff_fmem7_scanout),
616 .clk (l2clk),
617 .din (fifo_wdata[9:0]),
618 .dout (fifo_rdata7[9:0]),
619 .en (write_fifo_a[7]),
620 .se(se),
621 .siclk(siclk),
622 .soclk(soclk),
623 .pce_ov(pce_ov),
624 .stop(stop)
625);
626
627ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem6 (
628 .scan_in(i_dff_fmem6_scanin),
629 .scan_out(i_dff_fmem6_scanout),
630 .clk (l2clk),
631 .din (fifo_wdata[9:0]),
632 .dout (fifo_rdata6[9:0]),
633 .en (write_fifo_a[6]),
634 .se(se),
635 .siclk(siclk),
636 .soclk(soclk),
637 .pce_ov(pce_ov),
638 .stop(stop)
639);
640
641ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem5 (
642 .scan_in(i_dff_fmem5_scanin),
643 .scan_out(i_dff_fmem5_scanout),
644 .clk (l2clk),
645 .din (fifo_wdata[9:0]),
646 .dout (fifo_rdata5[9:0]),
647 .en (write_fifo_a[5]),
648 .se(se),
649 .siclk(siclk),
650 .soclk(soclk),
651 .pce_ov(pce_ov),
652 .stop(stop)
653);
654
655ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem4 (
656 .scan_in(i_dff_fmem4_scanin),
657 .scan_out(i_dff_fmem4_scanout),
658 .clk (l2clk),
659 .din (fifo_wdata[9:0]),
660 .dout (fifo_rdata4[9:0]),
661 .en (write_fifo_a[4]),
662 .se(se),
663 .siclk(siclk),
664 .soclk(soclk),
665 .pce_ov(pce_ov),
666 .stop(stop)
667);
668
669ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem3 (
670 .scan_in(i_dff_fmem3_scanin),
671 .scan_out(i_dff_fmem3_scanout),
672 .clk (l2clk),
673 .din (fifo_wdata[9:0]),
674 .dout (fifo_rdata3[9:0]),
675 .en (write_fifo_a[3]),
676 .se(se),
677 .siclk(siclk),
678 .soclk(soclk),
679 .pce_ov(pce_ov),
680 .stop(stop)
681);
682
683ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem2 (
684 .scan_in(i_dff_fmem2_scanin),
685 .scan_out(i_dff_fmem2_scanout),
686 .clk (l2clk),
687 .din (fifo_wdata[9:0]),
688 .dout (fifo_rdata2[9:0]),
689 .en (write_fifo_a[2]),
690 .se(se),
691 .siclk(siclk),
692 .soclk(soclk),
693 .pce_ov(pce_ov),
694 .stop(stop)
695);
696
697ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem1 (
698 .scan_in(i_dff_fmem1_scanin),
699 .scan_out(i_dff_fmem1_scanout),
700 .clk (l2clk),
701 .din (fifo_wdata[9:0]),
702 .dout (fifo_rdata1[9:0]),
703 .en (write_fifo_a[1]),
704 .se(se),
705 .siclk(siclk),
706 .soclk(soclk),
707 .pce_ov(pce_ov),
708 .stop(stop)
709);
710
711ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem0 (
712 .scan_in(i_dff_fmem0_scanin),
713 .scan_out(i_dff_fmem0_scanout),
714 .clk (l2clk),
715 .din (fifo_wdata[9:0]),
716 .dout (fifo_rdata0[9:0]),
717 .en (write_fifo_a[0]),
718 .se(se),
719 .siclk(siclk),
720 .soclk(soclk),
721 .pce_ov(pce_ov),
722 .stop(stop)
723);
724
725ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10 i_mux_fmem7_0 (
726 .din0 (fifo_rdata0[9:0]),
727 .din1 (fifo_rdata1[9:0]),
728 .din2 (fifo_rdata2[9:0]),
729 .din3 (fifo_rdata3[9:0]),
730 .din4 (fifo_rdata4[9:0]),
731 .din5 (fifo_rdata5[9:0]),
732 .din6 (fifo_rdata6[9:0]),
733 .din7 (fifo_rdata7[9:0]),
734 .sel (fifo_rptr_a[2:0]),
735 .dout (fifo_rdata7_0[9:0])
736);
737
738ccx_ard_dp_mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10 i_mux_fifo_req (
739 .din0 (fifo_rdata7_0[9:0]),
740 .din1 (fifo_rdata15_8[9:0]),
741 .din2 (fifo_rdata17_16[9:0]),
742 .din3 (fifo_wdata[9:0]),
743 .sel ({fifo_read_select[1:0]}),
744 .dout ({fifo_dir,fifo_req[8:0]})
745);
746
747//End flop memory section
748
749
750//BEGIN PE SECTION
751
752ccx_ard_dp_mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10 i_mux_reqmux (
753 .din0 ({qual_dir,qual_req[8:0]}),
754 .din1 ({fifo_dir,fifo_req[8:0]}),
755 .sel0 (current_req_sel_a),
756 .sel1 (fifo_req_sel_a),
757 .dout ({fq_dir,fq_req[8:0]})
758);
759
760ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_reqreg (
761 .scan_in(i_dff_reqreg_scanin),
762 .scan_out(i_dff_reqreg_scanout),
763 .clk (l2clk),
764 .din ({fq_dir,fq_req[8:0]}),
765 .dout ({fq_dir_a_prebuf,fq_req_a[8:0]}),
766 .en (1'b1),
767 .se(se),
768 .siclk(siclk),
769 .soclk(soclk),
770 .pce_ov(pce_ov),
771 .stop(stop)
772);
773
774ccx_ard_dp_buff_macro__dbuff_8x__stack_10c__width_1 i_buf_fqdir (
775 .din (fq_dir_a_prebuf),
776 .dout (fq_dir_a)
777
778);
779
780
781// implement this mux using nand-nand. During the first nand, qualify
782// req_a with qfull_bar. This removes one AND gate from critical path
783//mux_macro i_mux_inmux (width=10, mux=aope, ports=2,stack=10c) (
784// .din0 ({dir_a,input_req_a[8:0]}),
785// .din1 ({fq_dir_a,fq_req_a[8:0]}),
786// .sel0 (input_req_sel_a),
787// .dout ({dir,req[8:0]}),
788//);
789
790
791
792ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_10 i_nand3i_inmux (
793 .din0 ({dir_a,req_a[8:0]}),
794 .din1 ({1'b1,qfullbar_a[8:0]}),
795 .din2 ({10{input_req_sel_a}}),
796 .dout ({input_dir_a_,input_req_qfullbar_a_[8:0]})
797);
798
799ccx_ard_dp_nand_macro__dnand_4x__ports_2__stack_10c__width_10 i_nand2i_inmux (
800 .din0 ({fq_dir_a,fq_req_a[8:0]}),
801 .din1 ({10{input_req_sel_a_}}),
802 .dout ({fq_input_dir_a_,fq_input_req_a_[8:0]})
803);
804
805ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_10 i_nand2o_inmux (
806 .din0 ({input_dir_a_,input_req_qfullbar_a_[8:0]}),
807 .din1 ({fq_input_dir_a_,fq_input_req_a_[8:0]}),
808 .dout ({dir,req[8:0]})
809);
810
811
812
813ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_atomreq (
814 .din0 (atom_int_a[8:0]),
815 .din1 (input_req_a[8:0]),
816 .dout (atom_req_a_[8:0])
817);
818
819ccx_ard_dp_inv_macro__dinv_2x__stack_10c__width_9 i_inv_atomreq (
820 .din (atom_req_a_[8:0]),
821 .dout (atom_req_a[8:0])
822);
823
824ccx_ard_dp_mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9 i_mux_atom (
825 .din0 (atom_req_a[8:0]),
826 .din1 (atom_x[8:0]),
827 .sel0 (input_req_sel_a),
828 .dout (atom[8:0])
829);
830
831//assign dira = ~stall_a & dir;
832//assign dird = ~stall_a & ~dir;
833// replicate the input mux with this functionality built in.
834
835ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dira_inmux
836(
837 .din0 (dir_a),
838 .din1 (stall_a_),
839 .din2 (input_req_sel_a),
840 .dout (input_dira_stall_)
841 );
842
843ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dira_inmux (
844 .din0 (fq_dir_a),
845 .din1 (stall_a_),
846 .din2 (input_req_sel_a_),
847 .dout (fq_input_dira_stall_)
848);
849
850ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dira_inmux (
851 .din0 (input_dira_stall_),
852 .din1 (fq_input_dira_stall_),
853 .dout (dira)
854);
855
856ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_1 i_inv_dir (
857 .din ({fq_dir_a}),
858 .dout ({fq_dir_a_})
859);
860
861ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dird_inmux
862(
863 .din0 (dir_a_),
864 .din1 (stall_a_),
865 .din2 (input_req_sel_a),
866 .dout (input_dird_stall_)
867 );
868
869ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dird_inmux (
870 .din0 (fq_dir_a_),
871 .din1 (stall_a_),
872 .din2 (input_req_sel_a_),
873 .dout (fq_input_dird_stall_)
874);
875
876ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dird_inmux (
877 .din0 (input_dird_stall_),
878 .din1 (fq_input_dird_stall_),
879 .dout (dird)
880);
881
882
883
884
885ccx_ard_dp_inv_macro__dinv_12x__stack_10c__width_9 i_ainv_1_w9 (
886 .din ({req[8:0]}),
887 .dout ({r8_,r7_,r6_,r5_,r4_,r3_,r2_,r1_,r0_})
888);
889
890ccx_ard_dp_and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_aand4_1_w2
891(
892 .din0 ({r4_,r0_}),
893 .din1 ({r5_,r1_}),
894 .din2 ({r6_,r2_}),
895 .din3 ({r7_,r3_}),
896 .dout({ra_or_7654_,ra_or_3210_})
897 );
898
899ccx_ard_dp_and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_aand3_1_w4
900(
901 .din0 ({r4_, r4_, r4_, r0_}),
902 .din1 ({r5_, req[5], r5_, r1_}),
903 .din2 ({r6_, dira, r3_, r2_}),
904 .dout({ ra_or_654_, ra_d54x, ra_or_543_, ra_or_210_})
905 );
906
907ccx_ard_dp_nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_anor2_1_w3
908(
909 .din0({req[2],req[2],req[0]}),
910 .din1({req[3],req[1],req[1]}),
911 .dout({ra_or_32_,ra_or_21_,ra_or_10_})
912 );
913
914ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_anand2_1_w5
915(
916 .din0 ({dira, dira, dira, dira, dira }),
917 .din1 ({req[8], req[7], req[6], req[4], req[3] }),
918 .dout ({ra_d8_, ra_d7_, ra_d6_, ra_d4_, ra_d3_ })
919 );
920
921ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_anand2_2_w1
922(
923 .din0 ({dira}),
924 .din1 ({req[0]}),
925 .dout ({grant_asc_[0]})
926 );
927
928ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_5 i_ainv_2_w5 (
929 .din ({ra_d8_, ra_d7_, ra_d6_, ra_d4_, ra_d3_}),
930 .dout ({ra_d8, ra_d7, ra_d6, ra_d4, ra_d3})
931);
932
933ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_anand3_2_w8
934(
935 .din0 ({ra_or_3210_, ra_or_3210_, ra_or_210_, ra_or_10_, ra_or_10_, r0_, ra_or_10_, r0_}),
936 .din1 ({ra_or_7654_, ra_or_654_, ra_or_543_, ra_or_32_, ra_or_32_, ra_or_21_, req[2], req[1]}),
937 .din2 ({ra_d8, ra_d7, ra_d6, ra_d54x, ra_d4, ra_d3, dira, dira}),
938 .dout(grant_asc_[8:1])
939 );
940
941
942
943//Descending priority encoder.
944//assign grant_des[8] = req[8];
945//assign grant_des[7] = ~req[8]& req[7];
946//assign grant_des[6] = ~req[8]&~req[7]& req[6];
947//assign grant_des[5] = ~req[8]&~req[7]&~req[6]& req[5];
948//assign grant_des[4] = ~req[8]&~req[7]&~req[6]&~req[5]& req[4];
949//assign grant_des[3] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]& req[3];
950//assign grant_des[2] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]&~req[3]& req[2];
951//assign grant_des[1] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]&~req[3]&~req[2]&req[1];
952//assign grant_des[0] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]&~req[3]&~req[2]&~req[1]&req[0];
953
954
955assign reqd[8:0] = {req[0],req[1],req[2],req[3],req[4],req[5],req[6],req[7],req[8]};
956assign {rd7_,rd6_,rd5_,rd4_,rd3_,rd2_,rd1_,rd0_} = {r1_,r2_,r3_,r4_,r5_,r6_,r7_,r8_};
957
958ccx_ard_dp_and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_dand4_1_w2
959(
960 .din0 ({rd4_,rd0_}),
961 .din1 ({rd5_,rd1_}),
962 .din2 ({rd6_,rd2_}),
963 .din3 ({rd7_,rd3_}),
964 .dout({rd_or_7654_,rd_or_3210_})
965 );
966
967
968ccx_ard_dp_and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_dand3_1_w4
969(
970 .din0 ({rd4_, rd4_, rd4_, rd0_}),
971 .din1 ({rd5_, reqd[5], rd5_, rd1_}),
972 .din2 ({rd6_, dird, rd3_, rd2_}),
973 .dout({ rd_or_654_, rd_d54x, rd_or_543_, rd_or_210_})
974 );
975
976ccx_ard_dp_nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_dnor2_1_w3
977(
978 .din0({reqd[2],reqd[2],reqd[0]}),
979 .din1({reqd[3],reqd[1],reqd[1]}),
980 .dout({rd_or_32_,rd_or_21_,rd_or_10_})
981 );
982
983ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_dnand2_1_w5
984(
985 .din0 ({dird, dird, dird, dird, dird }),
986 .din1 ({reqd[8], reqd[7], reqd[6], reqd[4], reqd[3]}),
987 .dout ({rd_d8_, rd_d7_, rd_d6_, rd_d4_, rd_d3_ })
988 );
989
990ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_dnand2_2_w1
991(
992 .din0 ({dird}),
993 .din1 ({reqd[0]}),
994 .dout ({grant_dsc_[0]})
995 );
996
997ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_5 i_dinv_2_w5 (
998 .din ({rd_d8_, rd_d7_, rd_d6_, rd_d4_, rd_d3_}),
999 .dout ({rd_d8, rd_d7, rd_d6, rd_d4, rd_d3})
1000);
1001
1002ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_dnand3_2_w8
1003(
1004 .din0 ({rd_or_3210_, rd_or_3210_, rd_or_210_, rd_or_10_, rd_or_10_, rd0_, rd_or_10_, rd0_}),
1005 .din1 ({rd_or_7654_, rd_or_654_, rd_or_543_, rd_or_32_, rd_or_32_, rd_or_21_, reqd[2], reqd[1]}),
1006 .din2 ({rd_d8, rd_d7, rd_d6, rd_d54x, rd_d4, rd_d3, dird, dird}),
1007 .dout(grant_dsc_[8:1])
1008 );
1009
1010assign grant_des_[8:0] = {grant_dsc_[0],grant_dsc_[1],grant_dsc_[2],grant_dsc_[3],grant_dsc_[4],grant_dsc_[5],grant_dsc_[6],grant_dsc_[7],grant_dsc_[8]};
1011
1012
1013
1014
1015ccx_ard_dp_nand_macro__dnand_32x__ports_2__stack_10c__width_9 i_nand_dirmux
1016(
1017 .din0 (grant_asc_[8:0]),
1018 .din1 (grant_des_[8:0]),
1019 .dout (grant_int_a[8:0])
1020 );
1021
1022
1023// Buffer grants to be sent back to the sources (sparcs/L2s)
1024ccx_ard_dp_buff_macro__dbuff_48x__stack_10c__width_9 i_buf_src_grant (
1025 .din (grant_int_a[8:0]),
1026 .dout ({arb_src8_grant_a,
1027 arb_src7_grant_a,
1028 arb_src6_grant_a,
1029 arb_src5_grant_a,
1030 arb_src4_grant_a,
1031 arb_src3_grant_a,
1032 arb_src2_grant_a,
1033 arb_src1_grant_a,
1034 arb_src0_grant_a})
1035);
1036
1037// Buffer grants to be sent back to the source queues
1038ccx_ard_dp_buff_macro__dbuff_32x__stack_10c__width_9 i_buf_queue_grant
1039(
1040 .din (grant_int_a[8:0]),
1041 .dout (arb_grant_a[8:0])
1042 );
1043
1044// Add MINTIME Buffer to grants to be sent back to the control block arc
1045ccx_ard_dp_buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9 i_bufmin_grant
1046(
1047 .din (grant_int_a[8:0]),
1048 .dout (grant_a[8:0])
1049 );
1050
1051
1052
1053ccx_ard_dp_inv_macro__dinv_8x__stack_10c__width_9 i_inv_grant_a_x (
1054 .din (grant_int_a[8:0]),
1055 .dout (grant_a_[8:0])
1056);
1057
1058
1059// When an atomic request is granted for the first time, the request needs
1060// to be preserved so that the second packet gets granted immediately following.
1061// The indicator is set when an atomic request is granted for first time.
1062// The indicator is held until the request is granted again.
1063//assign qual_atomic[8:0] = (atom[8:0] & grant_int_a[8:0] & qual_atomic_d1_[8:0]) | // set
1064// (grant_a_[8:0] & qual_atomic_d1[8:0]); // hold
1065
1066ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_9 i_nand_set_qualatom (
1067 .din0 (atom[8:0]),
1068 .din1 (grant_int_a[8:0]),
1069 .din2 (qual_atomic_d1_[8:0]),
1070 .dout (set_qual_atomic[8:0])
1071);
1072
1073ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_hold_qualatom (
1074 .din0 (grant_a_[8:0]),
1075 .din1 (qual_atomic_d1[8:0]),
1076 .dout (hold_qual_atomic[8:0])
1077);
1078
1079ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_10 i_nand_qual_atomic (
1080 .din0 ({stall_q_d1,set_qual_atomic[8:0]}),
1081 .din1 ({1'b1,hold_qual_atomic[8:0]}),
1082 .dout ({stall_q_d1_,qual_atomic[8:0]})
1083);
1084
1085ccx_ard_dp_msff_macro__dmsff_8x__stack_10c__stack_10c__width_10 i_dff_qual_atomic_d1 (
1086 .scan_in(i_dff_qual_atomic_d1_scanin),
1087 .scan_out(i_dff_qual_atomic_d1_scanout),
1088 .clk (l2clk),
1089 .din ({stall_q_d1_,qual_atomic[8:0]}),
1090 .dout ({stall_a_,qual_atomic_d1[8:0]}),
1091 .en (1'b1),
1092 .se(se),
1093 .siclk(siclk),
1094 .soclk(soclk),
1095 .pce_ov(pce_ov),
1096 .stop(stop)
1097);
1098ccx_ard_dp_inv_macro__dinv_2x__stack_10c__width_9 i_inv_qual_atomic_d1_x (
1099 .din (qual_atomic_d1[8:0]),
1100 .dout (qual_atomic_d1_[8:0])
1101);
1102
1103// Recycle the packet until it is empty.
1104// Keep any request that was not granted.
1105// Keep an atomic request after it's first grant.
1106// This gets fed into the request selection mux.
1107// one of the terms is the same as the SET term in qual_atomic
1108//assign qual_req[8:0] = (req[8:0] & grant_a_[8:0]) | (atom[8:0] & grant_int_a[8:0] & qual_atomic_d1_[8:0]) ;
1109
1110ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_9 i_nand_req_nogrant (
1111 .din0 (req[8:0]),
1112 .din1 (grant_a_[8:0]),
1113 .dout (req_nogrant_[8:0])
1114);
1115
1116ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_9 i_nand_set_qualatom2 (
1117 .din0 (atom[8:0]),
1118 .din1 (grant_int_a[8:0]),
1119 .din2 (qual_atomic_d1_[8:0]),
1120 .dout (atom_2pass_[8:0])
1121);
1122ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_9 i_nand_qual_req (
1123 .din0 (req_nogrant_[8:0]),
1124 .din1 (atom_2pass_[8:0]),
1125 .dout (qual_req[8:0])
1126);
1127
1128assign qual_dir = dir;
1129
1130//assign req_pkt_empty_a = ~(|(qual_req[8:0]));
1131//assign ccx_dest_data_rdy_a = |(grant_int_a[8:0]);
1132ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_6 i_nor_rpe (
1133 .din0 ({qual_req[8], qual_req[5], qual_req[2], grant_int_a[8], grant_int_a[5], grant_int_a[2]}),
1134 .din1 ({qual_req[7], qual_req[4], qual_req[1], grant_int_a[7], grant_int_a[4], grant_int_a[1]}),
1135 .din2 ({qual_req[6], qual_req[3], qual_req[0], grant_int_a[6], grant_int_a[3], grant_int_a[0]}),
1136 .dout ({qreq_8_6_, qreq_5_3_, qreq_2_0_, drdy_8_6, drdy_5_3, drdy_2_0})
1137);
1138ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_2 i_nand_rpe (
1139 .din0 ({qreq_8_6_,drdy_8_6}),
1140 .din1 ({qreq_5_3_,drdy_5_3}),
1141 .din2 ({qreq_2_0_,drdy_2_0}),
1142 .dout ({req_pkt_empty_a_,data_rdy_a})
1143);
1144ccx_ard_dp_inv_macro__dinv_32x__stack_10c__width_1 i_inv_rpe (
1145 .din (req_pkt_empty_a_),
1146 .dout (req_pkt_empty_a)
1147);
1148
1149ccx_ard_dp_buff_macro__dbuff_32x__stack_none__width_1 buff_drdy (
1150 .din (data_rdy_a),
1151 .dout (ccx_dest_data_rdy_a)
1152);
1153assign current_req_sel_a = req_pkt_empty_a_;
1154
1155
1156//assign ccx_dest_atom_a = |(grant_int_a[8:0] & atom[8:0] & qual_atomic_d1_[8:0]);
1157ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_3 i_nand_atom (
1158 .din0 ({atom_2pass_[8], atom_2pass_[5], atom_2pass_[2]}),
1159 .din1 ({atom_2pass_[7], atom_2pass_[4], atom_2pass_[1]}),
1160 .din2 ({atom_2pass_[6], atom_2pass_[3], atom_2pass_[0]}),
1161 .dout ({atom_8_6, atom_5_3, atom_2_0})
1162);
1163ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_1 i_nor_atom (
1164 .din0 (atom_8_6),
1165 .din1 (atom_5_3),
1166 .din2 (atom_2_0),
1167 .dout (ccx_dest_atom_a_)
1168);
1169ccx_ard_dp_inv_macro__dinv_32x__stack_10c__width_1 i_inv_dest_atom (
1170 .din (ccx_dest_atom_a_),
1171 .dout (ccx_dest_atom_a)
1172);
1173ccx_ard_dp_buff_macro__dbuff_8x__stack_none__width_1 buff_scanout (
1174 .din (scan_out_prebuf),
1175 .dout (scan_out)
1176);
1177
1178
1179// fixscan start:
1180assign i_dff_atom_a_scanin = scan_in ;
1181assign i_dff_req_a_scanin = i_dff_atom_a_scanout ;
1182assign i_dff_fmem17_scanin = i_dff_req_a_scanout ;
1183assign i_dff_fmem16_scanin = i_dff_fmem17_scanout ;
1184assign i_dff_fmem15_scanin = i_dff_fmem16_scanout ;
1185assign i_dff_fmem14_scanin = i_dff_fmem15_scanout ;
1186assign i_dff_fmem13_scanin = i_dff_fmem14_scanout ;
1187assign i_dff_fmem12_scanin = i_dff_fmem13_scanout ;
1188assign i_dff_fmem11_scanin = i_dff_fmem12_scanout ;
1189assign i_dff_fmem10_scanin = i_dff_fmem11_scanout ;
1190assign i_dff_fmem9_scanin = i_dff_fmem10_scanout ;
1191assign i_dff_fmem8_scanin = i_dff_fmem9_scanout ;
1192assign i_dff_fmem7_scanin = i_dff_fmem8_scanout ;
1193assign i_dff_fmem6_scanin = i_dff_fmem7_scanout ;
1194assign i_dff_fmem5_scanin = i_dff_fmem6_scanout ;
1195assign i_dff_fmem4_scanin = i_dff_fmem5_scanout ;
1196assign i_dff_fmem3_scanin = i_dff_fmem4_scanout ;
1197assign i_dff_fmem2_scanin = i_dff_fmem3_scanout ;
1198assign i_dff_fmem1_scanin = i_dff_fmem2_scanout ;
1199assign i_dff_fmem0_scanin = i_dff_fmem1_scanout ;
1200assign i_dff_reqreg_scanin = i_dff_fmem0_scanout ;
1201assign i_dff_qual_atomic_d1_scanin = i_dff_reqreg_scanout ;
1202assign scan_out_prebuf = i_dff_qual_atomic_d1_scanout;
1203// fixscan end:
1204endmodule
1205
1206
1207//
1208// buff macro
1209//
1210//
1211
1212
1213
1214
1215
1216module ccx_ard_dp_buff_macro__dbuff_16x__stack_none__width_4 (
1217 din,
1218 dout);
1219 input [3:0] din;
1220 output [3:0] dout;
1221
1222
1223
1224
1225
1226
1227buff #(4) d0_0 (
1228.in(din[3:0]),
1229.out(dout[3:0])
1230);
1231
1232
1233
1234
1235
1236
1237
1238
1239endmodule
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249// any PARAMS parms go into naming of macro
1250
1251module ccx_ard_dp_msff_macro__dmsff_16x__stack_10c__width_10 (
1252 din,
1253 clk,
1254 en,
1255 se,
1256 scan_in,
1257 siclk,
1258 soclk,
1259 pce_ov,
1260 stop,
1261 dout,
1262 scan_out);
1263wire l1clk;
1264wire siclk_out;
1265wire soclk_out;
1266wire [8:0] so;
1267
1268 input [9:0] din;
1269
1270
1271 input clk;
1272 input en;
1273 input se;
1274 input scan_in;
1275 input siclk;
1276 input soclk;
1277 input pce_ov;
1278 input stop;
1279
1280
1281
1282 output [9:0] dout;
1283
1284
1285 output scan_out;
1286
1287
1288
1289
1290cl_dp1_l1hdr_8x c0_0 (
1291.l2clk(clk),
1292.pce(en),
1293.aclk(siclk),
1294.bclk(soclk),
1295.l1clk(l1clk),
1296 .se(se),
1297 .pce_ov(pce_ov),
1298 .stop(stop),
1299 .siclk_out(siclk_out),
1300 .soclk_out(soclk_out)
1301);
1302dff #(10) d0_0 (
1303.l1clk(l1clk),
1304.siclk(siclk_out),
1305.soclk(soclk_out),
1306.d(din[9:0]),
1307.si({scan_in,so[8:0]}),
1308.so({so[8:0],scan_out}),
1309.q(dout[9:0])
1310);
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331endmodule
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341//
1342// nand macro for ports = 2,3,4
1343//
1344//
1345
1346
1347
1348
1349
1350module ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 (
1351 din0,
1352 din1,
1353 dout);
1354 input [8:0] din0;
1355 input [8:0] din1;
1356 output [8:0] dout;
1357
1358
1359
1360
1361
1362
1363nand2 #(9) d0_0 (
1364.in0(din0[8:0]),
1365.in1(din1[8:0]),
1366.out(dout[8:0])
1367);
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377endmodule
1378
1379
1380
1381
1382
1383//
1384// invert macro
1385//
1386//
1387
1388
1389
1390
1391
1392module ccx_ard_dp_inv_macro__dinv_24x__stack_10c__width_10 (
1393 din,
1394 dout);
1395 input [9:0] din;
1396 output [9:0] dout;
1397
1398
1399
1400
1401
1402
1403inv #(10) d0_0 (
1404.in(din[9:0]),
1405.out(dout[9:0])
1406);
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416endmodule
1417
1418
1419
1420
1421
1422//
1423// buff macro
1424//
1425//
1426
1427
1428
1429
1430
1431module ccx_ard_dp_buff_macro__dbuff_32x__minbuff_1__stack_none__width_19 (
1432 din,
1433 dout);
1434 input [18:0] din;
1435 output [18:0] dout;
1436
1437
1438
1439
1440
1441
1442buff #(19) d0_0 (
1443.in(din[18:0]),
1444.out(dout[18:0])
1445);
1446
1447
1448
1449
1450
1451
1452
1453
1454endmodule
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464// any PARAMS parms go into naming of macro
1465
1466module ccx_ard_dp_msff_macro__stack_10c__width_10 (
1467 din,
1468 clk,
1469 en,
1470 se,
1471 scan_in,
1472 siclk,
1473 soclk,
1474 pce_ov,
1475 stop,
1476 dout,
1477 scan_out);
1478wire l1clk;
1479wire siclk_out;
1480wire soclk_out;
1481wire [8:0] so;
1482
1483 input [9:0] din;
1484
1485
1486 input clk;
1487 input en;
1488 input se;
1489 input scan_in;
1490 input siclk;
1491 input soclk;
1492 input pce_ov;
1493 input stop;
1494
1495
1496
1497 output [9:0] dout;
1498
1499
1500 output scan_out;
1501
1502
1503
1504
1505cl_dp1_l1hdr_8x c0_0 (
1506.l2clk(clk),
1507.pce(en),
1508.aclk(siclk),
1509.bclk(soclk),
1510.l1clk(l1clk),
1511 .se(se),
1512 .pce_ov(pce_ov),
1513 .stop(stop),
1514 .siclk_out(siclk_out),
1515 .soclk_out(soclk_out)
1516);
1517dff #(10) d0_0 (
1518.l1clk(l1clk),
1519.siclk(siclk_out),
1520.soclk(soclk_out),
1521.d(din[9:0]),
1522.si({scan_in,so[8:0]}),
1523.so({so[8:0],scan_out}),
1524.q(dout[9:0])
1525);
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546endmodule
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1557// also for pass-gate with decoder
1558
1559
1560
1561
1562
1563// any PARAMS parms go into naming of macro
1564
1565module ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10 (
1566 din0,
1567 din1,
1568 sel0,
1569 dout);
1570wire psel0;
1571wire psel1;
1572
1573 input [9:0] din0;
1574 input [9:0] din1;
1575 input sel0;
1576 output [9:0] dout;
1577
1578
1579
1580
1581
1582cl_dp1_penc2_8x c0_0 (
1583 .sel0(sel0),
1584 .psel0(psel0),
1585 .psel1(psel1)
1586);
1587
1588mux2s #(10) d0_0 (
1589 .sel0(psel0),
1590 .sel1(psel1),
1591 .in0(din0[9:0]),
1592 .in1(din1[9:0]),
1593.dout(dout[9:0])
1594);
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608endmodule
1609
1610
1611// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1612// also for pass-gate with decoder
1613
1614
1615
1616
1617
1618// any PARAMS parms go into naming of macro
1619
1620module ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10 (
1621 din0,
1622 din1,
1623 din2,
1624 din3,
1625 din4,
1626 din5,
1627 din6,
1628 din7,
1629 sel,
1630 dout);
1631wire psel0;
1632wire psel1;
1633wire psel2;
1634wire psel3;
1635wire psel4;
1636wire psel5;
1637wire psel6;
1638wire psel7;
1639
1640 input [9:0] din0;
1641 input [9:0] din1;
1642 input [9:0] din2;
1643 input [9:0] din3;
1644 input [9:0] din4;
1645 input [9:0] din5;
1646 input [9:0] din6;
1647 input [9:0] din7;
1648 input [2:0] sel;
1649 output [9:0] dout;
1650
1651
1652
1653
1654
1655cl_dp1_pdec8_8x c0_0 (
1656 .test(1'b1),
1657 .sel0(sel[0]),
1658 .sel1(sel[1]),
1659 .sel2(sel[2]),
1660 .psel0(psel0),
1661 .psel1(psel1),
1662 .psel2(psel2),
1663 .psel3(psel3),
1664 .psel4(psel4),
1665 .psel5(psel5),
1666 .psel6(psel6),
1667 .psel7(psel7)
1668);
1669
1670mux8s #(10) d0_0 (
1671 .sel0(psel0),
1672 .sel1(psel1),
1673 .sel2(psel2),
1674 .sel3(psel3),
1675 .sel4(psel4),
1676 .sel5(psel5),
1677 .sel6(psel6),
1678 .sel7(psel7),
1679 .in0(din0[9:0]),
1680 .in1(din1[9:0]),
1681 .in2(din2[9:0]),
1682 .in3(din3[9:0]),
1683 .in4(din4[9:0]),
1684 .in5(din5[9:0]),
1685 .in6(din6[9:0]),
1686 .in7(din7[9:0]),
1687.dout(dout[9:0])
1688);
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702endmodule
1703
1704
1705// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1706// also for pass-gate with decoder
1707
1708
1709
1710
1711
1712// any PARAMS parms go into naming of macro
1713
1714module ccx_ard_dp_mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10 (
1715 din0,
1716 din1,
1717 din2,
1718 din3,
1719 sel,
1720 dout);
1721wire psel0;
1722wire psel1;
1723wire psel2;
1724wire psel3;
1725
1726 input [9:0] din0;
1727 input [9:0] din1;
1728 input [9:0] din2;
1729 input [9:0] din3;
1730 input [1:0] sel;
1731 output [9:0] dout;
1732
1733
1734
1735
1736
1737cl_dp1_pdec4_8x c0_0 (
1738 .test(1'b1),
1739 .sel0(sel[0]),
1740 .sel1(sel[1]),
1741 .psel0(psel0),
1742 .psel1(psel1),
1743 .psel2(psel2),
1744 .psel3(psel3)
1745);
1746
1747mux4s #(10) d0_0 (
1748 .sel0(psel0),
1749 .sel1(psel1),
1750 .sel2(psel2),
1751 .sel3(psel3),
1752 .in0(din0[9:0]),
1753 .in1(din1[9:0]),
1754 .in2(din2[9:0]),
1755 .in3(din3[9:0]),
1756.dout(dout[9:0])
1757);
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771endmodule
1772
1773
1774// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1775// also for pass-gate with decoder
1776
1777
1778
1779
1780
1781// any PARAMS parms go into naming of macro
1782
1783module ccx_ard_dp_mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10 (
1784 din0,
1785 sel0,
1786 din1,
1787 sel1,
1788 dout);
1789wire buffout0;
1790wire buffout1;
1791
1792 input [9:0] din0;
1793 input sel0;
1794 input [9:0] din1;
1795 input sel1;
1796 output [9:0] dout;
1797
1798
1799
1800
1801
1802cl_dp1_muxbuff2_8x c0_0 (
1803 .in0(sel0),
1804 .in1(sel1),
1805 .out0(buffout0),
1806 .out1(buffout1)
1807);
1808mux2s #(10) d0_0 (
1809 .sel0(buffout0),
1810 .sel1(buffout1),
1811 .in0(din0[9:0]),
1812 .in1(din1[9:0]),
1813.dout(dout[9:0])
1814);
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828endmodule
1829
1830
1831//
1832// buff macro
1833//
1834//
1835
1836
1837
1838
1839
1840module ccx_ard_dp_buff_macro__dbuff_8x__stack_10c__width_1 (
1841 din,
1842 dout);
1843 input [0:0] din;
1844 output [0:0] dout;
1845
1846
1847
1848
1849
1850
1851buff #(1) d0_0 (
1852.in(din[0:0]),
1853.out(dout[0:0])
1854);
1855
1856
1857
1858
1859
1860
1861
1862
1863endmodule
1864
1865
1866
1867
1868
1869//
1870// nand macro for ports = 2,3,4
1871//
1872//
1873
1874
1875
1876
1877
1878module ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_10 (
1879 din0,
1880 din1,
1881 din2,
1882 dout);
1883 input [9:0] din0;
1884 input [9:0] din1;
1885 input [9:0] din2;
1886 output [9:0] dout;
1887
1888
1889
1890
1891
1892
1893nand3 #(10) d0_0 (
1894.in0(din0[9:0]),
1895.in1(din1[9:0]),
1896.in2(din2[9:0]),
1897.out(dout[9:0])
1898);
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908endmodule
1909
1910
1911
1912
1913
1914//
1915// nand macro for ports = 2,3,4
1916//
1917//
1918
1919
1920
1921
1922
1923module ccx_ard_dp_nand_macro__dnand_4x__ports_2__stack_10c__width_10 (
1924 din0,
1925 din1,
1926 dout);
1927 input [9:0] din0;
1928 input [9:0] din1;
1929 output [9:0] dout;
1930
1931
1932
1933
1934
1935
1936nand2 #(10) d0_0 (
1937.in0(din0[9:0]),
1938.in1(din1[9:0]),
1939.out(dout[9:0])
1940);
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950endmodule
1951
1952
1953
1954
1955
1956//
1957// nand macro for ports = 2,3,4
1958//
1959//
1960
1961
1962
1963
1964
1965module ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_10 (
1966 din0,
1967 din1,
1968 dout);
1969 input [9:0] din0;
1970 input [9:0] din1;
1971 output [9:0] dout;
1972
1973
1974
1975
1976
1977
1978nand2 #(10) d0_0 (
1979.in0(din0[9:0]),
1980.in1(din1[9:0]),
1981.out(dout[9:0])
1982);
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992endmodule
1993
1994
1995
1996
1997
1998//
1999// invert macro
2000//
2001//
2002
2003
2004
2005
2006
2007module ccx_ard_dp_inv_macro__dinv_2x__stack_10c__width_9 (
2008 din,
2009 dout);
2010 input [8:0] din;
2011 output [8:0] dout;
2012
2013
2014
2015
2016
2017
2018inv #(9) d0_0 (
2019.in(din[8:0]),
2020.out(dout[8:0])
2021);
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031endmodule
2032
2033
2034
2035
2036
2037// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2038// also for pass-gate with decoder
2039
2040
2041
2042
2043
2044// any PARAMS parms go into naming of macro
2045
2046module ccx_ard_dp_mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9 (
2047 din0,
2048 din1,
2049 sel0,
2050 dout);
2051wire psel0;
2052wire psel1;
2053
2054 input [8:0] din0;
2055 input [8:0] din1;
2056 input sel0;
2057 output [8:0] dout;
2058
2059
2060
2061
2062
2063cl_dp1_penc2_8x c0_0 (
2064 .sel0(sel0),
2065 .psel0(psel0),
2066 .psel1(psel1)
2067);
2068
2069mux2s #(9) d0_0 (
2070 .sel0(psel0),
2071 .sel1(psel1),
2072 .in0(din0[8:0]),
2073 .in1(din1[8:0]),
2074.dout(dout[8:0])
2075);
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089endmodule
2090
2091
2092//
2093// nand macro for ports = 2,3,4
2094//
2095//
2096
2097
2098
2099
2100
2101module ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 (
2102 din0,
2103 din1,
2104 din2,
2105 dout);
2106 input [0:0] din0;
2107 input [0:0] din1;
2108 input [0:0] din2;
2109 output [0:0] dout;
2110
2111
2112
2113
2114
2115
2116nand3 #(1) d0_0 (
2117.in0(din0[0:0]),
2118.in1(din1[0:0]),
2119.in2(din2[0:0]),
2120.out(dout[0:0])
2121);
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131endmodule
2132
2133
2134
2135
2136
2137//
2138// nand macro for ports = 2,3,4
2139//
2140//
2141
2142
2143
2144
2145
2146module ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_1 (
2147 din0,
2148 din1,
2149 dout);
2150 input [0:0] din0;
2151 input [0:0] din1;
2152 output [0:0] dout;
2153
2154
2155
2156
2157
2158
2159nand2 #(1) d0_0 (
2160.in0(din0[0:0]),
2161.in1(din1[0:0]),
2162.out(dout[0:0])
2163);
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173endmodule
2174
2175
2176
2177
2178
2179//
2180// invert macro
2181//
2182//
2183
2184
2185
2186
2187
2188module ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_1 (
2189 din,
2190 dout);
2191 input [0:0] din;
2192 output [0:0] dout;
2193
2194
2195
2196
2197
2198
2199inv #(1) d0_0 (
2200.in(din[0:0]),
2201.out(dout[0:0])
2202);
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212endmodule
2213
2214
2215
2216
2217
2218//
2219// invert macro
2220//
2221//
2222
2223
2224
2225
2226
2227module ccx_ard_dp_inv_macro__dinv_12x__stack_10c__width_9 (
2228 din,
2229 dout);
2230 input [8:0] din;
2231 output [8:0] dout;
2232
2233
2234
2235
2236
2237
2238inv #(9) d0_0 (
2239.in(din[8:0]),
2240.out(dout[8:0])
2241);
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251endmodule
2252
2253
2254
2255
2256
2257//
2258// and macro for ports = 2,3,4
2259//
2260//
2261
2262
2263
2264
2265
2266module ccx_ard_dp_and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 (
2267 din0,
2268 din1,
2269 din2,
2270 din3,
2271 dout);
2272 input [1:0] din0;
2273 input [1:0] din1;
2274 input [1:0] din2;
2275 input [1:0] din3;
2276 output [1:0] dout;
2277
2278
2279
2280
2281
2282
2283and4 #(2) d0_0 (
2284.in0(din0[1:0]),
2285.in1(din1[1:0]),
2286.in2(din2[1:0]),
2287.in3(din3[1:0]),
2288.out(dout[1:0])
2289);
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299endmodule
2300
2301
2302
2303
2304
2305//
2306// and macro for ports = 2,3,4
2307//
2308//
2309
2310
2311
2312
2313
2314module ccx_ard_dp_and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 (
2315 din0,
2316 din1,
2317 din2,
2318 dout);
2319 input [3:0] din0;
2320 input [3:0] din1;
2321 input [3:0] din2;
2322 output [3:0] dout;
2323
2324
2325
2326
2327
2328
2329and3 #(4) d0_0 (
2330.in0(din0[3:0]),
2331.in1(din1[3:0]),
2332.in2(din2[3:0]),
2333.out(dout[3:0])
2334);
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344endmodule
2345
2346
2347
2348
2349
2350//
2351// nor macro for ports = 2,3
2352//
2353//
2354
2355
2356
2357
2358
2359module ccx_ard_dp_nor_macro__dnor_8x__ports_2__stack_10c__width_3 (
2360 din0,
2361 din1,
2362 dout);
2363 input [2:0] din0;
2364 input [2:0] din1;
2365 output [2:0] dout;
2366
2367
2368
2369
2370
2371
2372nor2 #(3) d0_0 (
2373.in0(din0[2:0]),
2374.in1(din1[2:0]),
2375.out(dout[2:0])
2376);
2377
2378
2379
2380
2381
2382
2383
2384endmodule
2385
2386
2387
2388
2389
2390//
2391// nand macro for ports = 2,3,4
2392//
2393//
2394
2395
2396
2397
2398
2399module ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_5 (
2400 din0,
2401 din1,
2402 dout);
2403 input [4:0] din0;
2404 input [4:0] din1;
2405 output [4:0] dout;
2406
2407
2408
2409
2410
2411
2412nand2 #(5) d0_0 (
2413.in0(din0[4:0]),
2414.in1(din1[4:0]),
2415.out(dout[4:0])
2416);
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426endmodule
2427
2428
2429
2430
2431
2432//
2433// nand macro for ports = 2,3,4
2434//
2435//
2436
2437
2438
2439
2440
2441module ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_1 (
2442 din0,
2443 din1,
2444 dout);
2445 input [0:0] din0;
2446 input [0:0] din1;
2447 output [0:0] dout;
2448
2449
2450
2451
2452
2453
2454nand2 #(1) d0_0 (
2455.in0(din0[0:0]),
2456.in1(din1[0:0]),
2457.out(dout[0:0])
2458);
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468endmodule
2469
2470
2471
2472
2473
2474//
2475// invert macro
2476//
2477//
2478
2479
2480
2481
2482
2483module ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_5 (
2484 din,
2485 dout);
2486 input [4:0] din;
2487 output [4:0] dout;
2488
2489
2490
2491
2492
2493
2494inv #(5) d0_0 (
2495.in(din[4:0]),
2496.out(dout[4:0])
2497);
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507endmodule
2508
2509
2510
2511
2512
2513//
2514// nand macro for ports = 2,3,4
2515//
2516//
2517
2518
2519
2520
2521
2522module ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_8 (
2523 din0,
2524 din1,
2525 din2,
2526 dout);
2527 input [7:0] din0;
2528 input [7:0] din1;
2529 input [7:0] din2;
2530 output [7:0] dout;
2531
2532
2533
2534
2535
2536
2537nand3 #(8) d0_0 (
2538.in0(din0[7:0]),
2539.in1(din1[7:0]),
2540.in2(din2[7:0]),
2541.out(dout[7:0])
2542);
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552endmodule
2553
2554
2555
2556
2557
2558//
2559// nand macro for ports = 2,3,4
2560//
2561//
2562
2563
2564
2565
2566
2567module ccx_ard_dp_nand_macro__dnand_32x__ports_2__stack_10c__width_9 (
2568 din0,
2569 din1,
2570 dout);
2571 input [8:0] din0;
2572 input [8:0] din1;
2573 output [8:0] dout;
2574
2575
2576
2577
2578
2579
2580nand2 #(9) d0_0 (
2581.in0(din0[8:0]),
2582.in1(din1[8:0]),
2583.out(dout[8:0])
2584);
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594endmodule
2595
2596
2597
2598
2599
2600//
2601// buff macro
2602//
2603//
2604
2605
2606
2607
2608
2609module ccx_ard_dp_buff_macro__dbuff_48x__stack_10c__width_9 (
2610 din,
2611 dout);
2612 input [8:0] din;
2613 output [8:0] dout;
2614
2615
2616
2617
2618
2619
2620buff #(9) d0_0 (
2621.in(din[8:0]),
2622.out(dout[8:0])
2623);
2624
2625
2626
2627
2628
2629
2630
2631
2632endmodule
2633
2634
2635
2636
2637
2638//
2639// buff macro
2640//
2641//
2642
2643
2644
2645
2646
2647module ccx_ard_dp_buff_macro__dbuff_32x__stack_10c__width_9 (
2648 din,
2649 dout);
2650 input [8:0] din;
2651 output [8:0] dout;
2652
2653
2654
2655
2656
2657
2658buff #(9) d0_0 (
2659.in(din[8:0]),
2660.out(dout[8:0])
2661);
2662
2663
2664
2665
2666
2667
2668
2669
2670endmodule
2671
2672
2673
2674
2675
2676//
2677// buff macro
2678//
2679//
2680
2681
2682
2683
2684
2685module ccx_ard_dp_buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9 (
2686 din,
2687 dout);
2688 input [8:0] din;
2689 output [8:0] dout;
2690
2691
2692
2693
2694
2695
2696buff #(9) d0_0 (
2697.in(din[8:0]),
2698.out(dout[8:0])
2699);
2700
2701
2702
2703
2704
2705
2706
2707
2708endmodule
2709
2710
2711
2712
2713
2714//
2715// invert macro
2716//
2717//
2718
2719
2720
2721
2722
2723module ccx_ard_dp_inv_macro__dinv_8x__stack_10c__width_9 (
2724 din,
2725 dout);
2726 input [8:0] din;
2727 output [8:0] dout;
2728
2729
2730
2731
2732
2733
2734inv #(9) d0_0 (
2735.in(din[8:0]),
2736.out(dout[8:0])
2737);
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747endmodule
2748
2749
2750
2751
2752
2753//
2754// nand macro for ports = 2,3,4
2755//
2756//
2757
2758
2759
2760
2761
2762module ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_9 (
2763 din0,
2764 din1,
2765 din2,
2766 dout);
2767 input [8:0] din0;
2768 input [8:0] din1;
2769 input [8:0] din2;
2770 output [8:0] dout;
2771
2772
2773
2774
2775
2776
2777nand3 #(9) d0_0 (
2778.in0(din0[8:0]),
2779.in1(din1[8:0]),
2780.in2(din2[8:0]),
2781.out(dout[8:0])
2782);
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792endmodule
2793
2794
2795
2796
2797
2798//
2799// nand macro for ports = 2,3,4
2800//
2801//
2802
2803
2804
2805
2806
2807module ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_10 (
2808 din0,
2809 din1,
2810 dout);
2811 input [9:0] din0;
2812 input [9:0] din1;
2813 output [9:0] dout;
2814
2815
2816
2817
2818
2819
2820nand2 #(10) d0_0 (
2821.in0(din0[9:0]),
2822.in1(din1[9:0]),
2823.out(dout[9:0])
2824);
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834endmodule
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844// any PARAMS parms go into naming of macro
2845
2846module ccx_ard_dp_msff_macro__dmsff_8x__stack_10c__stack_10c__width_10 (
2847 din,
2848 clk,
2849 en,
2850 se,
2851 scan_in,
2852 siclk,
2853 soclk,
2854 pce_ov,
2855 stop,
2856 dout,
2857 scan_out);
2858wire l1clk;
2859wire siclk_out;
2860wire soclk_out;
2861wire [8:0] so;
2862
2863 input [9:0] din;
2864
2865
2866 input clk;
2867 input en;
2868 input se;
2869 input scan_in;
2870 input siclk;
2871 input soclk;
2872 input pce_ov;
2873 input stop;
2874
2875
2876
2877 output [9:0] dout;
2878
2879
2880 output scan_out;
2881
2882
2883
2884
2885cl_dp1_l1hdr_8x c0_0 (
2886.l2clk(clk),
2887.pce(en),
2888.aclk(siclk),
2889.bclk(soclk),
2890.l1clk(l1clk),
2891 .se(se),
2892 .pce_ov(pce_ov),
2893 .stop(stop),
2894 .siclk_out(siclk_out),
2895 .soclk_out(soclk_out)
2896);
2897dff #(10) d0_0 (
2898.l1clk(l1clk),
2899.siclk(siclk_out),
2900.soclk(soclk_out),
2901.d(din[9:0]),
2902.si({scan_in,so[8:0]}),
2903.so({so[8:0],scan_out}),
2904.q(dout[9:0])
2905);
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926endmodule
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936//
2937// nand macro for ports = 2,3,4
2938//
2939//
2940
2941
2942
2943
2944
2945module ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_9 (
2946 din0,
2947 din1,
2948 dout);
2949 input [8:0] din0;
2950 input [8:0] din1;
2951 output [8:0] dout;
2952
2953
2954
2955
2956
2957
2958nand2 #(9) d0_0 (
2959.in0(din0[8:0]),
2960.in1(din1[8:0]),
2961.out(dout[8:0])
2962);
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972endmodule
2973
2974
2975
2976
2977
2978//
2979// nand macro for ports = 2,3,4
2980//
2981//
2982
2983
2984
2985
2986
2987module ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_9 (
2988 din0,
2989 din1,
2990 din2,
2991 dout);
2992 input [8:0] din0;
2993 input [8:0] din1;
2994 input [8:0] din2;
2995 output [8:0] dout;
2996
2997
2998
2999
3000
3001
3002nand3 #(9) d0_0 (
3003.in0(din0[8:0]),
3004.in1(din1[8:0]),
3005.in2(din2[8:0]),
3006.out(dout[8:0])
3007);
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017endmodule
3018
3019
3020
3021
3022
3023//
3024// nand macro for ports = 2,3,4
3025//
3026//
3027
3028
3029
3030
3031
3032module ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_9 (
3033 din0,
3034 din1,
3035 dout);
3036 input [8:0] din0;
3037 input [8:0] din1;
3038 output [8:0] dout;
3039
3040
3041
3042
3043
3044
3045nand2 #(9) d0_0 (
3046.in0(din0[8:0]),
3047.in1(din1[8:0]),
3048.out(dout[8:0])
3049);
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059endmodule
3060
3061
3062
3063
3064
3065//
3066// nor macro for ports = 2,3
3067//
3068//
3069
3070
3071
3072
3073
3074module ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_6 (
3075 din0,
3076 din1,
3077 din2,
3078 dout);
3079 input [5:0] din0;
3080 input [5:0] din1;
3081 input [5:0] din2;
3082 output [5:0] dout;
3083
3084
3085
3086
3087
3088
3089nor3 #(6) d0_0 (
3090.in0(din0[5:0]),
3091.in1(din1[5:0]),
3092.in2(din2[5:0]),
3093.out(dout[5:0])
3094);
3095
3096
3097
3098
3099
3100
3101
3102endmodule
3103
3104
3105
3106
3107
3108//
3109// nand macro for ports = 2,3,4
3110//
3111//
3112
3113
3114
3115
3116
3117module ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_2 (
3118 din0,
3119 din1,
3120 din2,
3121 dout);
3122 input [1:0] din0;
3123 input [1:0] din1;
3124 input [1:0] din2;
3125 output [1:0] dout;
3126
3127
3128
3129
3130
3131
3132nand3 #(2) d0_0 (
3133.in0(din0[1:0]),
3134.in1(din1[1:0]),
3135.in2(din2[1:0]),
3136.out(dout[1:0])
3137);
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147endmodule
3148
3149
3150
3151
3152
3153//
3154// invert macro
3155//
3156//
3157
3158
3159
3160
3161
3162module ccx_ard_dp_inv_macro__dinv_32x__stack_10c__width_1 (
3163 din,
3164 dout);
3165 input [0:0] din;
3166 output [0:0] dout;
3167
3168
3169
3170
3171
3172
3173inv #(1) d0_0 (
3174.in(din[0:0]),
3175.out(dout[0:0])
3176);
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186endmodule
3187
3188
3189
3190
3191
3192//
3193// buff macro
3194//
3195//
3196
3197
3198
3199
3200
3201module ccx_ard_dp_buff_macro__dbuff_32x__stack_none__width_1 (
3202 din,
3203 dout);
3204 input [0:0] din;
3205 output [0:0] dout;
3206
3207
3208
3209
3210
3211
3212buff #(1) d0_0 (
3213.in(din[0:0]),
3214.out(dout[0:0])
3215);
3216
3217
3218
3219
3220
3221
3222
3223
3224endmodule
3225
3226
3227
3228
3229
3230//
3231// nand macro for ports = 2,3,4
3232//
3233//
3234
3235
3236
3237
3238
3239module ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_3 (
3240 din0,
3241 din1,
3242 din2,
3243 dout);
3244 input [2:0] din0;
3245 input [2:0] din1;
3246 input [2:0] din2;
3247 output [2:0] dout;
3248
3249
3250
3251
3252
3253
3254nand3 #(3) d0_0 (
3255.in0(din0[2:0]),
3256.in1(din1[2:0]),
3257.in2(din2[2:0]),
3258.out(dout[2:0])
3259);
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269endmodule
3270
3271
3272
3273
3274
3275//
3276// nor macro for ports = 2,3
3277//
3278//
3279
3280
3281
3282
3283
3284module ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_1 (
3285 din0,
3286 din1,
3287 din2,
3288 dout);
3289 input [0:0] din0;
3290 input [0:0] din1;
3291 input [0:0] din2;
3292 output [0:0] dout;
3293
3294
3295
3296
3297
3298
3299nor3 #(1) d0_0 (
3300.in0(din0[0:0]),
3301.in1(din1[0:0]),
3302.in2(din2[0:0]),
3303.out(dout[0:0])
3304);
3305
3306
3307
3308
3309
3310
3311
3312endmodule
3313
3314
3315
3316
3317
3318//
3319// buff macro
3320//
3321//
3322
3323
3324
3325
3326
3327module ccx_ard_dp_buff_macro__dbuff_8x__stack_none__width_1 (
3328 din,
3329 dout);
3330 input [0:0] din;
3331 output [0:0] dout;
3332
3333
3334
3335
3336
3337
3338buff #(1) d0_0 (
3339.in(din[0:0]),
3340.out(dout[0:0])
3341);
3342
3343
3344
3345
3346
3347
3348
3349
3350endmodule
3351
3352
3353`endif // `ifndef FPGA
3354
3355`ifdef FPGA
3356module ccx_ard_dp(arb_grant_a, arb_src8_grant_a, arb_src7_grant_a,
3357 arb_src6_grant_a, arb_src5_grant_a, arb_src4_grant_a, arb_src3_grant_a,
3358 arb_src2_grant_a, arb_src1_grant_a, arb_src0_grant_a,
3359 ccx_dest_data_rdy_a, ccx_dest_atom_a, req_pkt_empty_a, grant_a, req_a,
3360 atom_a, src8_arb_atom_q, src7_arb_atom_q, src6_arb_atom_q,
3361 src5_arb_atom_q, src4_arb_atom_q, src3_arb_atom_q, src2_arb_atom_q,
3362 src1_arb_atom_q, src0_arb_atom_q, src8_arb_req_q, src7_arb_req_q,
3363 src6_arb_req_q, src5_arb_req_q, src4_arb_req_q, src3_arb_req_q,
3364 src2_arb_req_q, src1_arb_req_q, src0_arb_req_q, qfullbar_a, direction,
3365 fifo_req_sel_a, input_req_sel_a, input_req_sel_a_, write_fifo_a,
3366 fifo_rptr_a, fifo_read_select, atom_x, stall_q_d1, tcu_scan_en, l2clk,
3367 scan_in, tcu_pce_ov, ccx_aclk, ccx_bclk, scan_out, tcu_pce_ov_out,
3368 tcu_scan_en_out, ccx_aclk_out, ccx_bclk_out);
3369
3370 output [8:0] arb_grant_a;
3371 output arb_src8_grant_a;
3372 output arb_src7_grant_a;
3373 output arb_src6_grant_a;
3374 output arb_src5_grant_a;
3375 output arb_src4_grant_a;
3376 output arb_src3_grant_a;
3377 output arb_src2_grant_a;
3378 output arb_src1_grant_a;
3379 output arb_src0_grant_a;
3380 output ccx_dest_data_rdy_a;
3381 output ccx_dest_atom_a;
3382 output req_pkt_empty_a;
3383 output [8:0] grant_a;
3384 output [8:0] req_a;
3385 output [8:0] atom_a;
3386 input src8_arb_atom_q;
3387 input src7_arb_atom_q;
3388 input src6_arb_atom_q;
3389 input src5_arb_atom_q;
3390 input src4_arb_atom_q;
3391 input src3_arb_atom_q;
3392 input src2_arb_atom_q;
3393 input src1_arb_atom_q;
3394 input src0_arb_atom_q;
3395 input src8_arb_req_q;
3396 input src7_arb_req_q;
3397 input src6_arb_req_q;
3398 input src5_arb_req_q;
3399 input src4_arb_req_q;
3400 input src3_arb_req_q;
3401 input src2_arb_req_q;
3402 input src1_arb_req_q;
3403 input src0_arb_req_q;
3404 input [8:0] qfullbar_a;
3405 input direction;
3406 input fifo_req_sel_a;
3407 input input_req_sel_a;
3408 input input_req_sel_a_;
3409 input [17:0] write_fifo_a;
3410 input [2:0] fifo_rptr_a;
3411 input [1:0] fifo_read_select;
3412 input [8:0] atom_x;
3413 input stall_q_d1;
3414 input tcu_scan_en;
3415 input l2clk;
3416 input scan_in;
3417 input tcu_pce_ov;
3418 input ccx_aclk;
3419 input ccx_bclk;
3420 output scan_out;
3421 output tcu_pce_ov_out;
3422 output tcu_scan_en_out;
3423 output ccx_aclk_out;
3424 output ccx_bclk_out;
3425
3426 wire pce_ov;
3427 wire stop;
3428 wire siclk;
3429 wire soclk;
3430 wire se;
3431 wire [8:0] atom_q;
3432 wire [8:0] req_q;
3433 wire i_dff_atom_a_scanin;
3434 wire i_dff_atom_a_scanout;
3435 wire direction_;
3436 wire dir_a_;
3437 wire [8:0] atom_int_a;
3438 wire i_dff_req_a_scanin;
3439 wire i_dff_req_a_scanout;
3440 wire dir_a;
3441 wire [8:0] input_req_a_;
3442 wire [8:0] input_req_a;
3443 wire [9:0] fifo_wdata_prebuf;
3444 wire [9:0] fifo_wdata;
3445 wire i_dff_fmem17_scanin;
3446 wire i_dff_fmem17_scanout;
3447 wire [9:0] fifo_rdata17;
3448 wire i_dff_fmem16_scanin;
3449 wire i_dff_fmem16_scanout;
3450 wire [9:0] fifo_rdata16;
3451 wire [9:0] fifo_rdata17_16;
3452 wire i_dff_fmem15_scanin;
3453 wire i_dff_fmem15_scanout;
3454 wire [9:0] fifo_rdata15;
3455 wire i_dff_fmem14_scanin;
3456 wire i_dff_fmem14_scanout;
3457 wire [9:0] fifo_rdata14;
3458 wire i_dff_fmem13_scanin;
3459 wire i_dff_fmem13_scanout;
3460 wire [9:0] fifo_rdata13;
3461 wire i_dff_fmem12_scanin;
3462 wire i_dff_fmem12_scanout;
3463 wire [9:0] fifo_rdata12;
3464 wire i_dff_fmem11_scanin;
3465 wire i_dff_fmem11_scanout;
3466 wire [9:0] fifo_rdata11;
3467 wire i_dff_fmem10_scanin;
3468 wire i_dff_fmem10_scanout;
3469 wire [9:0] fifo_rdata10;
3470 wire i_dff_fmem9_scanin;
3471 wire i_dff_fmem9_scanout;
3472 wire [9:0] fifo_rdata9;
3473 wire i_dff_fmem8_scanin;
3474 wire i_dff_fmem8_scanout;
3475 wire [9:0] fifo_rdata8;
3476 wire [9:0] fifo_rdata15_8;
3477 wire i_dff_fmem7_scanin;
3478 wire i_dff_fmem7_scanout;
3479 wire [9:0] fifo_rdata7;
3480 wire i_dff_fmem6_scanin;
3481 wire i_dff_fmem6_scanout;
3482 wire [9:0] fifo_rdata6;
3483 wire i_dff_fmem5_scanin;
3484 wire i_dff_fmem5_scanout;
3485 wire [9:0] fifo_rdata5;
3486 wire i_dff_fmem4_scanin;
3487 wire i_dff_fmem4_scanout;
3488 wire [9:0] fifo_rdata4;
3489 wire i_dff_fmem3_scanin;
3490 wire i_dff_fmem3_scanout;
3491 wire [9:0] fifo_rdata3;
3492 wire i_dff_fmem2_scanin;
3493 wire i_dff_fmem2_scanout;
3494 wire [9:0] fifo_rdata2;
3495 wire i_dff_fmem1_scanin;
3496 wire i_dff_fmem1_scanout;
3497 wire [9:0] fifo_rdata1;
3498 wire i_dff_fmem0_scanin;
3499 wire i_dff_fmem0_scanout;
3500 wire [9:0] fifo_rdata0;
3501 wire [9:0] fifo_rdata7_0;
3502 wire fifo_dir;
3503 wire [8:0] fifo_req;
3504 wire qual_dir;
3505 wire [8:0] qual_req;
3506 wire current_req_sel_a;
3507 wire fq_dir;
3508 wire [8:0] fq_req;
3509 wire i_dff_reqreg_scanin;
3510 wire i_dff_reqreg_scanout;
3511 wire fq_dir_a_prebuf;
3512 wire [8:0] fq_req_a;
3513 wire fq_dir_a;
3514 wire input_dir_a_;
3515 wire [8:0] input_req_qfullbar_a_;
3516 wire fq_input_dir_a_;
3517 wire [8:0] fq_input_req_a_;
3518 wire dir;
3519 wire [8:0] req;
3520 wire [8:0] atom_req_a_;
3521 wire [8:0] atom_req_a;
3522 wire [8:0] atom;
3523 wire stall_a_;
3524 wire input_dira_stall_;
3525 wire fq_input_dira_stall_;
3526 wire dira;
3527 wire fq_dir_a_;
3528 wire input_dird_stall_;
3529 wire fq_input_dird_stall_;
3530 wire dird;
3531 wire r8_;
3532 wire r7_;
3533 wire r6_;
3534 wire r5_;
3535 wire r4_;
3536 wire r3_;
3537 wire r2_;
3538 wire r1_;
3539 wire r0_;
3540 wire ra_or_7654_;
3541 wire ra_or_3210_;
3542 wire ra_or_654_;
3543 wire ra_d54x;
3544 wire ra_or_543_;
3545 wire ra_or_210_;
3546 wire ra_or_32_;
3547 wire ra_or_21_;
3548 wire ra_or_10_;
3549 wire ra_d8_;
3550 wire ra_d7_;
3551 wire ra_d6_;
3552 wire ra_d4_;
3553 wire ra_d3_;
3554 wire [8:0] grant_asc_;
3555 wire ra_d8;
3556 wire ra_d7;
3557 wire ra_d6;
3558 wire ra_d4;
3559 wire ra_d3;
3560 wire [8:0] reqd;
3561 wire rd7_;
3562 wire rd6_;
3563 wire rd5_;
3564 wire rd4_;
3565 wire rd3_;
3566 wire rd2_;
3567 wire rd1_;
3568 wire rd0_;
3569 wire rd_or_7654_;
3570 wire rd_or_3210_;
3571 wire rd_or_654_;
3572 wire rd_d54x;
3573 wire rd_or_543_;
3574 wire rd_or_210_;
3575 wire rd_or_32_;
3576 wire rd_or_21_;
3577 wire rd_or_10_;
3578 wire rd_d8_;
3579 wire rd_d7_;
3580 wire rd_d6_;
3581 wire rd_d4_;
3582 wire rd_d3_;
3583 wire [8:0] grant_dsc_;
3584 wire rd_d8;
3585 wire rd_d7;
3586 wire rd_d6;
3587 wire rd_d4;
3588 wire rd_d3;
3589 wire [8:0] grant_des_;
3590 wire [8:0] grant_int_a;
3591 wire [8:0] grant_a_;
3592 wire [8:0] qual_atomic_d1_;
3593 wire [8:0] set_qual_atomic;
3594 wire [8:0] qual_atomic_d1;
3595 wire [8:0] hold_qual_atomic;
3596 wire stall_q_d1_;
3597 wire [8:0] qual_atomic;
3598 wire i_dff_qual_atomic_d1_scanin;
3599 wire i_dff_qual_atomic_d1_scanout;
3600 wire [8:0] req_nogrant_;
3601 wire [8:0] atom_2pass_;
3602 wire qreq_8_6_;
3603 wire qreq_5_3_;
3604 wire qreq_2_0_;
3605 wire drdy_8_6;
3606 wire drdy_5_3;
3607 wire drdy_2_0;
3608 wire req_pkt_empty_a_;
3609 wire data_rdy_a;
3610 wire atom_8_6;
3611 wire atom_5_3;
3612 wire atom_2_0;
3613 wire ccx_dest_atom_a_;
3614 wire scan_out_prebuf;
3615
3616 assign pce_ov = tcu_pce_ov_out;
3617 assign stop = 1'b0;
3618 assign siclk = ccx_aclk_out;
3619 assign soclk = ccx_bclk_out;
3620 assign se = tcu_scan_en_out;
3621 assign atom_q[8:0] = {src8_arb_atom_q, src7_arb_atom_q, src6_arb_atom_q,
3622 src5_arb_atom_q, src4_arb_atom_q, src3_arb_atom_q,
3623 src2_arb_atom_q, src1_arb_atom_q, src0_arb_atom_q};
3624 assign req_q[8:0] = {src8_arb_req_q, src7_arb_req_q, src6_arb_req_q,
3625 src5_arb_req_q, src4_arb_req_q, src3_arb_req_q, src2_arb_req_q,
3626 src1_arb_req_q, src0_arb_req_q};
3627 assign fifo_wdata_prebuf[9:0] = {dir_a, input_req_a[8:0]};
3628 assign reqd[8:0] = {req[0], req[1], req[2], req[3], req[4], req[5],
3629 req[6], req[7], req[8]};
3630 assign {rd7_, rd6_, rd5_, rd4_, rd3_, rd2_, rd1_, rd0_} = {r1_, r2_,
3631 r3_, r4_, r5_, r6_, r7_, r8_};
3632 assign grant_des_[8:0] = {grant_dsc_[0], grant_dsc_[1], grant_dsc_[2],
3633 grant_dsc_[3], grant_dsc_[4], grant_dsc_[5], grant_dsc_[6],
3634 grant_dsc_[7], grant_dsc_[8]};
3635 assign qual_dir = dir;
3636 assign current_req_sel_a = req_pkt_empty_a_;
3637 assign i_dff_atom_a_scanin = scan_in;
3638 assign i_dff_req_a_scanin = i_dff_atom_a_scanout;
3639 assign i_dff_fmem17_scanin = i_dff_req_a_scanout;
3640 assign i_dff_fmem16_scanin = i_dff_fmem17_scanout;
3641 assign i_dff_fmem15_scanin = i_dff_fmem16_scanout;
3642 assign i_dff_fmem14_scanin = i_dff_fmem15_scanout;
3643 assign i_dff_fmem13_scanin = i_dff_fmem14_scanout;
3644 assign i_dff_fmem12_scanin = i_dff_fmem13_scanout;
3645 assign i_dff_fmem11_scanin = i_dff_fmem12_scanout;
3646 assign i_dff_fmem10_scanin = i_dff_fmem11_scanout;
3647 assign i_dff_fmem9_scanin = i_dff_fmem10_scanout;
3648 assign i_dff_fmem8_scanin = i_dff_fmem9_scanout;
3649 assign i_dff_fmem7_scanin = i_dff_fmem8_scanout;
3650 assign i_dff_fmem6_scanin = i_dff_fmem7_scanout;
3651 assign i_dff_fmem5_scanin = i_dff_fmem6_scanout;
3652 assign i_dff_fmem4_scanin = i_dff_fmem5_scanout;
3653 assign i_dff_fmem3_scanin = i_dff_fmem4_scanout;
3654 assign i_dff_fmem2_scanin = i_dff_fmem3_scanout;
3655 assign i_dff_fmem1_scanin = i_dff_fmem2_scanout;
3656 assign i_dff_fmem0_scanin = i_dff_fmem1_scanout;
3657 assign i_dff_reqreg_scanin = i_dff_fmem0_scanout;
3658 assign i_dff_qual_atomic_d1_scanin = i_dff_reqreg_scanout;
3659 assign scan_out_prebuf = i_dff_qual_atomic_d1_scanout;
3660
3661 buff_macro__dbuff_16x__stack_none__width_4 i_buf_hfn(
3662 .din ({tcu_pce_ov, tcu_scan_en,
3663 ccx_aclk, ccx_bclk}),
3664 .dout ({tcu_pce_ov_out,
3665 tcu_scan_en_out, ccx_aclk_out, ccx_bclk_out}));
3666 msff_macro__dmsff_16x__stack_10c__width_10 i_dff_atom_a(
3667 .scan_in (i_dff_atom_a_scanin),
3668 .scan_out (i_dff_atom_a_scanout),
3669 .clk (l2clk),
3670 .din ({direction_, atom_q[8:0]}),
3671 .dout ({dir_a_, atom_int_a[8:0]}),
3672 .en (1'b1),
3673 .se (se),
3674 .siclk (siclk),
3675 .soclk (soclk),
3676 .pce_ov (pce_ov),
3677 .stop (stop));
3678 msff_macro__dmsff_16x__stack_10c__width_10 i_dff_req_a(
3679 .scan_in (i_dff_req_a_scanin),
3680 .scan_out (i_dff_req_a_scanout),
3681 .clk (l2clk),
3682 .din ({direction, req_q[8:0]}),
3683 .dout ({dir_a, req_a[8:0]}),
3684 .en (1'b1),
3685 .se (se),
3686 .siclk (siclk),
3687 .soclk (soclk),
3688 .pce_ov (pce_ov),
3689 .stop (stop));
3690 nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_inreq_a(
3691 .din0 (qfullbar_a[8:0]),
3692 .din1 (req_a[8:0]),
3693 .dout (input_req_a_[8:0]));
3694 inv_macro__dinv_24x__stack_10c__width_10 i_inv_inreq_a(
3695 .din ({direction,
3696 input_req_a_[8:0]}),
3697 .dout ({direction_, input_req_a[8:0]})
3698 );
3699 buff_macro__dbuff_32x__minbuff_1__stack_none__width_19 i_buf_fifo_wdata(
3700 .din ({atom_int_a[8:0],
3701 fifo_wdata_prebuf[9:0]}),
3702 .dout ({atom_a[8:0], fifo_wdata[9:0]})
3703 );
3704 msff_macro__stack_10c__width_10 i_dff_fmem17(
3705 .scan_in (i_dff_fmem17_scanin),
3706 .scan_out (i_dff_fmem17_scanout),
3707 .clk (l2clk),
3708 .din (fifo_wdata[9:0]),
3709 .dout (fifo_rdata17[9:0]),
3710 .en (write_fifo_a[17]),
3711 .se (se),
3712 .siclk (siclk),
3713 .soclk (soclk),
3714 .pce_ov (pce_ov),
3715 .stop (stop));
3716 msff_macro__stack_10c__width_10 i_dff_fmem16(
3717 .scan_in (i_dff_fmem16_scanin),
3718 .scan_out (i_dff_fmem16_scanout),
3719 .clk (l2clk),
3720 .din (fifo_wdata[9:0]),
3721 .dout (fifo_rdata16[9:0]),
3722 .en (write_fifo_a[16]),
3723 .se (se),
3724 .siclk (siclk),
3725 .soclk (soclk),
3726 .pce_ov (pce_ov),
3727 .stop (stop));
3728 mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10
3729 i_mux_fmem17_16(
3730 .din0 (fifo_rdata17[9:0]),
3731 .din1 (fifo_rdata16[9:0]),
3732 .sel0 (fifo_rptr_a[0]),
3733 .dout (fifo_rdata17_16[9:0]));
3734 msff_macro__stack_10c__width_10 i_dff_fmem15(
3735 .scan_in (i_dff_fmem15_scanin),
3736 .scan_out (i_dff_fmem15_scanout),
3737 .clk (l2clk),
3738 .din (fifo_wdata[9:0]),
3739 .dout (fifo_rdata15[9:0]),
3740 .en (write_fifo_a[15]),
3741 .se (se),
3742 .siclk (siclk),
3743 .soclk (soclk),
3744 .pce_ov (pce_ov),
3745 .stop (stop));
3746 msff_macro__stack_10c__width_10 i_dff_fmem14(
3747 .scan_in (i_dff_fmem14_scanin),
3748 .scan_out (i_dff_fmem14_scanout),
3749 .clk (l2clk),
3750 .din (fifo_wdata[9:0]),
3751 .dout (fifo_rdata14[9:0]),
3752 .en (write_fifo_a[14]),
3753 .se (se),
3754 .siclk (siclk),
3755 .soclk (soclk),
3756 .pce_ov (pce_ov),
3757 .stop (stop));
3758 msff_macro__stack_10c__width_10 i_dff_fmem13(
3759 .scan_in (i_dff_fmem13_scanin),
3760 .scan_out (i_dff_fmem13_scanout),
3761 .clk (l2clk),
3762 .din (fifo_wdata[9:0]),
3763 .dout (fifo_rdata13[9:0]),
3764 .en (write_fifo_a[13]),
3765 .se (se),
3766 .siclk (siclk),
3767 .soclk (soclk),
3768 .pce_ov (pce_ov),
3769 .stop (stop));
3770 msff_macro__stack_10c__width_10 i_dff_fmem12(
3771 .scan_in (i_dff_fmem12_scanin),
3772 .scan_out (i_dff_fmem12_scanout),
3773 .clk (l2clk),
3774 .din (fifo_wdata[9:0]),
3775 .dout (fifo_rdata12[9:0]),
3776 .en (write_fifo_a[12]),
3777 .se (se),
3778 .siclk (siclk),
3779 .soclk (soclk),
3780 .pce_ov (pce_ov),
3781 .stop (stop));
3782 msff_macro__stack_10c__width_10 i_dff_fmem11(
3783 .scan_in (i_dff_fmem11_scanin),
3784 .scan_out (i_dff_fmem11_scanout),
3785 .clk (l2clk),
3786 .din (fifo_wdata[9:0]),
3787 .dout (fifo_rdata11[9:0]),
3788 .en (write_fifo_a[11]),
3789 .se (se),
3790 .siclk (siclk),
3791 .soclk (soclk),
3792 .pce_ov (pce_ov),
3793 .stop (stop));
3794 msff_macro__stack_10c__width_10 i_dff_fmem10(
3795 .scan_in (i_dff_fmem10_scanin),
3796 .scan_out (i_dff_fmem10_scanout),
3797 .clk (l2clk),
3798 .din (fifo_wdata[9:0]),
3799 .dout (fifo_rdata10[9:0]),
3800 .en (write_fifo_a[10]),
3801 .se (se),
3802 .siclk (siclk),
3803 .soclk (soclk),
3804 .pce_ov (pce_ov),
3805 .stop (stop));
3806 msff_macro__stack_10c__width_10 i_dff_fmem9(
3807 .scan_in (i_dff_fmem9_scanin),
3808 .scan_out (i_dff_fmem9_scanout),
3809 .clk (l2clk),
3810 .din (fifo_wdata[9:0]),
3811 .dout (fifo_rdata9[9:0]),
3812 .en (write_fifo_a[9]),
3813 .se (se),
3814 .siclk (siclk),
3815 .soclk (soclk),
3816 .pce_ov (pce_ov),
3817 .stop (stop));
3818 msff_macro__stack_10c__width_10 i_dff_fmem8(
3819 .scan_in (i_dff_fmem8_scanin),
3820 .scan_out (i_dff_fmem8_scanout),
3821 .clk (l2clk),
3822 .din (fifo_wdata[9:0]),
3823 .dout (fifo_rdata8[9:0]),
3824 .en (write_fifo_a[8]),
3825 .se (se),
3826 .siclk (siclk),
3827 .soclk (soclk),
3828 .pce_ov (pce_ov),
3829 .stop (stop));
3830 mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10
3831 i_mux_fmem15_8(
3832 .din0 (fifo_rdata8[9:0]),
3833 .din1 (fifo_rdata9[9:0]),
3834 .din2 (fifo_rdata10[9:0]),
3835 .din3 (fifo_rdata11[9:0]),
3836 .din4 (fifo_rdata12[9:0]),
3837 .din5 (fifo_rdata13[9:0]),
3838 .din6 (fifo_rdata14[9:0]),
3839 .din7 (fifo_rdata15[9:0]),
3840 .sel (fifo_rptr_a[2:0]),
3841 .dout (fifo_rdata15_8[9:0]));
3842 msff_macro__stack_10c__width_10 i_dff_fmem7(
3843 .scan_in (i_dff_fmem7_scanin),
3844 .scan_out (i_dff_fmem7_scanout),
3845 .clk (l2clk),
3846 .din (fifo_wdata[9:0]),
3847 .dout (fifo_rdata7[9:0]),
3848 .en (write_fifo_a[7]),
3849 .se (se),
3850 .siclk (siclk),
3851 .soclk (soclk),
3852 .pce_ov (pce_ov),
3853 .stop (stop));
3854 msff_macro__stack_10c__width_10 i_dff_fmem6(
3855 .scan_in (i_dff_fmem6_scanin),
3856 .scan_out (i_dff_fmem6_scanout),
3857 .clk (l2clk),
3858 .din (fifo_wdata[9:0]),
3859 .dout (fifo_rdata6[9:0]),
3860 .en (write_fifo_a[6]),
3861 .se (se),
3862 .siclk (siclk),
3863 .soclk (soclk),
3864 .pce_ov (pce_ov),
3865 .stop (stop));
3866 msff_macro__stack_10c__width_10 i_dff_fmem5(
3867 .scan_in (i_dff_fmem5_scanin),
3868 .scan_out (i_dff_fmem5_scanout),
3869 .clk (l2clk),
3870 .din (fifo_wdata[9:0]),
3871 .dout (fifo_rdata5[9:0]),
3872 .en (write_fifo_a[5]),
3873 .se (se),
3874 .siclk (siclk),
3875 .soclk (soclk),
3876 .pce_ov (pce_ov),
3877 .stop (stop));
3878 msff_macro__stack_10c__width_10 i_dff_fmem4(
3879 .scan_in (i_dff_fmem4_scanin),
3880 .scan_out (i_dff_fmem4_scanout),
3881 .clk (l2clk),
3882 .din (fifo_wdata[9:0]),
3883 .dout (fifo_rdata4[9:0]),
3884 .en (write_fifo_a[4]),
3885 .se (se),
3886 .siclk (siclk),
3887 .soclk (soclk),
3888 .pce_ov (pce_ov),
3889 .stop (stop));
3890 msff_macro__stack_10c__width_10 i_dff_fmem3(
3891 .scan_in (i_dff_fmem3_scanin),
3892 .scan_out (i_dff_fmem3_scanout),
3893 .clk (l2clk),
3894 .din (fifo_wdata[9:0]),
3895 .dout (fifo_rdata3[9:0]),
3896 .en (write_fifo_a[3]),
3897 .se (se),
3898 .siclk (siclk),
3899 .soclk (soclk),
3900 .pce_ov (pce_ov),
3901 .stop (stop));
3902 msff_macro__stack_10c__width_10 i_dff_fmem2(
3903 .scan_in (i_dff_fmem2_scanin),
3904 .scan_out (i_dff_fmem2_scanout),
3905 .clk (l2clk),
3906 .din (fifo_wdata[9:0]),
3907 .dout (fifo_rdata2[9:0]),
3908 .en (write_fifo_a[2]),
3909 .se (se),
3910 .siclk (siclk),
3911 .soclk (soclk),
3912 .pce_ov (pce_ov),
3913 .stop (stop));
3914 msff_macro__stack_10c__width_10 i_dff_fmem1(
3915 .scan_in (i_dff_fmem1_scanin),
3916 .scan_out (i_dff_fmem1_scanout),
3917 .clk (l2clk),
3918 .din (fifo_wdata[9:0]),
3919 .dout (fifo_rdata1[9:0]),
3920 .en (write_fifo_a[1]),
3921 .se (se),
3922 .siclk (siclk),
3923 .soclk (soclk),
3924 .pce_ov (pce_ov),
3925 .stop (stop));
3926 msff_macro__stack_10c__width_10 i_dff_fmem0(
3927 .scan_in (i_dff_fmem0_scanin),
3928 .scan_out (i_dff_fmem0_scanout),
3929 .clk (l2clk),
3930 .din (fifo_wdata[9:0]),
3931 .dout (fifo_rdata0[9:0]),
3932 .en (write_fifo_a[0]),
3933 .se (se),
3934 .siclk (siclk),
3935 .soclk (soclk),
3936 .pce_ov (pce_ov),
3937 .stop (stop));
3938 mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10
3939 i_mux_fmem7_0(
3940 .din0 (fifo_rdata0[9:0]),
3941 .din1 (fifo_rdata1[9:0]),
3942 .din2 (fifo_rdata2[9:0]),
3943 .din3 (fifo_rdata3[9:0]),
3944 .din4 (fifo_rdata4[9:0]),
3945 .din5 (fifo_rdata5[9:0]),
3946 .din6 (fifo_rdata6[9:0]),
3947 .din7 (fifo_rdata7[9:0]),
3948 .sel (fifo_rptr_a[2:0]),
3949 .dout (fifo_rdata7_0[9:0]));
3950 mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10
3951 i_mux_fifo_req(
3952 .din0 (fifo_rdata7_0[9:0]),
3953 .din1 (fifo_rdata15_8[9:0]),
3954 .din2 (fifo_rdata17_16[9:0]),
3955 .din3 (fifo_wdata[9:0]),
3956 .sel ({fifo_read_select[1:0]}),
3957 .dout ({fifo_dir, fifo_req[8:0]}));
3958 mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10 i_mux_reqmux
3959 (
3960 .din0 ({qual_dir, qual_req[8:0]}),
3961 .din1 ({fifo_dir, fifo_req[8:0]}),
3962 .sel0 (current_req_sel_a),
3963 .sel1 (fifo_req_sel_a),
3964 .dout ({fq_dir, fq_req[8:0]}));
3965 msff_macro__stack_10c__width_10 i_dff_reqreg(
3966 .scan_in (i_dff_reqreg_scanin),
3967 .scan_out (i_dff_reqreg_scanout),
3968 .clk (l2clk),
3969 .din ({fq_dir, fq_req[8:0]}),
3970 .dout ({fq_dir_a_prebuf,
3971 fq_req_a[8:0]}),
3972 .en (1'b1),
3973 .se (se),
3974 .siclk (siclk),
3975 .soclk (soclk),
3976 .pce_ov (pce_ov),
3977 .stop (stop));
3978 buff_macro__dbuff_8x__stack_10c__width_1 i_buf_fqdir(
3979 .din (fq_dir_a_prebuf),
3980 .dout (fq_dir_a));
3981 nand_macro__dnand_4x__ports_3__stack_10c__width_10 i_nand3i_inmux(
3982 .din0 ({dir_a, req_a[8:0]}),
3983 .din1 ({1'b1, qfullbar_a[8:0]}),
3984 .din2 ({10 {input_req_sel_a}}),
3985 .dout ({input_dir_a_,
3986 input_req_qfullbar_a_[8:0]}));
3987 nand_macro__dnand_4x__ports_2__stack_10c__width_10 i_nand2i_inmux(
3988 .din0 ({fq_dir_a, fq_req_a[8:0]}),
3989 .din1 ({10 {input_req_sel_a_}}),
3990 .dout ({fq_input_dir_a_,
3991 fq_input_req_a_[8:0]}));
3992 nand_macro__dnand_12x__ports_2__stack_10c__width_10 i_nand2o_inmux(
3993 .din0 ({input_dir_a_,
3994 input_req_qfullbar_a_[8:0]}),
3995 .din1 ({fq_input_dir_a_,
3996 fq_input_req_a_[8:0]}),
3997 .dout ({dir, req[8:0]}));
3998 nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_atomreq(
3999 .din0 (atom_int_a[8:0]),
4000 .din1 (input_req_a[8:0]),
4001 .dout (atom_req_a_[8:0]));
4002 inv_macro__dinv_2x__stack_10c__width_9 i_inv_atomreq(
4003 .din (atom_req_a_[8:0]),
4004 .dout (atom_req_a[8:0]));
4005 mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9 i_mux_atom(
4006 .din0 (atom_req_a[8:0]),
4007 .din1 (atom_x[8:0]),
4008 .sel0 (input_req_sel_a),
4009 .dout (atom[8:0]));
4010 nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dira_inmux(
4011 .din0 (dir_a),
4012 .din1 (stall_a_),
4013 .din2 (input_req_sel_a),
4014 .dout (input_dira_stall_));
4015 nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dira_inmux(
4016 .din0 (fq_dir_a),
4017 .din1 (stall_a_),
4018 .din2 (input_req_sel_a_),
4019 .dout (fq_input_dira_stall_));
4020 nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dira_inmux(
4021 .din0 (input_dira_stall_),
4022 .din1 (fq_input_dira_stall_),
4023 .dout (dira));
4024 inv_macro__dinv_4x__stack_10c__width_1 i_inv_dir(
4025 .din ({fq_dir_a}),
4026 .dout ({fq_dir_a_}));
4027 nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dird_inmux(
4028 .din0 (dir_a_),
4029 .din1 (stall_a_),
4030 .din2 (input_req_sel_a),
4031 .dout (input_dird_stall_));
4032 nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dird_inmux(
4033 .din0 (fq_dir_a_),
4034 .din1 (stall_a_),
4035 .din2 (input_req_sel_a_),
4036 .dout (fq_input_dird_stall_));
4037 nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dird_inmux(
4038 .din0 (input_dird_stall_),
4039 .din1 (fq_input_dird_stall_),
4040 .dout (dird));
4041 inv_macro__dinv_12x__stack_10c__width_9 i_ainv_1_w9(
4042 .din ({req[8:0]}),
4043 .dout ({r8_, r7_, r6_, r5_, r4_, r3_,
4044 r2_, r1_, r0_}));
4045 and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_aand4_1_w2(
4046 .din0 ({r4_, r0_}),
4047 .din1 ({r5_, r1_}),
4048 .din2 ({r6_, r2_}),
4049 .din3 ({r7_, r3_}),
4050 .dout ({ra_or_7654_, ra_or_3210_}));
4051 and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_aand3_1_w4(
4052 .din0 ({r4_, r4_, r4_, r0_}),
4053 .din1 ({r5_, req[5], r5_, r1_}),
4054 .din2 ({r6_, dira, r3_, r2_}),
4055 .dout ({ra_or_654_, ra_d54x,
4056 ra_or_543_, ra_or_210_}));
4057 nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_anor2_1_w3(
4058 .din0 ({req[2], req[2], req[0]}),
4059 .din1 ({req[3], req[1], req[1]}),
4060 .dout ({ra_or_32_, ra_or_21_,
4061 ra_or_10_}));
4062 nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_anand2_1_w5(
4063 .din0 ({dira, dira, dira, dira,
4064 dira}),
4065 .din1 ({req[8], req[7], req[6],
4066 req[4], req[3]}),
4067 .dout ({ra_d8_, ra_d7_, ra_d6_,
4068 ra_d4_, ra_d3_}));
4069 nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_anand2_2_w1(
4070 .din0 ({dira}),
4071 .din1 ({req[0]}),
4072 .dout ({grant_asc_[0]}));
4073 inv_macro__dinv_4x__stack_10c__width_5 i_ainv_2_w5(
4074 .din ({ra_d8_, ra_d7_, ra_d6_,
4075 ra_d4_, ra_d3_}),
4076 .dout ({ra_d8, ra_d7, ra_d6, ra_d4,
4077 ra_d3}));
4078 nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_anand3_2_w8(
4079 .din0 ({ra_or_3210_, ra_or_3210_,
4080 ra_or_210_, ra_or_10_, ra_or_10_, r0_, ra_or_10_, r0_}),
4081 .din1 ({ra_or_7654_, ra_or_654_,
4082 ra_or_543_, ra_or_32_, ra_or_32_, ra_or_21_, req[2], req[1]}),
4083 .din2 ({ra_d8, ra_d7, ra_d6, ra_d54x,
4084 ra_d4, ra_d3, dira, dira}),
4085 .dout (grant_asc_[8:1]));
4086 and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_dand4_1_w2(
4087 .din0 ({rd4_, rd0_}),
4088 .din1 ({rd5_, rd1_}),
4089 .din2 ({rd6_, rd2_}),
4090 .din3 ({rd7_, rd3_}),
4091 .dout ({rd_or_7654_, rd_or_3210_}));
4092 and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_dand3_1_w4(
4093 .din0 ({rd4_, rd4_, rd4_, rd0_}),
4094 .din1 ({rd5_, reqd[5], rd5_, rd1_}),
4095 .din2 ({rd6_, dird, rd3_, rd2_}),
4096 .dout ({rd_or_654_, rd_d54x,
4097 rd_or_543_, rd_or_210_}));
4098 nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_dnor2_1_w3(
4099 .din0 ({reqd[2], reqd[2], reqd[0]}),
4100 .din1 ({reqd[3], reqd[1], reqd[1]}),
4101 .dout ({rd_or_32_, rd_or_21_,
4102 rd_or_10_}));
4103 nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_dnand2_1_w5(
4104 .din0 ({dird, dird, dird, dird,
4105 dird}),
4106 .din1 ({reqd[8], reqd[7], reqd[6],
4107 reqd[4], reqd[3]}),
4108 .dout ({rd_d8_, rd_d7_, rd_d6_,
4109 rd_d4_, rd_d3_}));
4110 nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_dnand2_2_w1(
4111 .din0 ({dird}),
4112 .din1 ({reqd[0]}),
4113 .dout ({grant_dsc_[0]}));
4114 inv_macro__dinv_4x__stack_10c__width_5 i_dinv_2_w5(
4115 .din ({rd_d8_, rd_d7_, rd_d6_,
4116 rd_d4_, rd_d3_}),
4117 .dout ({rd_d8, rd_d7, rd_d6, rd_d4,
4118 rd_d3}));
4119 nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_dnand3_2_w8(
4120 .din0 ({rd_or_3210_, rd_or_3210_,
4121 rd_or_210_, rd_or_10_, rd_or_10_, rd0_, rd_or_10_, rd0_}),
4122 .din1 ({rd_or_7654_, rd_or_654_,
4123 rd_or_543_, rd_or_32_, rd_or_32_, rd_or_21_, reqd[2], reqd[1]}),
4124 .din2 ({rd_d8, rd_d7, rd_d6, rd_d54x,
4125 rd_d4, rd_d3, dird, dird}),
4126 .dout (grant_dsc_[8:1]));
4127 nand_macro__dnand_32x__ports_2__stack_10c__width_9 i_nand_dirmux(
4128 .din0 (grant_asc_[8:0]),
4129 .din1 (grant_des_[8:0]),
4130 .dout (grant_int_a[8:0]));
4131 buff_macro__dbuff_48x__stack_10c__width_9 i_buf_src_grant(
4132 .din (grant_int_a[8:0]),
4133 .dout ({arb_src8_grant_a,
4134 arb_src7_grant_a, arb_src6_grant_a, arb_src5_grant_a,
4135 arb_src4_grant_a, arb_src3_grant_a, arb_src2_grant_a,
4136 arb_src1_grant_a, arb_src0_grant_a}));
4137 buff_macro__dbuff_32x__stack_10c__width_9 i_buf_queue_grant(
4138 .din (grant_int_a[8:0]),
4139 .dout (arb_grant_a[8:0]));
4140 buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9 i_bufmin_grant(
4141 .din (grant_int_a[8:0]),
4142 .dout (grant_a[8:0]));
4143 inv_macro__dinv_8x__stack_10c__width_9 i_inv_grant_a_x(
4144 .din (grant_int_a[8:0]),
4145 .dout (grant_a_[8:0]));
4146 nand_macro__dnand_1x__ports_3__stack_10c__width_9 i_nand_set_qualatom(
4147 .din0 (atom[8:0]),
4148 .din1 (grant_int_a[8:0]),
4149 .din2 (qual_atomic_d1_[8:0]),
4150 .dout (set_qual_atomic[8:0]));
4151 nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_hold_qualatom(
4152 .din0 (grant_a_[8:0]),
4153 .din1 (qual_atomic_d1[8:0]),
4154 .dout (hold_qual_atomic[8:0]));
4155 nand_macro__dnand_1x__ports_2__stack_10c__width_10 i_nand_qual_atomic(
4156 .din0 ({stall_q_d1,
4157 set_qual_atomic[8:0]}),
4158 .din1 ({1'b1, hold_qual_atomic[8:0]}),
4159 .dout ({stall_q_d1_,
4160 qual_atomic[8:0]}));
4161 msff_macro__dmsff_8x__stack_10c__stack_10c__width_10
4162 i_dff_qual_atomic_d1(
4163 .scan_in (i_dff_qual_atomic_d1_scanin),
4164 .scan_out (i_dff_qual_atomic_d1_scanout),
4165 .clk (l2clk),
4166 .din ({stall_q_d1_,
4167 qual_atomic[8:0]}),
4168 .dout ({stall_a_,
4169 qual_atomic_d1[8:0]}),
4170 .en (1'b1),
4171 .se (se),
4172 .siclk (siclk),
4173 .soclk (soclk),
4174 .pce_ov (pce_ov),
4175 .stop (stop));
4176 inv_macro__dinv_2x__stack_10c__width_9 i_inv_qual_atomic_d1_x(
4177 .din (qual_atomic_d1[8:0]),
4178 .dout (qual_atomic_d1_[8:0]));
4179 nand_macro__dnand_2x__ports_2__stack_10c__width_9 i_nand_req_nogrant(
4180 .din0 (req[8:0]),
4181 .din1 (grant_a_[8:0]),
4182 .dout (req_nogrant_[8:0]));
4183 nand_macro__dnand_4x__ports_3__stack_10c__width_9 i_nand_set_qualatom2(
4184 .din0 (atom[8:0]),
4185 .din1 (grant_int_a[8:0]),
4186 .din2 (qual_atomic_d1_[8:0]),
4187 .dout (atom_2pass_[8:0]));
4188 nand_macro__dnand_8x__ports_2__stack_10c__width_9 i_nand_qual_req(
4189 .din0 (req_nogrant_[8:0]),
4190 .din1 (atom_2pass_[8:0]),
4191 .dout (qual_req[8:0]));
4192 nor_macro__dnor_4x__ports_3__stack_10c__width_6 i_nor_rpe(
4193 .din0 ({qual_req[8], qual_req[5],
4194 qual_req[2], grant_int_a[8], grant_int_a[5], grant_int_a[2]}),
4195 .din1 ({qual_req[7], qual_req[4],
4196 qual_req[1], grant_int_a[7], grant_int_a[4], grant_int_a[1]}),
4197 .din2 ({qual_req[6], qual_req[3],
4198 qual_req[0], grant_int_a[6], grant_int_a[3], grant_int_a[0]}),
4199 .dout ({qreq_8_6_, qreq_5_3_,
4200 qreq_2_0_, drdy_8_6, drdy_5_3, drdy_2_0}));
4201 nand_macro__dnand_8x__ports_3__stack_10c__width_2 i_nand_rpe(
4202 .din0 ({qreq_8_6_, drdy_8_6}),
4203 .din1 ({qreq_5_3_, drdy_5_3}),
4204 .din2 ({qreq_2_0_, drdy_2_0}),
4205 .dout ({req_pkt_empty_a_, data_rdy_a})
4206 );
4207 inv_macro__dinv_32x__stack_10c__width_1 i_inv_rpe(
4208 .din (req_pkt_empty_a_),
4209 .dout (req_pkt_empty_a));
4210 buff_macro__dbuff_32x__stack_none__width_1 buff_drdy(
4211 .din (data_rdy_a),
4212 .dout (ccx_dest_data_rdy_a));
4213 nand_macro__dnand_1x__ports_3__stack_10c__width_3 i_nand_atom(
4214 .din0 ({atom_2pass_[8],
4215 atom_2pass_[5], atom_2pass_[2]}),
4216 .din1 ({atom_2pass_[7],
4217 atom_2pass_[4], atom_2pass_[1]}),
4218 .din2 ({atom_2pass_[6],
4219 atom_2pass_[3], atom_2pass_[0]}),
4220 .dout ({atom_8_6, atom_5_3, atom_2_0})
4221 );
4222 nor_macro__dnor_4x__ports_3__stack_10c__width_1 i_nor_atom(
4223 .din0 (atom_8_6),
4224 .din1 (atom_5_3),
4225 .din2 (atom_2_0),
4226 .dout (ccx_dest_atom_a_));
4227 inv_macro__dinv_32x__stack_10c__width_1 i_inv_dest_atom(
4228 .din (ccx_dest_atom_a_),
4229 .dout (ccx_dest_atom_a));
4230 buff_macro__dbuff_8x__stack_none__width_1 buff_scanout(
4231 .din (scan_out_prebuf),
4232 .dout (scan_out));
4233endmodule
4234
4235`ifdef FPGA
4236`else
4237
4238`celldefine
4239module inv_macro__dinv_32x__stack_10c__width_1(din, dout);
4240
4241 input [0:0] din;
4242 output [0:0] dout;
4243
4244 inv #(1) d0_0(
4245 .in (din[0]),
4246 .out (dout[0]));
4247endmodule
4248`endcelldefine
4249
4250module msff_macro__dmsff_8x__stack_10c__stack_10c__width_10(din, clk, en, se,
4251 scan_in, siclk, soclk, pce_ov, stop, dout, scan_out);
4252
4253 input [9:0] din;
4254 input clk;
4255 input en;
4256 input se;
4257 input scan_in;
4258 input siclk;
4259 input soclk;
4260 input pce_ov;
4261 input stop;
4262 output [9:0] dout;
4263 output scan_out;
4264
4265 wire l1clk;
4266 wire siclk_out;
4267 wire soclk_out;
4268 wire [8:0] so;
4269
4270 cl_dp1_l1hdr_8x c0_0(
4271 .l2clk (clk),
4272 .pce (en),
4273 .aclk (siclk),
4274 .bclk (soclk),
4275 .l1clk (l1clk),
4276 .se (se),
4277 .pce_ov (pce_ov),
4278 .stop (stop),
4279 .siclk_out (siclk_out),
4280 .soclk_out (soclk_out));
4281 dff #(10) d0_0(
4282 .l1clk (l1clk),
4283 .siclk (siclk_out),
4284 .soclk (soclk_out),
4285 .d (din[9:0]),
4286 .si ({scan_in, so[8:0]}),
4287 .so ({so[8:0], scan_out}),
4288 .q (dout[9:0]));
4289endmodule
4290
4291`celldefine
4292module nor_macro__dnor_4x__ports_3__stack_10c__width_1(din0, din1, din2, dout);
4293
4294 input [0:0] din0;
4295 input [0:0] din1;
4296 input [0:0] din2;
4297 output [0:0] dout;
4298
4299 nor3 #(1) d0_0(
4300 .in0 (din0[0]),
4301 .in1 (din1[0]),
4302 .in2 (din2[0]),
4303 .out (dout[0]));
4304endmodule
4305`endcelldefine
4306
4307`celldefine
4308module inv_macro__dinv_32x__stack_10c__width_1(din, dout);
4309
4310 input [0:0] din;
4311 output [0:0] dout;
4312
4313 inv #(1) d0_0(
4314 .in (din[0]),
4315 .out (dout[0]));
4316endmodule
4317`endcelldefine
4318
4319`endif // ifdef FPGA
4320
4321
4322
4323`endif // `ifdef FPGA