Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / ccx / rtl / ccx_arc_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: ccx_arc_ctl.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_arc_ctl (
37 grant_a,
38 req_pkt_empty_a,
39 direction,
40 write_fifo_a,
41 fifo_rptr_a,
42 fifo_read_select,
43 input_req_sel_a,
44 input_req_sel_a_,
45 fifo_req_sel_a,
46 qfullbar_a,
47 atom_x,
48 arb_qsel0_a,
49 arb_qsel1_a,
50 arb_shift_a,
51 arb_q0_holdbar_a,
52 atom_a,
53 req_a,
54 tcu_scan_en,
55 l2clk,
56 scan_in,
57 tcu_pce_ov,
58 ccx_aclk,
59 ccx_bclk,
60 scan_out);
61wire pce_ov;
62wire stop;
63wire siclk;
64wire soclk;
65wire se;
66wire l1clk;
67wire [8:0] input_req_a;
68wire [8:0] qfull_a;
69wire inreg_req_vld_a;
70wire wr_en_a;
71wire fifo_empty_a;
72wire wptr_eq17;
73wire [4:0] wptr_a;
74wire [4:0] wptr_next;
75wire dff_wptr_scanin;
76wire dff_wptr_scanout;
77wire rd_en_a;
78wire rptr_eq17;
79wire [4:0] rptr_a;
80wire [4:0] rptr_next;
81wire dff_rptr_scanin;
82wire dff_rptr_scanout;
83wire fifo_bypass_a;
84wire [17:0] wptr_dcd_a;
85wire input_req_sel_q;
86wire input_req_sel_q_;
87wire dff_inreg_select_scanin;
88wire dff_inreg_select_scanout;
89wire dff_inreg_select__scanin;
90wire dff_inreg_select__scanout;
91wire direction_in;
92wire dff_dir_scanin;
93wire dff_dir_scanout;
94wire q0_scanin;
95wire q0_scanout;
96wire q1_scanin;
97wire q1_scanout;
98wire q2_scanin;
99wire q2_scanout;
100wire q3_scanin;
101wire q3_scanout;
102wire q4_scanin;
103wire q4_scanout;
104wire q5_scanin;
105wire q5_scanout;
106wire q6_scanin;
107wire q6_scanout;
108wire q7_scanin;
109wire q7_scanout;
110wire q8_scanin;
111wire q8_scanout;
112wire spares_scanin;
113wire spares_scanout;
114
115
116// input from arbdp
117input [8:0] grant_a; // one-hot grant bit for each source
118input req_pkt_empty_a; // request register is empty
119
120// Interface with arbdp
121output direction; // PE direction controls
122output [17:0] write_fifo_a; // write pointer
123output [2:0] fifo_rptr_a; // read pointer
124output [1:0] fifo_read_select; // read select
125output input_req_sel_a; // select for input mux
126output input_req_sel_a_; // select for input mux
127output fifo_req_sel_a; // select for request mux
128//output current_req_sel_a; // select for request mux
129output [8:0] qfullbar_a; // src queue full indicator
130output [8:0] atom_x; // atomic request indicator from srq
131
132
133//Outputs to datapaths
134output [8:0] arb_qsel0_a; // queue0 select
135output [8:0] arb_qsel1_a; // queue1 select
136output [8:0] arb_shift_a; // queue shift
137output [8:0] arb_q0_holdbar_a; // q0 hold
138
139
140//Inputs from sources
141input [8:0] atom_a;
142input [8:0] req_a;
143
144//Globals
145input tcu_scan_en ;
146input l2clk;
147input scan_in;
148input tcu_pce_ov; // scan signals
149input ccx_aclk;
150input ccx_bclk;
151output scan_out;
152
153// scan renames
154assign pce_ov = tcu_pce_ov;
155assign stop = 1'b0;
156assign siclk = ccx_aclk;
157assign soclk = ccx_bclk;
158assign se = tcu_scan_en ;
159// end scan
160
161//////////////////////////////
162// Clock header
163//////////////////////////////
164ccx_arc_ctl_l1clkhdr_ctl_macro clkgen
165 (
166 .l2clk (l2clk),
167 .l1en (1'b1 ),
168 .l1clk (l1clk),
169 .pce_ov(pce_ov),
170 .stop(stop),
171 .se(se)
172 );
173//////////////////////////////////////////////////////////////////////
174// DATAPATH STRUCTURE
175//
176// req_q
177// |
178// |
179// -------------
180// | input reg |
181// -------------
182// |
183// --------------------------------------------|---------
184// | | |
185// | ------------ | |
186// | | | v |
187// v v | ------------- |
188// ---------------- | | FIFO | |
189// \ input mux / | | | |
190// -------------- | | | |
191// | | | | |
192// ---------- | ------------- |
193// | | | | |
194// v v | v v
195// ------- ------- | ----------------
196// | ASC || DESC | | \ bypass mux /<--------fifo_bypass
197// | P E || P E | | --------------
198// | || | | |
199// | || | | -------------- |
200// ------- ------- | | | |
201// | | | | v v
202// v v | | ----------------
203// ---------------- | | \ request mux / <--------current_req_sel
204// \ dir mux / | | \ / <--------fifo_req_sel
205// -------------- | | ------------
206// | | | |
207// |-----grant-----|----- v
208// | qual | -------------
209// | | | request reg |
210// | | -------------
211// | | |
212// v | |
213// grant | v
214// -----------------------
215//
216//////////////////////////////////////////////////////////////////////
217// PIPELINE
218// Consider case where REQ A has 3 requests, followed by REQ B which has 1
219// request and REQ C.
220//
221//
222// input reg |REQ A|REQ B| |REQ C| |REQ D|REQ E| | |
223// | | | | | | | | | |
224// | | | | | | | | | |
225//--------------------------------------------------------------------------
226// input mux |IN |REQ |REQ |REQ |REQ |IN |REQ |REQ | |
227// | | | | | | | | | |
228// | | | | | | | | | |
229//--------------------------------------------------------------------------
230// FIFO | | |REQ B| | | | |REQ E| |
231// | | | | | | | | | |
232// | | | | | | | | | |
233//--------------------------------------------------------------------------
234// request mux |REQ |REQ |FIFO |BYP | |REQ |REQ |FIFO | |
235// | | | | | | | | | |
236// | | | | | | | | | |
237//--------------------------------------------------------------------------
238// request reg | |REQ A|REQ A|REQ B|REQ C| |REQ D|REQ D|REQ E|
239// | | | | | | | | | |
240// | | | | | | | | | |
241//--------------------------------------------------------------------------
242// grant | A | A | A | B |C | D | D | D | E |
243// | | | | | | | | | |
244// | | | | | | | | | |
245//--------------------------------------------------------------------------
246//
247
248
249// Do not accept a request for a queue that is full.
250assign input_req_a[8:0] = req_a[8:0] & ~qfull_a[8:0];
251// see if any valid requests in flopped input request packet.
252assign inreg_req_vld_a = |(input_req_a[8:0]);
253
254//
255
256assign wr_en_a = ~input_req_sel_a & inreg_req_vld_a &
257 (~req_pkt_empty_a | ~fifo_empty_a);
258
259
260// 18 entry fifo must wrap to zero when counter equals 17.
261assign wptr_eq17 = (wptr_a[4:0] == 5'b10001);
262assign wptr_next[4:0] = (wr_en_a ? (wptr_eq17 ? 5'b00000 : wptr_a[4:0] + 5'b00001) : wptr_a[4:0]);
263
264
265ccx_arc_ctl_msff_ctl_macro__width_5 dff_wptr
266(
267 .scan_in(dff_wptr_scanin),
268 .scan_out(dff_wptr_scanout),
269 .din (wptr_next[4:0]),
270 .dout (wptr_a[4:0]),
271 .l1clk (l1clk),
272 .siclk(siclk),
273 .soclk(soclk)
274 );
275
276//assign rd_en_a = req_pkt_empty_a & ~fifo_empty_a & ~input_req_sel_a;
277assign rd_en_a = req_pkt_empty_a & ~fifo_empty_a;
278
279// 18 entry fifo must wrap to zero when counter equals 17.
280assign rptr_eq17 = (rptr_a[4:0] == 5'b10001);
281assign rptr_next[4:0] = (rd_en_a ? (rptr_eq17 ? 5'b00000 : rptr_a[4:0] + 5'b00001) : rptr_a[4:0]);
282
283ccx_arc_ctl_msff_ctl_macro__width_5 dff_rptr
284(
285 .scan_in(dff_rptr_scanin),
286 .scan_out(dff_rptr_scanout),
287 .din (rptr_next[4:0]),
288 .dout (rptr_a[4:0]),
289 .l1clk (l1clk),
290 .siclk(siclk),
291 .soclk(soclk)
292 );
293
294// Bits 2:0 of rdptr are used for the first level decode of the FIFO muxes
295// The final FIFO mux is a four input mux with the following select
296// assignments.
297// sel[1:0] - input
298// 00 - muxed result of entries 7:0
299// 01 - muxed result of entries 15:8
300// 10 - muxed result of entries 17:16
301// 11 - bypass data
302assign fifo_rptr_a[2:0] = rptr_a[2:0];
303assign fifo_read_select[1:0] = rptr_a[4:3] | {2{fifo_bypass_a}};
304
305assign fifo_empty_a = (rptr_a[4:0] == wptr_a[4:0]);
306
307
308// Bypass valid input requests around the FIFO when it's empty.
309// FIFO gets bypassed under following condition:
310// 1. Request register was selected by input mux,
311// 2. FIFO is empty
312// 3. Input register is valid
313// 4. Request packet goes empty.
314// Following equation does not fully qualify the bypass condition.
315//
316assign fifo_bypass_a = fifo_empty_a & inreg_req_vld_a;
317
318// decode write pointer
319assign wptr_dcd_a[0] = (~wptr_a[4] & ~wptr_a[3] & ~wptr_a[2] & ~wptr_a[1] & ~wptr_a[0]);
320assign wptr_dcd_a[1] = (~wptr_a[4] & ~wptr_a[3] & ~wptr_a[2] & ~wptr_a[1] & wptr_a[0]);
321assign wptr_dcd_a[2] = (~wptr_a[4] & ~wptr_a[3] & ~wptr_a[2] & wptr_a[1] & ~wptr_a[0]);
322assign wptr_dcd_a[3] = (~wptr_a[4] & ~wptr_a[3] & ~wptr_a[2] & wptr_a[1] & wptr_a[0]);
323assign wptr_dcd_a[4] = (~wptr_a[4] & ~wptr_a[3] & wptr_a[2] & ~wptr_a[1] & ~wptr_a[0]);
324assign wptr_dcd_a[5] = (~wptr_a[4] & ~wptr_a[3] & wptr_a[2] & ~wptr_a[1] & wptr_a[0]);
325assign wptr_dcd_a[6] = (~wptr_a[4] & ~wptr_a[3] & wptr_a[2] & wptr_a[1] & ~wptr_a[0]);
326assign wptr_dcd_a[7] = (~wptr_a[4] & ~wptr_a[3] & wptr_a[2] & wptr_a[1] & wptr_a[0]);
327assign wptr_dcd_a[8] = (~wptr_a[4] & wptr_a[3] & ~wptr_a[2] & ~wptr_a[1] & ~wptr_a[0]);
328assign wptr_dcd_a[9] = (~wptr_a[4] & wptr_a[3] & ~wptr_a[2] & ~wptr_a[1] & wptr_a[0]);
329assign wptr_dcd_a[10] = (~wptr_a[4] & wptr_a[3] & ~wptr_a[2] & wptr_a[1] & ~wptr_a[0]);
330assign wptr_dcd_a[11] = (~wptr_a[4] & wptr_a[3] & ~wptr_a[2] & wptr_a[1] & wptr_a[0]);
331assign wptr_dcd_a[12] = (~wptr_a[4] & wptr_a[3] & wptr_a[2] & ~wptr_a[1] & ~wptr_a[0]);
332assign wptr_dcd_a[13] = (~wptr_a[4] & wptr_a[3] & wptr_a[2] & ~wptr_a[1] & wptr_a[0]);
333assign wptr_dcd_a[14] = (~wptr_a[4] & wptr_a[3] & wptr_a[2] & wptr_a[1] & ~wptr_a[0]);
334assign wptr_dcd_a[15] = (~wptr_a[4] & wptr_a[3] & wptr_a[2] & wptr_a[1] & wptr_a[0]);
335assign wptr_dcd_a[16] = ( wptr_a[4] & ~wptr_a[3] & ~wptr_a[2] & ~wptr_a[1] & ~wptr_a[0]);
336assign wptr_dcd_a[17] = ( wptr_a[4] & ~wptr_a[3] & ~wptr_a[2] & ~wptr_a[1] & wptr_a[0]);
337
338// Qualify with the wr_en_a signal. This isn't functionally necessary, but
339// it does keep the clocks from toggling unless the FIFO needs to be written.
340//assign write_fifo_a[17:0] = wptr_dcd_a[17:0] & {18{wr_en_a}};
341// write enable timing is very tight.
342assign write_fifo_a[17:0] = wptr_dcd_a[17:0];
343
344
345// END FIFO LOGIC
346
347// MUX CONTROLS
348
349
350assign input_req_sel_q = (req_pkt_empty_a & fifo_empty_a & ~inreg_req_vld_a) |
351 (req_pkt_empty_a & input_req_sel_a);
352
353
354assign fifo_req_sel_a = req_pkt_empty_a & (~fifo_empty_a | (inreg_req_vld_a & ~input_req_sel_a));
355
356assign input_req_sel_q_ = ~input_req_sel_q;
357
358ccx_arc_ctl_msff_ctl_macro dff_inreg_select
359 (
360 .scan_in(dff_inreg_select_scanin),
361 .scan_out(dff_inreg_select_scanout),
362 .din (input_req_sel_q),
363 .dout (input_req_sel_a),
364 .l1clk (l1clk),
365 .siclk(siclk),
366 .soclk(soclk)
367 );
368
369ccx_arc_ctl_msff_ctl_macro dff_inreg_select_x
370 (
371 .scan_in(dff_inreg_select__scanin),
372 .scan_out(dff_inreg_select__scanout),
373 .din (input_req_sel_q_),
374 .dout (input_req_sel_a_),
375 .l1clk (l1clk),
376 .siclk(siclk),
377 .soclk(soclk)
378 );
379
380
381
382//assign direction_in = (current_req_sel_a ~^ direction);
383assign direction_in = ~direction;
384
385ccx_arc_ctl_msff_ctl_macro dff_dir
386 (
387 .scan_in(dff_dir_scanin),
388 .scan_out(dff_dir_scanout),
389 .din (direction_in),
390 .dout (direction),
391 .l1clk (l1clk),
392 .siclk(siclk),
393 .soclk(soclk)
394 );
395
396
397//assign dira = ~stall_a & direction;
398//assign dird = ~stall_a & ~direction;
399
400
401// ARB SRC Q LOGIC
402///*
403// ccx_srq_ctl AUTO_TEMPLATE(
404// // Outputs
405// .scan_in(AUTO_TEMPLATE_scanin),
406// .scan_out(AUTO_TEMPLATE_scanout),
407// .qfull_a (qfull_a[@]),
408// .qfullbar_a (qfullbar_a[@]),
409// .qsel0_a (arb_qsel0_a[@]),
410// .qsel1_a (arb_qsel1_a[@]),
411// .shift_a (arb_shift_a[@]),
412// .q0_holdbar_a (arb_q0_holdbar_a[@]),
413// .atom_x(atom_x[@]),
414// // Inputs
415// .req_q (src@_arb_req_q),
416// .atom_q (src@_arb_atom_q),
417// .grant_a (grant_a[@]));
418// */
419
420ccx_srq_ctl q0 (
421/*AUTOINST*/
422 // Outputs
423 .scan_in(q0_scanin),
424 .scan_out(q0_scanout),
425 .qfull_a (qfull_a[0]), // Templated
426 .qfullbar_a (qfullbar_a[0]), // Templated
427 .qsel0_a (arb_qsel0_a[0]), // Templated
428 .qsel1_a (arb_qsel1_a[0]), // Templated
429 .shift_a (arb_shift_a[0]), // Templated
430 .q0_holdbar_a (arb_q0_holdbar_a[0]), // Templated
431 .atom_x (atom_x[0]), // Templated
432 // Inputs
433 .req_a (req_a[0]), // Templated
434 .atom_a (atom_a[0]), // Templated
435 .grant_a (grant_a[0]), // Templated
436 .l1clk (l1clk),
437 .ccx_aclk(ccx_aclk),
438 .ccx_bclk(ccx_bclk));
439
440ccx_srq_ctl q1 (
441/*AUTOINST*/
442 // Outputs
443 .scan_in(q1_scanin),
444 .scan_out(q1_scanout),
445 .qfull_a (qfull_a[1]), // Templated
446 .qfullbar_a (qfullbar_a[1]), // Templated
447 .qsel0_a (arb_qsel0_a[1]), // Templated
448 .qsel1_a (arb_qsel1_a[1]), // Templated
449 .shift_a (arb_shift_a[1]), // Templated
450 .q0_holdbar_a (arb_q0_holdbar_a[1]), // Templated
451 .atom_x (atom_x[1]), // Templated
452 // Inputs
453 .req_a (req_a[1]), // Templated
454 .atom_a (atom_a[1]), // Templated
455 .grant_a (grant_a[1]), // Templated
456 .l1clk (l1clk),
457 .ccx_aclk(ccx_aclk),
458 .ccx_bclk(ccx_bclk));
459
460ccx_srq_ctl q2 (
461/*AUTOINST*/
462 // Outputs
463 .scan_in(q2_scanin),
464 .scan_out(q2_scanout),
465 .qfull_a (qfull_a[2]), // Templated
466 .qfullbar_a (qfullbar_a[2]), // Templated
467 .qsel0_a (arb_qsel0_a[2]), // Templated
468 .qsel1_a (arb_qsel1_a[2]), // Templated
469 .shift_a (arb_shift_a[2]), // Templated
470 .q0_holdbar_a (arb_q0_holdbar_a[2]), // Templated
471 .atom_x (atom_x[2]), // Templated
472 // Inputs
473 .req_a (req_a[2]), // Templated
474 .atom_a (atom_a[2]), // Templated
475 .grant_a (grant_a[2]), // Templated
476 .l1clk (l1clk),
477 .ccx_aclk(ccx_aclk),
478 .ccx_bclk(ccx_bclk));
479
480ccx_srq_ctl q3 (
481/*AUTOINST*/
482 // Outputs
483 .scan_in(q3_scanin),
484 .scan_out(q3_scanout),
485 .qfull_a (qfull_a[3]), // Templated
486 .qfullbar_a (qfullbar_a[3]), // Templated
487 .qsel0_a (arb_qsel0_a[3]), // Templated
488 .qsel1_a (arb_qsel1_a[3]), // Templated
489 .shift_a (arb_shift_a[3]), // Templated
490 .q0_holdbar_a (arb_q0_holdbar_a[3]), // Templated
491 .atom_x (atom_x[3]), // Templated
492 // Inputs
493 .req_a (req_a[3]), // Templated
494 .atom_a (atom_a[3]), // Templated
495 .grant_a (grant_a[3]), // Templated
496 .l1clk (l1clk),
497 .ccx_aclk(ccx_aclk),
498 .ccx_bclk(ccx_bclk));
499
500ccx_srq_ctl q4 (
501/*AUTOINST*/
502 // Outputs
503 .scan_in(q4_scanin),
504 .scan_out(q4_scanout),
505 .qfull_a (qfull_a[4]), // Templated
506 .qfullbar_a (qfullbar_a[4]), // Templated
507 .qsel0_a (arb_qsel0_a[4]), // Templated
508 .qsel1_a (arb_qsel1_a[4]), // Templated
509 .shift_a (arb_shift_a[4]), // Templated
510 .q0_holdbar_a (arb_q0_holdbar_a[4]), // Templated
511 .atom_x (atom_x[4]), // Templated
512 // Inputs
513 .req_a (req_a[4]), // Templated
514 .atom_a (atom_a[4]), // Templated
515 .grant_a (grant_a[4]), // Templated
516 .l1clk (l1clk),
517 .ccx_aclk(ccx_aclk),
518 .ccx_bclk(ccx_bclk));
519
520ccx_srq_ctl q5 (
521/*AUTOINST*/
522 // Outputs
523 .scan_in(q5_scanin),
524 .scan_out(q5_scanout),
525 .qfull_a (qfull_a[5]), // Templated
526 .qfullbar_a (qfullbar_a[5]), // Templated
527 .qsel0_a (arb_qsel0_a[5]), // Templated
528 .qsel1_a (arb_qsel1_a[5]), // Templated
529 .shift_a (arb_shift_a[5]), // Templated
530 .q0_holdbar_a (arb_q0_holdbar_a[5]), // Templated
531 .atom_x (atom_x[5]), // Templated
532 // Inputs
533 .req_a (req_a[5]), // Templated
534 .atom_a (atom_a[5]), // Templated
535 .grant_a (grant_a[5]), // Templated
536 .l1clk (l1clk),
537 .ccx_aclk(ccx_aclk),
538 .ccx_bclk(ccx_bclk));
539
540ccx_srq_ctl q6 (
541/*AUTOINST*/
542 // Outputs
543 .scan_in(q6_scanin),
544 .scan_out(q6_scanout),
545 .qfull_a (qfull_a[6]), // Templated
546 .qfullbar_a (qfullbar_a[6]), // Templated
547 .qsel0_a (arb_qsel0_a[6]), // Templated
548 .qsel1_a (arb_qsel1_a[6]), // Templated
549 .shift_a (arb_shift_a[6]), // Templated
550 .q0_holdbar_a (arb_q0_holdbar_a[6]), // Templated
551 .atom_x (atom_x[6]), // Templated
552 // Inputs
553 .req_a (req_a[6]), // Templated
554 .atom_a (atom_a[6]), // Templated
555 .grant_a (grant_a[6]), // Templated
556 .l1clk (l1clk),
557 .ccx_aclk(ccx_aclk),
558 .ccx_bclk(ccx_bclk));
559
560ccx_srq_ctl q7 (
561/*AUTOINST*/
562 // Outputs
563 .scan_in(q7_scanin),
564 .scan_out(q7_scanout),
565 .qfull_a (qfull_a[7]), // Templated
566 .qfullbar_a (qfullbar_a[7]), // Templated
567 .qsel0_a (arb_qsel0_a[7]), // Templated
568 .qsel1_a (arb_qsel1_a[7]), // Templated
569 .shift_a (arb_shift_a[7]), // Templated
570 .q0_holdbar_a (arb_q0_holdbar_a[7]), // Templated
571 .atom_x (atom_x[7]), // Templated
572 // Inputs
573 .req_a (req_a[7]), // Templated
574 .atom_a (atom_a[7]), // Templated
575 .grant_a (grant_a[7]), // Templated
576 .l1clk (l1clk),
577 .ccx_aclk(ccx_aclk),
578 .ccx_bclk(ccx_bclk));
579
580ccx_srq_ctl q8 (
581/*AUTOINST*/
582 // Outputs
583 .scan_in(q8_scanin),
584 .scan_out(q8_scanout),
585 .qfull_a (qfull_a[8]), // Templated
586 .qfullbar_a (qfullbar_a[8]), // Templated
587 .qsel0_a (arb_qsel0_a[8]), // Templated
588 .qsel1_a (arb_qsel1_a[8]), // Templated
589 .shift_a (arb_shift_a[8]), // Templated
590 .q0_holdbar_a (arb_q0_holdbar_a[8]), // Templated
591 .atom_x (atom_x[8]), // Templated
592 // Inputs
593 .req_a (req_a[8]), // Templated
594 .atom_a (atom_a[8]), // Templated
595 .grant_a (grant_a[8]), // Templated
596 .l1clk (l1clk),
597 .ccx_aclk(ccx_aclk),
598 .ccx_bclk(ccx_bclk));
599
600
601////////////////////////////////////////////////////////
602// SPARE CELLS
603////////////////////////////////////////////////////////
604ccx_arc_ctl_spare_ctl_macro__num_10 spares (
605 .scan_in(spares_scanin),
606 .scan_out(spares_scanout),
607 .l1clk (l1clk),
608 .siclk(siclk),
609 .soclk(soclk)
610);
611////////////////////////////////////////////////////////
612
613// fixscan start:
614assign dff_wptr_scanin = scan_in ;
615assign dff_rptr_scanin = dff_wptr_scanout ;
616assign dff_inreg_select_scanin = dff_rptr_scanout ;
617assign dff_inreg_select__scanin = dff_inreg_select_scanout ;
618assign dff_dir_scanin = dff_inreg_select__scanout;
619assign q0_scanin = dff_dir_scanout ;
620assign q1_scanin = q0_scanout ;
621assign q2_scanin = q1_scanout ;
622assign q3_scanin = q2_scanout ;
623assign q4_scanin = q3_scanout ;
624assign q5_scanin = q4_scanout ;
625assign q6_scanin = q5_scanout ;
626assign q7_scanin = q6_scanout ;
627assign q8_scanin = q7_scanout ;
628assign spares_scanin = q8_scanout ;
629assign scan_out = spares_scanout ;
630// fixscan end:
631endmodule
632
633// Local Variables:
634// verilog-library-directories:("." "v")
635// End:
636
637
638
639
640
641
642// any PARAMS parms go into naming of macro
643
644module ccx_arc_ctl_l1clkhdr_ctl_macro (
645 l2clk,
646 l1en,
647 pce_ov,
648 stop,
649 se,
650 l1clk);
651
652
653 input l2clk;
654 input l1en;
655 input pce_ov;
656 input stop;
657 input se;
658 output l1clk;
659
660
661
662
663
664cl_sc1_l1hdr_8x c_0 (
665
666
667 .l2clk(l2clk),
668 .pce(l1en),
669 .l1clk(l1clk),
670 .se(se),
671 .pce_ov(pce_ov),
672 .stop(stop)
673);
674
675
676
677endmodule
678
679
680
681
682
683
684
685
686
687
688
689
690
691// any PARAMS parms go into naming of macro
692
693module ccx_arc_ctl_msff_ctl_macro__width_5 (
694 din,
695 l1clk,
696 scan_in,
697 siclk,
698 soclk,
699 dout,
700 scan_out);
701wire [4:0] fdin;
702wire [3:0] so;
703
704 input [4:0] din;
705 input l1clk;
706 input scan_in;
707
708
709 input siclk;
710 input soclk;
711
712 output [4:0] dout;
713 output scan_out;
714assign fdin[4:0] = din[4:0];
715
716
717
718
719
720
721dff #(5) d0_0 (
722.l1clk(l1clk),
723.siclk(siclk),
724.soclk(soclk),
725.d(fdin[4:0]),
726.si({scan_in,so[3:0]}),
727.so({so[3:0],scan_out}),
728.q(dout[4:0])
729);
730
731
732
733
734
735
736
737
738
739
740
741
742endmodule
743
744
745
746
747
748
749
750
751
752
753
754
755
756// any PARAMS parms go into naming of macro
757
758module ccx_arc_ctl_msff_ctl_macro (
759 din,
760 l1clk,
761 scan_in,
762 siclk,
763 soclk,
764 dout,
765 scan_out);
766wire [0:0] fdin;
767
768 input [0:0] din;
769 input l1clk;
770 input scan_in;
771
772
773 input siclk;
774 input soclk;
775
776 output [0:0] dout;
777 output scan_out;
778assign fdin[0:0] = din[0:0];
779
780
781
782
783
784
785dff #(1) d0_0 (
786.l1clk(l1clk),
787.siclk(siclk),
788.soclk(soclk),
789.d(fdin[0:0]),
790.si(scan_in),
791.so(scan_out),
792.q(dout[0:0])
793);
794
795
796
797
798
799
800
801
802
803
804
805
806endmodule
807
808
809
810// Description: Spare gate macro for control blocks
811//
812// Param num controls the number of times the macro is added
813// flops=0 can be used to use only combination spare logic
814
815
816module ccx_arc_ctl_spare_ctl_macro__num_10 (
817 l1clk,
818 scan_in,
819 siclk,
820 soclk,
821 scan_out);
822wire si_0;
823wire so_0;
824wire spare0_flop_unused;
825wire spare0_buf_32x_unused;
826wire spare0_nand3_8x_unused;
827wire spare0_inv_8x_unused;
828wire spare0_aoi22_4x_unused;
829wire spare0_buf_8x_unused;
830wire spare0_oai22_4x_unused;
831wire spare0_inv_16x_unused;
832wire spare0_nand2_16x_unused;
833wire spare0_nor3_4x_unused;
834wire spare0_nand2_8x_unused;
835wire spare0_buf_16x_unused;
836wire spare0_nor2_16x_unused;
837wire spare0_inv_32x_unused;
838wire si_1;
839wire so_1;
840wire spare1_flop_unused;
841wire spare1_buf_32x_unused;
842wire spare1_nand3_8x_unused;
843wire spare1_inv_8x_unused;
844wire spare1_aoi22_4x_unused;
845wire spare1_buf_8x_unused;
846wire spare1_oai22_4x_unused;
847wire spare1_inv_16x_unused;
848wire spare1_nand2_16x_unused;
849wire spare1_nor3_4x_unused;
850wire spare1_nand2_8x_unused;
851wire spare1_buf_16x_unused;
852wire spare1_nor2_16x_unused;
853wire spare1_inv_32x_unused;
854wire si_2;
855wire so_2;
856wire spare2_flop_unused;
857wire spare2_buf_32x_unused;
858wire spare2_nand3_8x_unused;
859wire spare2_inv_8x_unused;
860wire spare2_aoi22_4x_unused;
861wire spare2_buf_8x_unused;
862wire spare2_oai22_4x_unused;
863wire spare2_inv_16x_unused;
864wire spare2_nand2_16x_unused;
865wire spare2_nor3_4x_unused;
866wire spare2_nand2_8x_unused;
867wire spare2_buf_16x_unused;
868wire spare2_nor2_16x_unused;
869wire spare2_inv_32x_unused;
870wire si_3;
871wire so_3;
872wire spare3_flop_unused;
873wire spare3_buf_32x_unused;
874wire spare3_nand3_8x_unused;
875wire spare3_inv_8x_unused;
876wire spare3_aoi22_4x_unused;
877wire spare3_buf_8x_unused;
878wire spare3_oai22_4x_unused;
879wire spare3_inv_16x_unused;
880wire spare3_nand2_16x_unused;
881wire spare3_nor3_4x_unused;
882wire spare3_nand2_8x_unused;
883wire spare3_buf_16x_unused;
884wire spare3_nor2_16x_unused;
885wire spare3_inv_32x_unused;
886wire si_4;
887wire so_4;
888wire spare4_flop_unused;
889wire spare4_buf_32x_unused;
890wire spare4_nand3_8x_unused;
891wire spare4_inv_8x_unused;
892wire spare4_aoi22_4x_unused;
893wire spare4_buf_8x_unused;
894wire spare4_oai22_4x_unused;
895wire spare4_inv_16x_unused;
896wire spare4_nand2_16x_unused;
897wire spare4_nor3_4x_unused;
898wire spare4_nand2_8x_unused;
899wire spare4_buf_16x_unused;
900wire spare4_nor2_16x_unused;
901wire spare4_inv_32x_unused;
902wire si_5;
903wire so_5;
904wire spare5_flop_unused;
905wire spare5_buf_32x_unused;
906wire spare5_nand3_8x_unused;
907wire spare5_inv_8x_unused;
908wire spare5_aoi22_4x_unused;
909wire spare5_buf_8x_unused;
910wire spare5_oai22_4x_unused;
911wire spare5_inv_16x_unused;
912wire spare5_nand2_16x_unused;
913wire spare5_nor3_4x_unused;
914wire spare5_nand2_8x_unused;
915wire spare5_buf_16x_unused;
916wire spare5_nor2_16x_unused;
917wire spare5_inv_32x_unused;
918wire si_6;
919wire so_6;
920wire spare6_flop_unused;
921wire spare6_buf_32x_unused;
922wire spare6_nand3_8x_unused;
923wire spare6_inv_8x_unused;
924wire spare6_aoi22_4x_unused;
925wire spare6_buf_8x_unused;
926wire spare6_oai22_4x_unused;
927wire spare6_inv_16x_unused;
928wire spare6_nand2_16x_unused;
929wire spare6_nor3_4x_unused;
930wire spare6_nand2_8x_unused;
931wire spare6_buf_16x_unused;
932wire spare6_nor2_16x_unused;
933wire spare6_inv_32x_unused;
934wire si_7;
935wire so_7;
936wire spare7_flop_unused;
937wire spare7_buf_32x_unused;
938wire spare7_nand3_8x_unused;
939wire spare7_inv_8x_unused;
940wire spare7_aoi22_4x_unused;
941wire spare7_buf_8x_unused;
942wire spare7_oai22_4x_unused;
943wire spare7_inv_16x_unused;
944wire spare7_nand2_16x_unused;
945wire spare7_nor3_4x_unused;
946wire spare7_nand2_8x_unused;
947wire spare7_buf_16x_unused;
948wire spare7_nor2_16x_unused;
949wire spare7_inv_32x_unused;
950wire si_8;
951wire so_8;
952wire spare8_flop_unused;
953wire spare8_buf_32x_unused;
954wire spare8_nand3_8x_unused;
955wire spare8_inv_8x_unused;
956wire spare8_aoi22_4x_unused;
957wire spare8_buf_8x_unused;
958wire spare8_oai22_4x_unused;
959wire spare8_inv_16x_unused;
960wire spare8_nand2_16x_unused;
961wire spare8_nor3_4x_unused;
962wire spare8_nand2_8x_unused;
963wire spare8_buf_16x_unused;
964wire spare8_nor2_16x_unused;
965wire spare8_inv_32x_unused;
966wire si_9;
967wire so_9;
968wire spare9_flop_unused;
969wire spare9_buf_32x_unused;
970wire spare9_nand3_8x_unused;
971wire spare9_inv_8x_unused;
972wire spare9_aoi22_4x_unused;
973wire spare9_buf_8x_unused;
974wire spare9_oai22_4x_unused;
975wire spare9_inv_16x_unused;
976wire spare9_nand2_16x_unused;
977wire spare9_nor3_4x_unused;
978wire spare9_nand2_8x_unused;
979wire spare9_buf_16x_unused;
980wire spare9_nor2_16x_unused;
981wire spare9_inv_32x_unused;
982
983
984input l1clk;
985input scan_in;
986input siclk;
987input soclk;
988output scan_out;
989
990cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
991 .siclk(siclk),
992 .soclk(soclk),
993 .si(si_0),
994 .so(so_0),
995 .d(1'b0),
996 .q(spare0_flop_unused));
997assign si_0 = scan_in;
998
999cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
1000 .out(spare0_buf_32x_unused));
1001cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
1002 .in1(1'b1),
1003 .in2(1'b1),
1004 .out(spare0_nand3_8x_unused));
1005cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
1006 .out(spare0_inv_8x_unused));
1007cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
1008 .in01(1'b1),
1009 .in10(1'b1),
1010 .in11(1'b1),
1011 .out(spare0_aoi22_4x_unused));
1012cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
1013 .out(spare0_buf_8x_unused));
1014cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
1015 .in01(1'b1),
1016 .in10(1'b1),
1017 .in11(1'b1),
1018 .out(spare0_oai22_4x_unused));
1019cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
1020 .out(spare0_inv_16x_unused));
1021cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
1022 .in1(1'b1),
1023 .out(spare0_nand2_16x_unused));
1024cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
1025 .in1(1'b0),
1026 .in2(1'b0),
1027 .out(spare0_nor3_4x_unused));
1028cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
1029 .in1(1'b1),
1030 .out(spare0_nand2_8x_unused));
1031cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
1032 .out(spare0_buf_16x_unused));
1033cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
1034 .in1(1'b0),
1035 .out(spare0_nor2_16x_unused));
1036cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
1037 .out(spare0_inv_32x_unused));
1038
1039cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
1040 .siclk(siclk),
1041 .soclk(soclk),
1042 .si(si_1),
1043 .so(so_1),
1044 .d(1'b0),
1045 .q(spare1_flop_unused));
1046assign si_1 = so_0;
1047
1048cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
1049 .out(spare1_buf_32x_unused));
1050cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
1051 .in1(1'b1),
1052 .in2(1'b1),
1053 .out(spare1_nand3_8x_unused));
1054cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
1055 .out(spare1_inv_8x_unused));
1056cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
1057 .in01(1'b1),
1058 .in10(1'b1),
1059 .in11(1'b1),
1060 .out(spare1_aoi22_4x_unused));
1061cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
1062 .out(spare1_buf_8x_unused));
1063cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
1064 .in01(1'b1),
1065 .in10(1'b1),
1066 .in11(1'b1),
1067 .out(spare1_oai22_4x_unused));
1068cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
1069 .out(spare1_inv_16x_unused));
1070cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
1071 .in1(1'b1),
1072 .out(spare1_nand2_16x_unused));
1073cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
1074 .in1(1'b0),
1075 .in2(1'b0),
1076 .out(spare1_nor3_4x_unused));
1077cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
1078 .in1(1'b1),
1079 .out(spare1_nand2_8x_unused));
1080cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
1081 .out(spare1_buf_16x_unused));
1082cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
1083 .in1(1'b0),
1084 .out(spare1_nor2_16x_unused));
1085cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
1086 .out(spare1_inv_32x_unused));
1087
1088cl_sc1_msff_8x spare2_flop (.l1clk(l1clk),
1089 .siclk(siclk),
1090 .soclk(soclk),
1091 .si(si_2),
1092 .so(so_2),
1093 .d(1'b0),
1094 .q(spare2_flop_unused));
1095assign si_2 = so_1;
1096
1097cl_u1_buf_32x spare2_buf_32x (.in(1'b1),
1098 .out(spare2_buf_32x_unused));
1099cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1),
1100 .in1(1'b1),
1101 .in2(1'b1),
1102 .out(spare2_nand3_8x_unused));
1103cl_u1_inv_8x spare2_inv_8x (.in(1'b1),
1104 .out(spare2_inv_8x_unused));
1105cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1),
1106 .in01(1'b1),
1107 .in10(1'b1),
1108 .in11(1'b1),
1109 .out(spare2_aoi22_4x_unused));
1110cl_u1_buf_8x spare2_buf_8x (.in(1'b1),
1111 .out(spare2_buf_8x_unused));
1112cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1),
1113 .in01(1'b1),
1114 .in10(1'b1),
1115 .in11(1'b1),
1116 .out(spare2_oai22_4x_unused));
1117cl_u1_inv_16x spare2_inv_16x (.in(1'b1),
1118 .out(spare2_inv_16x_unused));
1119cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1),
1120 .in1(1'b1),
1121 .out(spare2_nand2_16x_unused));
1122cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0),
1123 .in1(1'b0),
1124 .in2(1'b0),
1125 .out(spare2_nor3_4x_unused));
1126cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1),
1127 .in1(1'b1),
1128 .out(spare2_nand2_8x_unused));
1129cl_u1_buf_16x spare2_buf_16x (.in(1'b1),
1130 .out(spare2_buf_16x_unused));
1131cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0),
1132 .in1(1'b0),
1133 .out(spare2_nor2_16x_unused));
1134cl_u1_inv_32x spare2_inv_32x (.in(1'b1),
1135 .out(spare2_inv_32x_unused));
1136
1137cl_sc1_msff_8x spare3_flop (.l1clk(l1clk),
1138 .siclk(siclk),
1139 .soclk(soclk),
1140 .si(si_3),
1141 .so(so_3),
1142 .d(1'b0),
1143 .q(spare3_flop_unused));
1144assign si_3 = so_2;
1145
1146cl_u1_buf_32x spare3_buf_32x (.in(1'b1),
1147 .out(spare3_buf_32x_unused));
1148cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1),
1149 .in1(1'b1),
1150 .in2(1'b1),
1151 .out(spare3_nand3_8x_unused));
1152cl_u1_inv_8x spare3_inv_8x (.in(1'b1),
1153 .out(spare3_inv_8x_unused));
1154cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1),
1155 .in01(1'b1),
1156 .in10(1'b1),
1157 .in11(1'b1),
1158 .out(spare3_aoi22_4x_unused));
1159cl_u1_buf_8x spare3_buf_8x (.in(1'b1),
1160 .out(spare3_buf_8x_unused));
1161cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1),
1162 .in01(1'b1),
1163 .in10(1'b1),
1164 .in11(1'b1),
1165 .out(spare3_oai22_4x_unused));
1166cl_u1_inv_16x spare3_inv_16x (.in(1'b1),
1167 .out(spare3_inv_16x_unused));
1168cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1),
1169 .in1(1'b1),
1170 .out(spare3_nand2_16x_unused));
1171cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0),
1172 .in1(1'b0),
1173 .in2(1'b0),
1174 .out(spare3_nor3_4x_unused));
1175cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1),
1176 .in1(1'b1),
1177 .out(spare3_nand2_8x_unused));
1178cl_u1_buf_16x spare3_buf_16x (.in(1'b1),
1179 .out(spare3_buf_16x_unused));
1180cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0),
1181 .in1(1'b0),
1182 .out(spare3_nor2_16x_unused));
1183cl_u1_inv_32x spare3_inv_32x (.in(1'b1),
1184 .out(spare3_inv_32x_unused));
1185
1186cl_sc1_msff_8x spare4_flop (.l1clk(l1clk),
1187 .siclk(siclk),
1188 .soclk(soclk),
1189 .si(si_4),
1190 .so(so_4),
1191 .d(1'b0),
1192 .q(spare4_flop_unused));
1193assign si_4 = so_3;
1194
1195cl_u1_buf_32x spare4_buf_32x (.in(1'b1),
1196 .out(spare4_buf_32x_unused));
1197cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1),
1198 .in1(1'b1),
1199 .in2(1'b1),
1200 .out(spare4_nand3_8x_unused));
1201cl_u1_inv_8x spare4_inv_8x (.in(1'b1),
1202 .out(spare4_inv_8x_unused));
1203cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1),
1204 .in01(1'b1),
1205 .in10(1'b1),
1206 .in11(1'b1),
1207 .out(spare4_aoi22_4x_unused));
1208cl_u1_buf_8x spare4_buf_8x (.in(1'b1),
1209 .out(spare4_buf_8x_unused));
1210cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1),
1211 .in01(1'b1),
1212 .in10(1'b1),
1213 .in11(1'b1),
1214 .out(spare4_oai22_4x_unused));
1215cl_u1_inv_16x spare4_inv_16x (.in(1'b1),
1216 .out(spare4_inv_16x_unused));
1217cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1),
1218 .in1(1'b1),
1219 .out(spare4_nand2_16x_unused));
1220cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0),
1221 .in1(1'b0),
1222 .in2(1'b0),
1223 .out(spare4_nor3_4x_unused));
1224cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1),
1225 .in1(1'b1),
1226 .out(spare4_nand2_8x_unused));
1227cl_u1_buf_16x spare4_buf_16x (.in(1'b1),
1228 .out(spare4_buf_16x_unused));
1229cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0),
1230 .in1(1'b0),
1231 .out(spare4_nor2_16x_unused));
1232cl_u1_inv_32x spare4_inv_32x (.in(1'b1),
1233 .out(spare4_inv_32x_unused));
1234
1235cl_sc1_msff_8x spare5_flop (.l1clk(l1clk),
1236 .siclk(siclk),
1237 .soclk(soclk),
1238 .si(si_5),
1239 .so(so_5),
1240 .d(1'b0),
1241 .q(spare5_flop_unused));
1242assign si_5 = so_4;
1243
1244cl_u1_buf_32x spare5_buf_32x (.in(1'b1),
1245 .out(spare5_buf_32x_unused));
1246cl_u1_nand3_8x spare5_nand3_8x (.in0(1'b1),
1247 .in1(1'b1),
1248 .in2(1'b1),
1249 .out(spare5_nand3_8x_unused));
1250cl_u1_inv_8x spare5_inv_8x (.in(1'b1),
1251 .out(spare5_inv_8x_unused));
1252cl_u1_aoi22_4x spare5_aoi22_4x (.in00(1'b1),
1253 .in01(1'b1),
1254 .in10(1'b1),
1255 .in11(1'b1),
1256 .out(spare5_aoi22_4x_unused));
1257cl_u1_buf_8x spare5_buf_8x (.in(1'b1),
1258 .out(spare5_buf_8x_unused));
1259cl_u1_oai22_4x spare5_oai22_4x (.in00(1'b1),
1260 .in01(1'b1),
1261 .in10(1'b1),
1262 .in11(1'b1),
1263 .out(spare5_oai22_4x_unused));
1264cl_u1_inv_16x spare5_inv_16x (.in(1'b1),
1265 .out(spare5_inv_16x_unused));
1266cl_u1_nand2_16x spare5_nand2_16x (.in0(1'b1),
1267 .in1(1'b1),
1268 .out(spare5_nand2_16x_unused));
1269cl_u1_nor3_4x spare5_nor3_4x (.in0(1'b0),
1270 .in1(1'b0),
1271 .in2(1'b0),
1272 .out(spare5_nor3_4x_unused));
1273cl_u1_nand2_8x spare5_nand2_8x (.in0(1'b1),
1274 .in1(1'b1),
1275 .out(spare5_nand2_8x_unused));
1276cl_u1_buf_16x spare5_buf_16x (.in(1'b1),
1277 .out(spare5_buf_16x_unused));
1278cl_u1_nor2_16x spare5_nor2_16x (.in0(1'b0),
1279 .in1(1'b0),
1280 .out(spare5_nor2_16x_unused));
1281cl_u1_inv_32x spare5_inv_32x (.in(1'b1),
1282 .out(spare5_inv_32x_unused));
1283
1284cl_sc1_msff_8x spare6_flop (.l1clk(l1clk),
1285 .siclk(siclk),
1286 .soclk(soclk),
1287 .si(si_6),
1288 .so(so_6),
1289 .d(1'b0),
1290 .q(spare6_flop_unused));
1291assign si_6 = so_5;
1292
1293cl_u1_buf_32x spare6_buf_32x (.in(1'b1),
1294 .out(spare6_buf_32x_unused));
1295cl_u1_nand3_8x spare6_nand3_8x (.in0(1'b1),
1296 .in1(1'b1),
1297 .in2(1'b1),
1298 .out(spare6_nand3_8x_unused));
1299cl_u1_inv_8x spare6_inv_8x (.in(1'b1),
1300 .out(spare6_inv_8x_unused));
1301cl_u1_aoi22_4x spare6_aoi22_4x (.in00(1'b1),
1302 .in01(1'b1),
1303 .in10(1'b1),
1304 .in11(1'b1),
1305 .out(spare6_aoi22_4x_unused));
1306cl_u1_buf_8x spare6_buf_8x (.in(1'b1),
1307 .out(spare6_buf_8x_unused));
1308cl_u1_oai22_4x spare6_oai22_4x (.in00(1'b1),
1309 .in01(1'b1),
1310 .in10(1'b1),
1311 .in11(1'b1),
1312 .out(spare6_oai22_4x_unused));
1313cl_u1_inv_16x spare6_inv_16x (.in(1'b1),
1314 .out(spare6_inv_16x_unused));
1315cl_u1_nand2_16x spare6_nand2_16x (.in0(1'b1),
1316 .in1(1'b1),
1317 .out(spare6_nand2_16x_unused));
1318cl_u1_nor3_4x spare6_nor3_4x (.in0(1'b0),
1319 .in1(1'b0),
1320 .in2(1'b0),
1321 .out(spare6_nor3_4x_unused));
1322cl_u1_nand2_8x spare6_nand2_8x (.in0(1'b1),
1323 .in1(1'b1),
1324 .out(spare6_nand2_8x_unused));
1325cl_u1_buf_16x spare6_buf_16x (.in(1'b1),
1326 .out(spare6_buf_16x_unused));
1327cl_u1_nor2_16x spare6_nor2_16x (.in0(1'b0),
1328 .in1(1'b0),
1329 .out(spare6_nor2_16x_unused));
1330cl_u1_inv_32x spare6_inv_32x (.in(1'b1),
1331 .out(spare6_inv_32x_unused));
1332
1333cl_sc1_msff_8x spare7_flop (.l1clk(l1clk),
1334 .siclk(siclk),
1335 .soclk(soclk),
1336 .si(si_7),
1337 .so(so_7),
1338 .d(1'b0),
1339 .q(spare7_flop_unused));
1340assign si_7 = so_6;
1341
1342cl_u1_buf_32x spare7_buf_32x (.in(1'b1),
1343 .out(spare7_buf_32x_unused));
1344cl_u1_nand3_8x spare7_nand3_8x (.in0(1'b1),
1345 .in1(1'b1),
1346 .in2(1'b1),
1347 .out(spare7_nand3_8x_unused));
1348cl_u1_inv_8x spare7_inv_8x (.in(1'b1),
1349 .out(spare7_inv_8x_unused));
1350cl_u1_aoi22_4x spare7_aoi22_4x (.in00(1'b1),
1351 .in01(1'b1),
1352 .in10(1'b1),
1353 .in11(1'b1),
1354 .out(spare7_aoi22_4x_unused));
1355cl_u1_buf_8x spare7_buf_8x (.in(1'b1),
1356 .out(spare7_buf_8x_unused));
1357cl_u1_oai22_4x spare7_oai22_4x (.in00(1'b1),
1358 .in01(1'b1),
1359 .in10(1'b1),
1360 .in11(1'b1),
1361 .out(spare7_oai22_4x_unused));
1362cl_u1_inv_16x spare7_inv_16x (.in(1'b1),
1363 .out(spare7_inv_16x_unused));
1364cl_u1_nand2_16x spare7_nand2_16x (.in0(1'b1),
1365 .in1(1'b1),
1366 .out(spare7_nand2_16x_unused));
1367cl_u1_nor3_4x spare7_nor3_4x (.in0(1'b0),
1368 .in1(1'b0),
1369 .in2(1'b0),
1370 .out(spare7_nor3_4x_unused));
1371cl_u1_nand2_8x spare7_nand2_8x (.in0(1'b1),
1372 .in1(1'b1),
1373 .out(spare7_nand2_8x_unused));
1374cl_u1_buf_16x spare7_buf_16x (.in(1'b1),
1375 .out(spare7_buf_16x_unused));
1376cl_u1_nor2_16x spare7_nor2_16x (.in0(1'b0),
1377 .in1(1'b0),
1378 .out(spare7_nor2_16x_unused));
1379cl_u1_inv_32x spare7_inv_32x (.in(1'b1),
1380 .out(spare7_inv_32x_unused));
1381
1382cl_sc1_msff_8x spare8_flop (.l1clk(l1clk),
1383 .siclk(siclk),
1384 .soclk(soclk),
1385 .si(si_8),
1386 .so(so_8),
1387 .d(1'b0),
1388 .q(spare8_flop_unused));
1389assign si_8 = so_7;
1390
1391cl_u1_buf_32x spare8_buf_32x (.in(1'b1),
1392 .out(spare8_buf_32x_unused));
1393cl_u1_nand3_8x spare8_nand3_8x (.in0(1'b1),
1394 .in1(1'b1),
1395 .in2(1'b1),
1396 .out(spare8_nand3_8x_unused));
1397cl_u1_inv_8x spare8_inv_8x (.in(1'b1),
1398 .out(spare8_inv_8x_unused));
1399cl_u1_aoi22_4x spare8_aoi22_4x (.in00(1'b1),
1400 .in01(1'b1),
1401 .in10(1'b1),
1402 .in11(1'b1),
1403 .out(spare8_aoi22_4x_unused));
1404cl_u1_buf_8x spare8_buf_8x (.in(1'b1),
1405 .out(spare8_buf_8x_unused));
1406cl_u1_oai22_4x spare8_oai22_4x (.in00(1'b1),
1407 .in01(1'b1),
1408 .in10(1'b1),
1409 .in11(1'b1),
1410 .out(spare8_oai22_4x_unused));
1411cl_u1_inv_16x spare8_inv_16x (.in(1'b1),
1412 .out(spare8_inv_16x_unused));
1413cl_u1_nand2_16x spare8_nand2_16x (.in0(1'b1),
1414 .in1(1'b1),
1415 .out(spare8_nand2_16x_unused));
1416cl_u1_nor3_4x spare8_nor3_4x (.in0(1'b0),
1417 .in1(1'b0),
1418 .in2(1'b0),
1419 .out(spare8_nor3_4x_unused));
1420cl_u1_nand2_8x spare8_nand2_8x (.in0(1'b1),
1421 .in1(1'b1),
1422 .out(spare8_nand2_8x_unused));
1423cl_u1_buf_16x spare8_buf_16x (.in(1'b1),
1424 .out(spare8_buf_16x_unused));
1425cl_u1_nor2_16x spare8_nor2_16x (.in0(1'b0),
1426 .in1(1'b0),
1427 .out(spare8_nor2_16x_unused));
1428cl_u1_inv_32x spare8_inv_32x (.in(1'b1),
1429 .out(spare8_inv_32x_unused));
1430
1431cl_sc1_msff_8x spare9_flop (.l1clk(l1clk),
1432 .siclk(siclk),
1433 .soclk(soclk),
1434 .si(si_9),
1435 .so(so_9),
1436 .d(1'b0),
1437 .q(spare9_flop_unused));
1438assign si_9 = so_8;
1439
1440cl_u1_buf_32x spare9_buf_32x (.in(1'b1),
1441 .out(spare9_buf_32x_unused));
1442cl_u1_nand3_8x spare9_nand3_8x (.in0(1'b1),
1443 .in1(1'b1),
1444 .in2(1'b1),
1445 .out(spare9_nand3_8x_unused));
1446cl_u1_inv_8x spare9_inv_8x (.in(1'b1),
1447 .out(spare9_inv_8x_unused));
1448cl_u1_aoi22_4x spare9_aoi22_4x (.in00(1'b1),
1449 .in01(1'b1),
1450 .in10(1'b1),
1451 .in11(1'b1),
1452 .out(spare9_aoi22_4x_unused));
1453cl_u1_buf_8x spare9_buf_8x (.in(1'b1),
1454 .out(spare9_buf_8x_unused));
1455cl_u1_oai22_4x spare9_oai22_4x (.in00(1'b1),
1456 .in01(1'b1),
1457 .in10(1'b1),
1458 .in11(1'b1),
1459 .out(spare9_oai22_4x_unused));
1460cl_u1_inv_16x spare9_inv_16x (.in(1'b1),
1461 .out(spare9_inv_16x_unused));
1462cl_u1_nand2_16x spare9_nand2_16x (.in0(1'b1),
1463 .in1(1'b1),
1464 .out(spare9_nand2_16x_unused));
1465cl_u1_nor3_4x spare9_nor3_4x (.in0(1'b0),
1466 .in1(1'b0),
1467 .in2(1'b0),
1468 .out(spare9_nor3_4x_unused));
1469cl_u1_nand2_8x spare9_nand2_8x (.in0(1'b1),
1470 .in1(1'b1),
1471 .out(spare9_nand2_8x_unused));
1472cl_u1_buf_16x spare9_buf_16x (.in(1'b1),
1473 .out(spare9_buf_16x_unused));
1474cl_u1_nor2_16x spare9_nor2_16x (.in0(1'b0),
1475 .in1(1'b0),
1476 .out(spare9_nor2_16x_unused));
1477cl_u1_inv_32x spare9_inv_32x (.in(1'b1),
1478 .out(spare9_inv_32x_unused));
1479assign scan_out = so_9;
1480
1481
1482
1483endmodule
1484`endif // `ifndef FPGA
1485
1486`ifdef FPGA
1487module ccx_arc_ctl(grant_a, req_pkt_empty_a, direction, write_fifo_a,
1488 fifo_rptr_a, fifo_read_select, input_req_sel_a, input_req_sel_a_,
1489 fifo_req_sel_a, qfullbar_a, atom_x, arb_qsel0_a, arb_qsel1_a,
1490 arb_shift_a, arb_q0_holdbar_a, atom_a, req_a, tcu_scan_en, l2clk,
1491 scan_in, tcu_pce_ov, ccx_aclk, ccx_bclk, scan_out);
1492
1493 input [8:0] grant_a;
1494 input req_pkt_empty_a;
1495 output direction;
1496 output [17:0] write_fifo_a;
1497 output [2:0] fifo_rptr_a;
1498 output [1:0] fifo_read_select;
1499 output input_req_sel_a;
1500 output input_req_sel_a_;
1501 output fifo_req_sel_a;
1502 output [8:0] qfullbar_a;
1503 output [8:0] atom_x;
1504 output [8:0] arb_qsel0_a;
1505 output [8:0] arb_qsel1_a;
1506 output [8:0] arb_shift_a;
1507 output [8:0] arb_q0_holdbar_a;
1508 input [8:0] atom_a;
1509 input [8:0] req_a;
1510 input tcu_scan_en;
1511 input l2clk;
1512 input scan_in;
1513 input tcu_pce_ov;
1514 input ccx_aclk;
1515 input ccx_bclk;
1516 output scan_out;
1517
1518 wire pce_ov;
1519 wire stop;
1520 wire siclk;
1521 wire soclk;
1522 wire se;
1523 wire l1clk;
1524 wire [8:0] input_req_a;
1525 wire [8:0] qfull_a;
1526 wire inreg_req_vld_a;
1527 wire wr_en_a;
1528 wire fifo_empty_a;
1529 wire wptr_eq17;
1530 wire [4:0] wptr_a;
1531 wire [4:0] wptr_next;
1532 wire dff_wptr_scanin;
1533 wire dff_wptr_scanout;
1534 wire rd_en_a;
1535 wire rptr_eq17;
1536 wire [4:0] rptr_a;
1537 wire [4:0] rptr_next;
1538 wire dff_rptr_scanin;
1539 wire dff_rptr_scanout;
1540 wire fifo_bypass_a;
1541 wire [17:0] wptr_dcd_a;
1542 wire input_req_sel_q;
1543 wire input_req_sel_q_;
1544 wire dff_inreg_select_scanin;
1545 wire dff_inreg_select_scanout;
1546 wire dff_inreg_select__scanin;
1547 wire dff_inreg_select__scanout;
1548 wire direction_in;
1549 wire dff_dir_scanin;
1550 wire dff_dir_scanout;
1551 wire q0_scanin;
1552 wire q0_scanout;
1553 wire q1_scanin;
1554 wire q1_scanout;
1555 wire q2_scanin;
1556 wire q2_scanout;
1557 wire q3_scanin;
1558 wire q3_scanout;
1559 wire q4_scanin;
1560 wire q4_scanout;
1561 wire q5_scanin;
1562 wire q5_scanout;
1563 wire q6_scanin;
1564 wire q6_scanout;
1565 wire q7_scanin;
1566 wire q7_scanout;
1567 wire q8_scanin;
1568 wire q8_scanout;
1569 wire spares_scanin;
1570 wire spares_scanout;
1571
1572 assign pce_ov = tcu_pce_ov;
1573 assign stop = 1'b0;
1574 assign siclk = ccx_aclk;
1575 assign soclk = ccx_bclk;
1576 assign se = tcu_scan_en;
1577 assign input_req_a[8:0] = (req_a[8:0] & (~qfull_a[8:0]));
1578 assign inreg_req_vld_a = (|input_req_a[8:0]);
1579 assign wr_en_a = (((~input_req_sel_a) & inreg_req_vld_a) & ((~
1580 req_pkt_empty_a) | (~fifo_empty_a)));
1581 assign wptr_eq17 = (wptr_a[4:0] == 5'b10001);
1582 assign wptr_next[4:0] = (wr_en_a ? (wptr_eq17 ? 5'b0 : (wptr_a[4:0] +
1583 5'b1)) : wptr_a[4:0]);
1584 assign rd_en_a = (req_pkt_empty_a & (~fifo_empty_a));
1585 assign rptr_eq17 = (rptr_a[4:0] == 5'b10001);
1586 assign rptr_next[4:0] = (rd_en_a ? (rptr_eq17 ? 5'b0 : (rptr_a[4:0] +
1587 5'b1)) : rptr_a[4:0]);
1588 assign fifo_rptr_a[2:0] = rptr_a[2:0];
1589 assign fifo_read_select[1:0] = (rptr_a[4:3] | {2 {fifo_bypass_a}});
1590 assign fifo_empty_a = (rptr_a[4:0] == wptr_a[4:0]);
1591 assign fifo_bypass_a = (fifo_empty_a & inreg_req_vld_a);
1592 assign wptr_dcd_a[0] = (((((~wptr_a[4]) & (~wptr_a[3])) & (~wptr_a[2]))
1593 & (~wptr_a[1])) & (~wptr_a[0]));
1594 assign wptr_dcd_a[1] = (((((~wptr_a[4]) & (~wptr_a[3])) & (~wptr_a[2]))
1595 & (~wptr_a[1])) & wptr_a[0]);
1596 assign wptr_dcd_a[2] = (((((~wptr_a[4]) & (~wptr_a[3])) & (~wptr_a[2]))
1597 & wptr_a[1]) & (~wptr_a[0]));
1598 assign wptr_dcd_a[3] = (((((~wptr_a[4]) & (~wptr_a[3])) & (~wptr_a[2]))
1599 & wptr_a[1]) & wptr_a[0]);
1600 assign wptr_dcd_a[4] = (((((~wptr_a[4]) & (~wptr_a[3])) & wptr_a[2]) & (
1601 ~wptr_a[1])) & (~wptr_a[0]));
1602 assign wptr_dcd_a[5] = (((((~wptr_a[4]) & (~wptr_a[3])) & wptr_a[2]) & (
1603 ~wptr_a[1])) & wptr_a[0]);
1604 assign wptr_dcd_a[6] = (((((~wptr_a[4]) & (~wptr_a[3])) & wptr_a[2]) &
1605 wptr_a[1]) & (~wptr_a[0]));
1606 assign wptr_dcd_a[7] = (((((~wptr_a[4]) & (~wptr_a[3])) & wptr_a[2]) &
1607 wptr_a[1]) & wptr_a[0]);
1608 assign wptr_dcd_a[8] = (((((~wptr_a[4]) & wptr_a[3]) & (~wptr_a[2])) & (
1609 ~wptr_a[1])) & (~wptr_a[0]));
1610 assign wptr_dcd_a[9] = (((((~wptr_a[4]) & wptr_a[3]) & (~wptr_a[2])) & (
1611 ~wptr_a[1])) & wptr_a[0]);
1612 assign wptr_dcd_a[10] = (((((~wptr_a[4]) & wptr_a[3]) & (~wptr_a[2])) &
1613 wptr_a[1]) & (~wptr_a[0]));
1614 assign wptr_dcd_a[11] = (((((~wptr_a[4]) & wptr_a[3]) & (~wptr_a[2])) &
1615 wptr_a[1]) & wptr_a[0]);
1616 assign wptr_dcd_a[12] = (((((~wptr_a[4]) & wptr_a[3]) & wptr_a[2]) & (~
1617 wptr_a[1])) & (~wptr_a[0]));
1618 assign wptr_dcd_a[13] = (((((~wptr_a[4]) & wptr_a[3]) & wptr_a[2]) & (~
1619 wptr_a[1])) & wptr_a[0]);
1620 assign wptr_dcd_a[14] = (((((~wptr_a[4]) & wptr_a[3]) & wptr_a[2]) &
1621 wptr_a[1]) & (~wptr_a[0]));
1622 assign wptr_dcd_a[15] = (((((~wptr_a[4]) & wptr_a[3]) & wptr_a[2]) &
1623 wptr_a[1]) & wptr_a[0]);
1624 assign wptr_dcd_a[16] = ((((wptr_a[4] & (~wptr_a[3])) & (~wptr_a[2])) &
1625 (~wptr_a[1])) & (~wptr_a[0]));
1626 assign wptr_dcd_a[17] = ((((wptr_a[4] & (~wptr_a[3])) & (~wptr_a[2])) &
1627 (~wptr_a[1])) & wptr_a[0]);
1628 assign write_fifo_a[17:0] = wptr_dcd_a[17:0];
1629 assign input_req_sel_q = (((req_pkt_empty_a & fifo_empty_a) & (~
1630 inreg_req_vld_a)) | (req_pkt_empty_a & input_req_sel_a));
1631 assign fifo_req_sel_a = (req_pkt_empty_a & ((~fifo_empty_a) | (
1632 inreg_req_vld_a & (~input_req_sel_a))));
1633 assign input_req_sel_q_ = (~input_req_sel_q);
1634 assign direction_in = (~direction);
1635 assign dff_wptr_scanin = scan_in;
1636 assign dff_rptr_scanin = dff_wptr_scanout;
1637 assign dff_inreg_select_scanin = dff_rptr_scanout;
1638 assign dff_inreg_select__scanin = dff_inreg_select_scanout;
1639 assign dff_dir_scanin = dff_inreg_select__scanout;
1640 assign q0_scanin = dff_dir_scanout;
1641 assign q1_scanin = q0_scanout;
1642 assign q2_scanin = q1_scanout;
1643 assign q3_scanin = q2_scanout;
1644 assign q4_scanin = q3_scanout;
1645 assign q5_scanin = q4_scanout;
1646 assign q6_scanin = q5_scanout;
1647 assign q7_scanin = q6_scanout;
1648 assign q8_scanin = q7_scanout;
1649 assign spares_scanin = q8_scanout;
1650 assign scan_out = spares_scanout;
1651
1652 l1clkhdr_ctl_macro clkgen(
1653 .l2clk (l2clk),
1654 .l1en (1'b1),
1655 .l1clk (l1clk),
1656 .pce_ov (pce_ov),
1657 .stop (stop),
1658 .se (se));
1659 msff_ctl_macro__width_5 dff_wptr(
1660 .scan_in (dff_wptr_scanin),
1661 .scan_out (dff_wptr_scanout),
1662 .din (wptr_next[4:0]),
1663 .dout (wptr_a[4:0]),
1664 .l1clk (l1clk),
1665 .siclk (siclk),
1666 .soclk (soclk));
1667 msff_ctl_macro__width_5 dff_rptr(
1668 .scan_in (dff_rptr_scanin),
1669 .scan_out (dff_rptr_scanout),
1670 .din (rptr_next[4:0]),
1671 .dout (rptr_a[4:0]),
1672 .l1clk (l1clk),
1673 .siclk (siclk),
1674 .soclk (soclk));
1675 msff_ctl_macro dff_inreg_select(
1676 .scan_in (dff_inreg_select_scanin),
1677 .scan_out (dff_inreg_select_scanout),
1678 .din (input_req_sel_q),
1679 .dout (input_req_sel_a),
1680 .l1clk (l1clk),
1681 .siclk (siclk),
1682 .soclk (soclk));
1683 msff_ctl_macro dff_inreg_select_x(
1684 .scan_in (dff_inreg_select__scanin),
1685 .scan_out (dff_inreg_select__scanout),
1686 .din (input_req_sel_q_),
1687 .dout (input_req_sel_a_),
1688 .l1clk (l1clk),
1689 .siclk (siclk),
1690 .soclk (soclk));
1691 msff_ctl_macro dff_dir(
1692 .scan_in (dff_dir_scanin),
1693 .scan_out (dff_dir_scanout),
1694 .din (direction_in),
1695 .dout (direction),
1696 .l1clk (l1clk),
1697 .siclk (siclk),
1698 .soclk (soclk));
1699 ccx_srq_ctl q0(
1700 .scan_in (q0_scanin),
1701 .scan_out (q0_scanout),
1702 .qfull_a (qfull_a[0]),
1703 .qfullbar_a (qfullbar_a[0]),
1704 .qsel0_a (arb_qsel0_a[0]),
1705 .qsel1_a (arb_qsel1_a[0]),
1706 .shift_a (arb_shift_a[0]),
1707 .q0_holdbar_a (arb_q0_holdbar_a[0]),
1708 .atom_x (atom_x[0]),
1709 .req_a (req_a[0]),
1710 .atom_a (atom_a[0]),
1711 .grant_a (grant_a[0]),
1712 .l1clk (l1clk),
1713 .ccx_aclk (ccx_aclk),
1714 .ccx_bclk (ccx_bclk));
1715 ccx_srq_ctl q1(
1716 .scan_in (q1_scanin),
1717 .scan_out (q1_scanout),
1718 .qfull_a (qfull_a[1]),
1719 .qfullbar_a (qfullbar_a[1]),
1720 .qsel0_a (arb_qsel0_a[1]),
1721 .qsel1_a (arb_qsel1_a[1]),
1722 .shift_a (arb_shift_a[1]),
1723 .q0_holdbar_a (arb_q0_holdbar_a[1]),
1724 .atom_x (atom_x[1]),
1725 .req_a (req_a[1]),
1726 .atom_a (atom_a[1]),
1727 .grant_a (grant_a[1]),
1728 .l1clk (l1clk),
1729 .ccx_aclk (ccx_aclk),
1730 .ccx_bclk (ccx_bclk));
1731 ccx_srq_ctl q2(
1732 .scan_in (q2_scanin),
1733 .scan_out (q2_scanout),
1734 .qfull_a (qfull_a[2]),
1735 .qfullbar_a (qfullbar_a[2]),
1736 .qsel0_a (arb_qsel0_a[2]),
1737 .qsel1_a (arb_qsel1_a[2]),
1738 .shift_a (arb_shift_a[2]),
1739 .q0_holdbar_a (arb_q0_holdbar_a[2]),
1740 .atom_x (atom_x[2]),
1741 .req_a (req_a[2]),
1742 .atom_a (atom_a[2]),
1743 .grant_a (grant_a[2]),
1744 .l1clk (l1clk),
1745 .ccx_aclk (ccx_aclk),
1746 .ccx_bclk (ccx_bclk));
1747 ccx_srq_ctl q3(
1748 .scan_in (q3_scanin),
1749 .scan_out (q3_scanout),
1750 .qfull_a (qfull_a[3]),
1751 .qfullbar_a (qfullbar_a[3]),
1752 .qsel0_a (arb_qsel0_a[3]),
1753 .qsel1_a (arb_qsel1_a[3]),
1754 .shift_a (arb_shift_a[3]),
1755 .q0_holdbar_a (arb_q0_holdbar_a[3]),
1756 .atom_x (atom_x[3]),
1757 .req_a (req_a[3]),
1758 .atom_a (atom_a[3]),
1759 .grant_a (grant_a[3]),
1760 .l1clk (l1clk),
1761 .ccx_aclk (ccx_aclk),
1762 .ccx_bclk (ccx_bclk));
1763 ccx_srq_ctl q4(
1764 .scan_in (q4_scanin),
1765 .scan_out (q4_scanout),
1766 .qfull_a (qfull_a[4]),
1767 .qfullbar_a (qfullbar_a[4]),
1768 .qsel0_a (arb_qsel0_a[4]),
1769 .qsel1_a (arb_qsel1_a[4]),
1770 .shift_a (arb_shift_a[4]),
1771 .q0_holdbar_a (arb_q0_holdbar_a[4]),
1772 .atom_x (atom_x[4]),
1773 .req_a (req_a[4]),
1774 .atom_a (atom_a[4]),
1775 .grant_a (grant_a[4]),
1776 .l1clk (l1clk),
1777 .ccx_aclk (ccx_aclk),
1778 .ccx_bclk (ccx_bclk));
1779 ccx_srq_ctl q5(
1780 .scan_in (q5_scanin),
1781 .scan_out (q5_scanout),
1782 .qfull_a (qfull_a[5]),
1783 .qfullbar_a (qfullbar_a[5]),
1784 .qsel0_a (arb_qsel0_a[5]),
1785 .qsel1_a (arb_qsel1_a[5]),
1786 .shift_a (arb_shift_a[5]),
1787 .q0_holdbar_a (arb_q0_holdbar_a[5]),
1788 .atom_x (atom_x[5]),
1789 .req_a (req_a[5]),
1790 .atom_a (atom_a[5]),
1791 .grant_a (grant_a[5]),
1792 .l1clk (l1clk),
1793 .ccx_aclk (ccx_aclk),
1794 .ccx_bclk (ccx_bclk));
1795 ccx_srq_ctl q6(
1796 .scan_in (q6_scanin),
1797 .scan_out (q6_scanout),
1798 .qfull_a (qfull_a[6]),
1799 .qfullbar_a (qfullbar_a[6]),
1800 .qsel0_a (arb_qsel0_a[6]),
1801 .qsel1_a (arb_qsel1_a[6]),
1802 .shift_a (arb_shift_a[6]),
1803 .q0_holdbar_a (arb_q0_holdbar_a[6]),
1804 .atom_x (atom_x[6]),
1805 .req_a (req_a[6]),
1806 .atom_a (atom_a[6]),
1807 .grant_a (grant_a[6]),
1808 .l1clk (l1clk),
1809 .ccx_aclk (ccx_aclk),
1810 .ccx_bclk (ccx_bclk));
1811 ccx_srq_ctl q7(
1812 .scan_in (q7_scanin),
1813 .scan_out (q7_scanout),
1814 .qfull_a (qfull_a[7]),
1815 .qfullbar_a (qfullbar_a[7]),
1816 .qsel0_a (arb_qsel0_a[7]),
1817 .qsel1_a (arb_qsel1_a[7]),
1818 .shift_a (arb_shift_a[7]),
1819 .q0_holdbar_a (arb_q0_holdbar_a[7]),
1820 .atom_x (atom_x[7]),
1821 .req_a (req_a[7]),
1822 .atom_a (atom_a[7]),
1823 .grant_a (grant_a[7]),
1824 .l1clk (l1clk),
1825 .ccx_aclk (ccx_aclk),
1826 .ccx_bclk (ccx_bclk));
1827 ccx_srq_ctl q8(
1828 .scan_in (q8_scanin),
1829 .scan_out (q8_scanout),
1830 .qfull_a (qfull_a[8]),
1831 .qfullbar_a (qfullbar_a[8]),
1832 .qsel0_a (arb_qsel0_a[8]),
1833 .qsel1_a (arb_qsel1_a[8]),
1834 .shift_a (arb_shift_a[8]),
1835 .q0_holdbar_a (arb_q0_holdbar_a[8]),
1836 .atom_x (atom_x[8]),
1837 .req_a (req_a[8]),
1838 .atom_a (atom_a[8]),
1839 .grant_a (grant_a[8]),
1840 .l1clk (l1clk),
1841 .ccx_aclk (ccx_aclk),
1842 .ccx_bclk (ccx_bclk));
1843 spare_ctl_macro__num_10 spares(
1844 .scan_in (spares_scanin),
1845 .scan_out (spares_scanout),
1846 .l1clk (l1clk),
1847 .siclk (siclk),
1848 .soclk (soclk));
1849endmodule
1850`endcelldefine
1851
1852`celldefine
1853module msff_ctl_macro(din, l1clk, scan_in, siclk, soclk, dout, scan_out);
1854
1855 input [0:0] din;
1856 input l1clk;
1857 input scan_in;
1858 input siclk;
1859 input soclk;
1860 output [0:0] dout;
1861 output scan_out;
1862
1863 wire [0:0] fdin;
1864
1865 assign fdin[0] = din[0];
1866
1867 dff #(1) d0_0(
1868 .l1clk (l1clk),
1869 .siclk (siclk),
1870 .soclk (soclk),
1871 .d (fdin[0]),
1872 .si (scan_in),
1873 .so (scan_out),
1874 .q (dout[0]));
1875endmodule
1876`endcelldefine
1877
1878`celldefine
1879module spare_ctl_macro__num_10(l1clk, scan_in, siclk, soclk, scan_out);
1880
1881 input l1clk;
1882 input scan_in;
1883 input siclk;
1884 input soclk;
1885 output scan_out;
1886
1887 wire si_0;
1888 wire so_0;
1889 wire spare0_flop_unused;
1890 wire spare0_buf_32x_unused;
1891 wire spare0_nand3_8x_unused;
1892 wire spare0_inv_8x_unused;
1893 wire spare0_aoi22_4x_unused;
1894 wire spare0_buf_8x_unused;
1895 wire spare0_oai22_4x_unused;
1896 wire spare0_inv_16x_unused;
1897 wire spare0_nand2_16x_unused;
1898 wire spare0_nor3_4x_unused;
1899 wire spare0_nand2_8x_unused;
1900 wire spare0_buf_16x_unused;
1901 wire spare0_nor2_16x_unused;
1902 wire spare0_inv_32x_unused;
1903 wire si_1;
1904 wire so_1;
1905 wire spare1_flop_unused;
1906 wire spare1_buf_32x_unused;
1907 wire spare1_nand3_8x_unused;
1908 wire spare1_inv_8x_unused;
1909 wire spare1_aoi22_4x_unused;
1910 wire spare1_buf_8x_unused;
1911 wire spare1_oai22_4x_unused;
1912 wire spare1_inv_16x_unused;
1913 wire spare1_nand2_16x_unused;
1914 wire spare1_nor3_4x_unused;
1915 wire spare1_nand2_8x_unused;
1916 wire spare1_buf_16x_unused;
1917 wire spare1_nor2_16x_unused;
1918 wire spare1_inv_32x_unused;
1919 wire si_2;
1920 wire so_2;
1921 wire spare2_flop_unused;
1922 wire spare2_buf_32x_unused;
1923 wire spare2_nand3_8x_unused;
1924 wire spare2_inv_8x_unused;
1925 wire spare2_aoi22_4x_unused;
1926 wire spare2_buf_8x_unused;
1927 wire spare2_oai22_4x_unused;
1928 wire spare2_inv_16x_unused;
1929 wire spare2_nand2_16x_unused;
1930 wire spare2_nor3_4x_unused;
1931 wire spare2_nand2_8x_unused;
1932 wire spare2_buf_16x_unused;
1933 wire spare2_nor2_16x_unused;
1934 wire spare2_inv_32x_unused;
1935 wire si_3;
1936 wire so_3;
1937 wire spare3_flop_unused;
1938 wire spare3_buf_32x_unused;
1939 wire spare3_nand3_8x_unused;
1940 wire spare3_inv_8x_unused;
1941 wire spare3_aoi22_4x_unused;
1942 wire spare3_buf_8x_unused;
1943 wire spare3_oai22_4x_unused;
1944 wire spare3_inv_16x_unused;
1945 wire spare3_nand2_16x_unused;
1946 wire spare3_nor3_4x_unused;
1947 wire spare3_nand2_8x_unused;
1948 wire spare3_buf_16x_unused;
1949 wire spare3_nor2_16x_unused;
1950 wire spare3_inv_32x_unused;
1951 wire si_4;
1952 wire so_4;
1953 wire spare4_flop_unused;
1954 wire spare4_buf_32x_unused;
1955 wire spare4_nand3_8x_unused;
1956 wire spare4_inv_8x_unused;
1957 wire spare4_aoi22_4x_unused;
1958 wire spare4_buf_8x_unused;
1959 wire spare4_oai22_4x_unused;
1960 wire spare4_inv_16x_unused;
1961 wire spare4_nand2_16x_unused;
1962 wire spare4_nor3_4x_unused;
1963 wire spare4_nand2_8x_unused;
1964 wire spare4_buf_16x_unused;
1965 wire spare4_nor2_16x_unused;
1966 wire spare4_inv_32x_unused;
1967 wire si_5;
1968 wire so_5;
1969 wire spare5_flop_unused;
1970 wire spare5_buf_32x_unused;
1971 wire spare5_nand3_8x_unused;
1972 wire spare5_inv_8x_unused;
1973 wire spare5_aoi22_4x_unused;
1974 wire spare5_buf_8x_unused;
1975 wire spare5_oai22_4x_unused;
1976 wire spare5_inv_16x_unused;
1977 wire spare5_nand2_16x_unused;
1978 wire spare5_nor3_4x_unused;
1979 wire spare5_nand2_8x_unused;
1980 wire spare5_buf_16x_unused;
1981 wire spare5_nor2_16x_unused;
1982 wire spare5_inv_32x_unused;
1983 wire si_6;
1984 wire so_6;
1985 wire spare6_flop_unused;
1986 wire spare6_buf_32x_unused;
1987 wire spare6_nand3_8x_unused;
1988 wire spare6_inv_8x_unused;
1989 wire spare6_aoi22_4x_unused;
1990 wire spare6_buf_8x_unused;
1991 wire spare6_oai22_4x_unused;
1992 wire spare6_inv_16x_unused;
1993 wire spare6_nand2_16x_unused;
1994 wire spare6_nor3_4x_unused;
1995 wire spare6_nand2_8x_unused;
1996 wire spare6_buf_16x_unused;
1997 wire spare6_nor2_16x_unused;
1998 wire spare6_inv_32x_unused;
1999 wire si_7;
2000 wire so_7;
2001 wire spare7_flop_unused;
2002 wire spare7_buf_32x_unused;
2003 wire spare7_nand3_8x_unused;
2004 wire spare7_inv_8x_unused;
2005 wire spare7_aoi22_4x_unused;
2006 wire spare7_buf_8x_unused;
2007 wire spare7_oai22_4x_unused;
2008 wire spare7_inv_16x_unused;
2009 wire spare7_nand2_16x_unused;
2010 wire spare7_nor3_4x_unused;
2011 wire spare7_nand2_8x_unused;
2012 wire spare7_buf_16x_unused;
2013 wire spare7_nor2_16x_unused;
2014 wire spare7_inv_32x_unused;
2015 wire si_8;
2016 wire so_8;
2017 wire spare8_flop_unused;
2018 wire spare8_buf_32x_unused;
2019 wire spare8_nand3_8x_unused;
2020 wire spare8_inv_8x_unused;
2021 wire spare8_aoi22_4x_unused;
2022 wire spare8_buf_8x_unused;
2023 wire spare8_oai22_4x_unused;
2024 wire spare8_inv_16x_unused;
2025 wire spare8_nand2_16x_unused;
2026 wire spare8_nor3_4x_unused;
2027 wire spare8_nand2_8x_unused;
2028 wire spare8_buf_16x_unused;
2029 wire spare8_nor2_16x_unused;
2030 wire spare8_inv_32x_unused;
2031 wire si_9;
2032 wire so_9;
2033 wire spare9_flop_unused;
2034 wire spare9_buf_32x_unused;
2035 wire spare9_nand3_8x_unused;
2036 wire spare9_inv_8x_unused;
2037 wire spare9_aoi22_4x_unused;
2038 wire spare9_buf_8x_unused;
2039 wire spare9_oai22_4x_unused;
2040 wire spare9_inv_16x_unused;
2041 wire spare9_nand2_16x_unused;
2042 wire spare9_nor3_4x_unused;
2043 wire spare9_nand2_8x_unused;
2044 wire spare9_buf_16x_unused;
2045 wire spare9_nor2_16x_unused;
2046 wire spare9_inv_32x_unused;
2047
2048 assign si_0 = scan_in;
2049 assign si_1 = so_0;
2050 assign si_2 = so_1;
2051 assign si_3 = so_2;
2052 assign si_4 = so_3;
2053 assign si_5 = so_4;
2054 assign si_6 = so_5;
2055 assign si_7 = so_6;
2056 assign si_8 = so_7;
2057 assign si_9 = so_8;
2058 assign scan_out = so_9;
2059
2060 cl_sc1_msff_8x spare0_flop(
2061 .l1clk (l1clk),
2062 .siclk (siclk),
2063 .soclk (soclk),
2064 .si (si_0),
2065 .so (so_0),
2066 .d (1'b0),
2067 .q (spare0_flop_unused));
2068 cl_u1_buf_32x spare0_buf_32x(
2069 .in (1'b1),
2070 .out (spare0_buf_32x_unused));
2071 cl_u1_nand3_8x spare0_nand3_8x(
2072 .in0 (1'b1),
2073 .in1 (1'b1),
2074 .in2 (1'b1),
2075 .out (spare0_nand3_8x_unused));
2076 cl_u1_inv_8x spare0_inv_8x(
2077 .in (1'b1),
2078 .out (spare0_inv_8x_unused));
2079 cl_u1_aoi22_4x spare0_aoi22_4x(
2080 .in00 (1'b1),
2081 .in01 (1'b1),
2082 .in10 (1'b1),
2083 .in11 (1'b1),
2084 .out (spare0_aoi22_4x_unused));
2085 cl_u1_buf_8x spare0_buf_8x(
2086 .in (1'b1),
2087 .out (spare0_buf_8x_unused));
2088 cl_u1_oai22_4x spare0_oai22_4x(
2089 .in00 (1'b1),
2090 .in01 (1'b1),
2091 .in10 (1'b1),
2092 .in11 (1'b1),
2093 .out (spare0_oai22_4x_unused));
2094 cl_u1_inv_16x spare0_inv_16x(
2095 .in (1'b1),
2096 .out (spare0_inv_16x_unused));
2097 cl_u1_nand2_16x spare0_nand2_16x(
2098 .in0 (1'b1),
2099 .in1 (1'b1),
2100 .out (spare0_nand2_16x_unused));
2101 cl_u1_nor3_4x spare0_nor3_4x(
2102 .in0 (1'b0),
2103 .in1 (1'b0),
2104 .in2 (1'b0),
2105 .out (spare0_nor3_4x_unused));
2106 cl_u1_nand2_8x spare0_nand2_8x(
2107 .in0 (1'b1),
2108 .in1 (1'b1),
2109 .out (spare0_nand2_8x_unused));
2110 cl_u1_buf_16x spare0_buf_16x(
2111 .in (1'b1),
2112 .out (spare0_buf_16x_unused));
2113 cl_u1_nor2_16x spare0_nor2_16x(
2114 .in0 (1'b0),
2115 .in1 (1'b0),
2116 .out (spare0_nor2_16x_unused));
2117 cl_u1_inv_32x spare0_inv_32x(
2118 .in (1'b1),
2119 .out (spare0_inv_32x_unused));
2120 cl_sc1_msff_8x spare1_flop(
2121 .l1clk (l1clk),
2122 .siclk (siclk),
2123 .soclk (soclk),
2124 .si (si_1),
2125 .so (so_1),
2126 .d (1'b0),
2127 .q (spare1_flop_unused));
2128 cl_u1_buf_32x spare1_buf_32x(
2129 .in (1'b1),
2130 .out (spare1_buf_32x_unused));
2131 cl_u1_nand3_8x spare1_nand3_8x(
2132 .in0 (1'b1),
2133 .in1 (1'b1),
2134 .in2 (1'b1),
2135 .out (spare1_nand3_8x_unused));
2136 cl_u1_inv_8x spare1_inv_8x(
2137 .in (1'b1),
2138 .out (spare1_inv_8x_unused));
2139 cl_u1_aoi22_4x spare1_aoi22_4x(
2140 .in00 (1'b1),
2141 .in01 (1'b1),
2142 .in10 (1'b1),
2143 .in11 (1'b1),
2144 .out (spare1_aoi22_4x_unused));
2145 cl_u1_buf_8x spare1_buf_8x(
2146 .in (1'b1),
2147 .out (spare1_buf_8x_unused));
2148 cl_u1_oai22_4x spare1_oai22_4x(
2149 .in00 (1'b1),
2150 .in01 (1'b1),
2151 .in10 (1'b1),
2152 .in11 (1'b1),
2153 .out (spare1_oai22_4x_unused));
2154 cl_u1_inv_16x spare1_inv_16x(
2155 .in (1'b1),
2156 .out (spare1_inv_16x_unused));
2157 cl_u1_nand2_16x spare1_nand2_16x(
2158 .in0 (1'b1),
2159 .in1 (1'b1),
2160 .out (spare1_nand2_16x_unused));
2161 cl_u1_nor3_4x spare1_nor3_4x(
2162 .in0 (1'b0),
2163 .in1 (1'b0),
2164 .in2 (1'b0),
2165 .out (spare1_nor3_4x_unused));
2166 cl_u1_nand2_8x spare1_nand2_8x(
2167 .in0 (1'b1),
2168 .in1 (1'b1),
2169 .out (spare1_nand2_8x_unused));
2170 cl_u1_buf_16x spare1_buf_16x(
2171 .in (1'b1),
2172 .out (spare1_buf_16x_unused));
2173 cl_u1_nor2_16x spare1_nor2_16x(
2174 .in0 (1'b0),
2175 .in1 (1'b0),
2176 .out (spare1_nor2_16x_unused));
2177 cl_u1_inv_32x spare1_inv_32x(
2178 .in (1'b1),
2179 .out (spare1_inv_32x_unused));
2180 cl_sc1_msff_8x spare2_flop(
2181 .l1clk (l1clk),
2182 .siclk (siclk),
2183 .soclk (soclk),
2184 .si (si_2),
2185 .so (so_2),
2186 .d (1'b0),
2187 .q (spare2_flop_unused));
2188 cl_u1_buf_32x spare2_buf_32x(
2189 .in (1'b1),
2190 .out (spare2_buf_32x_unused));
2191 cl_u1_nand3_8x spare2_nand3_8x(
2192 .in0 (1'b1),
2193 .in1 (1'b1),
2194 .in2 (1'b1),
2195 .out (spare2_nand3_8x_unused));
2196 cl_u1_inv_8x spare2_inv_8x(
2197 .in (1'b1),
2198 .out (spare2_inv_8x_unused));
2199 cl_u1_aoi22_4x spare2_aoi22_4x(
2200 .in00 (1'b1),
2201 .in01 (1'b1),
2202 .in10 (1'b1),
2203 .in11 (1'b1),
2204 .out (spare2_aoi22_4x_unused));
2205 cl_u1_buf_8x spare2_buf_8x(
2206 .in (1'b1),
2207 .out (spare2_buf_8x_unused));
2208 cl_u1_oai22_4x spare2_oai22_4x(
2209 .in00 (1'b1),
2210 .in01 (1'b1),
2211 .in10 (1'b1),
2212 .in11 (1'b1),
2213 .out (spare2_oai22_4x_unused));
2214 cl_u1_inv_16x spare2_inv_16x(
2215 .in (1'b1),
2216 .out (spare2_inv_16x_unused));
2217 cl_u1_nand2_16x spare2_nand2_16x(
2218 .in0 (1'b1),
2219 .in1 (1'b1),
2220 .out (spare2_nand2_16x_unused));
2221 cl_u1_nor3_4x spare2_nor3_4x(
2222 .in0 (1'b0),
2223 .in1 (1'b0),
2224 .in2 (1'b0),
2225 .out (spare2_nor3_4x_unused));
2226 cl_u1_nand2_8x spare2_nand2_8x(
2227 .in0 (1'b1),
2228 .in1 (1'b1),
2229 .out (spare2_nand2_8x_unused));
2230 cl_u1_buf_16x spare2_buf_16x(
2231 .in (1'b1),
2232 .out (spare2_buf_16x_unused));
2233 cl_u1_nor2_16x spare2_nor2_16x(
2234 .in0 (1'b0),
2235 .in1 (1'b0),
2236 .out (spare2_nor2_16x_unused));
2237 cl_u1_inv_32x spare2_inv_32x(
2238 .in (1'b1),
2239 .out (spare2_inv_32x_unused));
2240 cl_sc1_msff_8x spare3_flop(
2241 .l1clk (l1clk),
2242 .siclk (siclk),
2243 .soclk (soclk),
2244 .si (si_3),
2245 .so (so_3),
2246 .d (1'b0),
2247 .q (spare3_flop_unused));
2248 cl_u1_buf_32x spare3_buf_32x(
2249 .in (1'b1),
2250 .out (spare3_buf_32x_unused));
2251 cl_u1_nand3_8x spare3_nand3_8x(
2252 .in0 (1'b1),
2253 .in1 (1'b1),
2254 .in2 (1'b1),
2255 .out (spare3_nand3_8x_unused));
2256 cl_u1_inv_8x spare3_inv_8x(
2257 .in (1'b1),
2258 .out (spare3_inv_8x_unused));
2259 cl_u1_aoi22_4x spare3_aoi22_4x(
2260 .in00 (1'b1),
2261 .in01 (1'b1),
2262 .in10 (1'b1),
2263 .in11 (1'b1),
2264 .out (spare3_aoi22_4x_unused));
2265 cl_u1_buf_8x spare3_buf_8x(
2266 .in (1'b1),
2267 .out (spare3_buf_8x_unused));
2268 cl_u1_oai22_4x spare3_oai22_4x(
2269 .in00 (1'b1),
2270 .in01 (1'b1),
2271 .in10 (1'b1),
2272 .in11 (1'b1),
2273 .out (spare3_oai22_4x_unused));
2274 cl_u1_inv_16x spare3_inv_16x(
2275 .in (1'b1),
2276 .out (spare3_inv_16x_unused));
2277 cl_u1_nand2_16x spare3_nand2_16x(
2278 .in0 (1'b1),
2279 .in1 (1'b1),
2280 .out (spare3_nand2_16x_unused));
2281 cl_u1_nor3_4x spare3_nor3_4x(
2282 .in0 (1'b0),
2283 .in1 (1'b0),
2284 .in2 (1'b0),
2285 .out (spare3_nor3_4x_unused));
2286 cl_u1_nand2_8x spare3_nand2_8x(
2287 .in0 (1'b1),
2288 .in1 (1'b1),
2289 .out (spare3_nand2_8x_unused));
2290 cl_u1_buf_16x spare3_buf_16x(
2291 .in (1'b1),
2292 .out (spare3_buf_16x_unused));
2293 cl_u1_nor2_16x spare3_nor2_16x(
2294 .in0 (1'b0),
2295 .in1 (1'b0),
2296 .out (spare3_nor2_16x_unused));
2297 cl_u1_inv_32x spare3_inv_32x(
2298 .in (1'b1),
2299 .out (spare3_inv_32x_unused));
2300 cl_sc1_msff_8x spare4_flop(
2301 .l1clk (l1clk),
2302 .siclk (siclk),
2303 .soclk (soclk),
2304 .si (si_4),
2305 .so (so_4),
2306 .d (1'b0),
2307 .q (spare4_flop_unused));
2308 cl_u1_buf_32x spare4_buf_32x(
2309 .in (1'b1),
2310 .out (spare4_buf_32x_unused));
2311 cl_u1_nand3_8x spare4_nand3_8x(
2312 .in0 (1'b1),
2313 .in1 (1'b1),
2314 .in2 (1'b1),
2315 .out (spare4_nand3_8x_unused));
2316 cl_u1_inv_8x spare4_inv_8x(
2317 .in (1'b1),
2318 .out (spare4_inv_8x_unused));
2319 cl_u1_aoi22_4x spare4_aoi22_4x(
2320 .in00 (1'b1),
2321 .in01 (1'b1),
2322 .in10 (1'b1),
2323 .in11 (1'b1),
2324 .out (spare4_aoi22_4x_unused));
2325 cl_u1_buf_8x spare4_buf_8x(
2326 .in (1'b1),
2327 .out (spare4_buf_8x_unused));
2328 cl_u1_oai22_4x spare4_oai22_4x(
2329 .in00 (1'b1),
2330 .in01 (1'b1),
2331 .in10 (1'b1),
2332 .in11 (1'b1),
2333 .out (spare4_oai22_4x_unused));
2334 cl_u1_inv_16x spare4_inv_16x(
2335 .in (1'b1),
2336 .out (spare4_inv_16x_unused));
2337 cl_u1_nand2_16x spare4_nand2_16x(
2338 .in0 (1'b1),
2339 .in1 (1'b1),
2340 .out (spare4_nand2_16x_unused));
2341 cl_u1_nor3_4x spare4_nor3_4x(
2342 .in0 (1'b0),
2343 .in1 (1'b0),
2344 .in2 (1'b0),
2345 .out (spare4_nor3_4x_unused));
2346 cl_u1_nand2_8x spare4_nand2_8x(
2347 .in0 (1'b1),
2348 .in1 (1'b1),
2349 .out (spare4_nand2_8x_unused));
2350 cl_u1_buf_16x spare4_buf_16x(
2351 .in (1'b1),
2352 .out (spare4_buf_16x_unused));
2353 cl_u1_nor2_16x spare4_nor2_16x(
2354 .in0 (1'b0),
2355 .in1 (1'b0),
2356 .out (spare4_nor2_16x_unused));
2357 cl_u1_inv_32x spare4_inv_32x(
2358 .in (1'b1),
2359 .out (spare4_inv_32x_unused));
2360 cl_sc1_msff_8x spare5_flop(
2361 .l1clk (l1clk),
2362 .siclk (siclk),
2363 .soclk (soclk),
2364 .si (si_5),
2365 .so (so_5),
2366 .d (1'b0),
2367 .q (spare5_flop_unused));
2368 cl_u1_buf_32x spare5_buf_32x(
2369 .in (1'b1),
2370 .out (spare5_buf_32x_unused));
2371 cl_u1_nand3_8x spare5_nand3_8x(
2372 .in0 (1'b1),
2373 .in1 (1'b1),
2374 .in2 (1'b1),
2375 .out (spare5_nand3_8x_unused));
2376 cl_u1_inv_8x spare5_inv_8x(
2377 .in (1'b1),
2378 .out (spare5_inv_8x_unused));
2379 cl_u1_aoi22_4x spare5_aoi22_4x(
2380 .in00 (1'b1),
2381 .in01 (1'b1),
2382 .in10 (1'b1),
2383 .in11 (1'b1),
2384 .out (spare5_aoi22_4x_unused));
2385 cl_u1_buf_8x spare5_buf_8x(
2386 .in (1'b1),
2387 .out (spare5_buf_8x_unused));
2388 cl_u1_oai22_4x spare5_oai22_4x(
2389 .in00 (1'b1),
2390 .in01 (1'b1),
2391 .in10 (1'b1),
2392 .in11 (1'b1),
2393 .out (spare5_oai22_4x_unused));
2394 cl_u1_inv_16x spare5_inv_16x(
2395 .in (1'b1),
2396 .out (spare5_inv_16x_unused));
2397 cl_u1_nand2_16x spare5_nand2_16x(
2398 .in0 (1'b1),
2399 .in1 (1'b1),
2400 .out (spare5_nand2_16x_unused));
2401 cl_u1_nor3_4x spare5_nor3_4x(
2402 .in0 (1'b0),
2403 .in1 (1'b0),
2404 .in2 (1'b0),
2405 .out (spare5_nor3_4x_unused));
2406 cl_u1_nand2_8x spare5_nand2_8x(
2407 .in0 (1'b1),
2408 .in1 (1'b1),
2409 .out (spare5_nand2_8x_unused));
2410 cl_u1_buf_16x spare5_buf_16x(
2411 .in (1'b1),
2412 .out (spare5_buf_16x_unused));
2413 cl_u1_nor2_16x spare5_nor2_16x(
2414 .in0 (1'b0),
2415 .in1 (1'b0),
2416 .out (spare5_nor2_16x_unused));
2417 cl_u1_inv_32x spare5_inv_32x(
2418 .in (1'b1),
2419 .out (spare5_inv_32x_unused));
2420 cl_sc1_msff_8x spare6_flop(
2421 .l1clk (l1clk),
2422 .siclk (siclk),
2423 .soclk (soclk),
2424 .si (si_6),
2425 .so (so_6),
2426 .d (1'b0),
2427 .q (spare6_flop_unused));
2428 cl_u1_buf_32x spare6_buf_32x(
2429 .in (1'b1),
2430 .out (spare6_buf_32x_unused));
2431 cl_u1_nand3_8x spare6_nand3_8x(
2432 .in0 (1'b1),
2433 .in1 (1'b1),
2434 .in2 (1'b1),
2435 .out (spare6_nand3_8x_unused));
2436 cl_u1_inv_8x spare6_inv_8x(
2437 .in (1'b1),
2438 .out (spare6_inv_8x_unused));
2439 cl_u1_aoi22_4x spare6_aoi22_4x(
2440 .in00 (1'b1),
2441 .in01 (1'b1),
2442 .in10 (1'b1),
2443 .in11 (1'b1),
2444 .out (spare6_aoi22_4x_unused));
2445 cl_u1_buf_8x spare6_buf_8x(
2446 .in (1'b1),
2447 .out (spare6_buf_8x_unused));
2448 cl_u1_oai22_4x spare6_oai22_4x(
2449 .in00 (1'b1),
2450 .in01 (1'b1),
2451 .in10 (1'b1),
2452 .in11 (1'b1),
2453 .out (spare6_oai22_4x_unused));
2454 cl_u1_inv_16x spare6_inv_16x(
2455 .in (1'b1),
2456 .out (spare6_inv_16x_unused));
2457 cl_u1_nand2_16x spare6_nand2_16x(
2458 .in0 (1'b1),
2459 .in1 (1'b1),
2460 .out (spare6_nand2_16x_unused));
2461 cl_u1_nor3_4x spare6_nor3_4x(
2462 .in0 (1'b0),
2463 .in1 (1'b0),
2464 .in2 (1'b0),
2465 .out (spare6_nor3_4x_unused));
2466 cl_u1_nand2_8x spare6_nand2_8x(
2467 .in0 (1'b1),
2468 .in1 (1'b1),
2469 .out (spare6_nand2_8x_unused));
2470 cl_u1_buf_16x spare6_buf_16x(
2471 .in (1'b1),
2472 .out (spare6_buf_16x_unused));
2473 cl_u1_nor2_16x spare6_nor2_16x(
2474 .in0 (1'b0),
2475 .in1 (1'b0),
2476 .out (spare6_nor2_16x_unused));
2477 cl_u1_inv_32x spare6_inv_32x(
2478 .in (1'b1),
2479 .out (spare6_inv_32x_unused));
2480 cl_sc1_msff_8x spare7_flop(
2481 .l1clk (l1clk),
2482 .siclk (siclk),
2483 .soclk (soclk),
2484 .si (si_7),
2485 .so (so_7),
2486 .d (1'b0),
2487 .q (spare7_flop_unused));
2488 cl_u1_buf_32x spare7_buf_32x(
2489 .in (1'b1),
2490 .out (spare7_buf_32x_unused));
2491 cl_u1_nand3_8x spare7_nand3_8x(
2492 .in0 (1'b1),
2493 .in1 (1'b1),
2494 .in2 (1'b1),
2495 .out (spare7_nand3_8x_unused));
2496 cl_u1_inv_8x spare7_inv_8x(
2497 .in (1'b1),
2498 .out (spare7_inv_8x_unused));
2499 cl_u1_aoi22_4x spare7_aoi22_4x(
2500 .in00 (1'b1),
2501 .in01 (1'b1),
2502 .in10 (1'b1),
2503 .in11 (1'b1),
2504 .out (spare7_aoi22_4x_unused));
2505 cl_u1_buf_8x spare7_buf_8x(
2506 .in (1'b1),
2507 .out (spare7_buf_8x_unused));
2508 cl_u1_oai22_4x spare7_oai22_4x(
2509 .in00 (1'b1),
2510 .in01 (1'b1),
2511 .in10 (1'b1),
2512 .in11 (1'b1),
2513 .out (spare7_oai22_4x_unused));
2514 cl_u1_inv_16x spare7_inv_16x(
2515 .in (1'b1),
2516 .out (spare7_inv_16x_unused));
2517 cl_u1_nand2_16x spare7_nand2_16x(
2518 .in0 (1'b1),
2519 .in1 (1'b1),
2520 .out (spare7_nand2_16x_unused));
2521 cl_u1_nor3_4x spare7_nor3_4x(
2522 .in0 (1'b0),
2523 .in1 (1'b0),
2524 .in2 (1'b0),
2525 .out (spare7_nor3_4x_unused));
2526 cl_u1_nand2_8x spare7_nand2_8x(
2527 .in0 (1'b1),
2528 .in1 (1'b1),
2529 .out (spare7_nand2_8x_unused));
2530 cl_u1_buf_16x spare7_buf_16x(
2531 .in (1'b1),
2532 .out (spare7_buf_16x_unused));
2533 cl_u1_nor2_16x spare7_nor2_16x(
2534 .in0 (1'b0),
2535 .in1 (1'b0),
2536 .out (spare7_nor2_16x_unused));
2537 cl_u1_inv_32x spare7_inv_32x(
2538 .in (1'b1),
2539 .out (spare7_inv_32x_unused));
2540 cl_sc1_msff_8x spare8_flop(
2541 .l1clk (l1clk),
2542 .siclk (siclk),
2543 .soclk (soclk),
2544 .si (si_8),
2545 .so (so_8),
2546 .d (1'b0),
2547 .q (spare8_flop_unused));
2548 cl_u1_buf_32x spare8_buf_32x(
2549 .in (1'b1),
2550 .out (spare8_buf_32x_unused));
2551 cl_u1_nand3_8x spare8_nand3_8x(
2552 .in0 (1'b1),
2553 .in1 (1'b1),
2554 .in2 (1'b1),
2555 .out (spare8_nand3_8x_unused));
2556 cl_u1_inv_8x spare8_inv_8x(
2557 .in (1'b1),
2558 .out (spare8_inv_8x_unused));
2559 cl_u1_aoi22_4x spare8_aoi22_4x(
2560 .in00 (1'b1),
2561 .in01 (1'b1),
2562 .in10 (1'b1),
2563 .in11 (1'b1),
2564 .out (spare8_aoi22_4x_unused));
2565 cl_u1_buf_8x spare8_buf_8x(
2566 .in (1'b1),
2567 .out (spare8_buf_8x_unused));
2568 cl_u1_oai22_4x spare8_oai22_4x(
2569 .in00 (1'b1),
2570 .in01 (1'b1),
2571 .in10 (1'b1),
2572 .in11 (1'b1),
2573 .out (spare8_oai22_4x_unused));
2574 cl_u1_inv_16x spare8_inv_16x(
2575 .in (1'b1),
2576 .out (spare8_inv_16x_unused));
2577 cl_u1_nand2_16x spare8_nand2_16x(
2578 .in0 (1'b1),
2579 .in1 (1'b1),
2580 .out (spare8_nand2_16x_unused));
2581 cl_u1_nor3_4x spare8_nor3_4x(
2582 .in0 (1'b0),
2583 .in1 (1'b0),
2584 .in2 (1'b0),
2585 .out (spare8_nor3_4x_unused));
2586 cl_u1_nand2_8x spare8_nand2_8x(
2587 .in0 (1'b1),
2588 .in1 (1'b1),
2589 .out (spare8_nand2_8x_unused));
2590 cl_u1_buf_16x spare8_buf_16x(
2591 .in (1'b1),
2592 .out (spare8_buf_16x_unused));
2593 cl_u1_nor2_16x spare8_nor2_16x(
2594 .in0 (1'b0),
2595 .in1 (1'b0),
2596 .out (spare8_nor2_16x_unused));
2597 cl_u1_inv_32x spare8_inv_32x(
2598 .in (1'b1),
2599 .out (spare8_inv_32x_unused));
2600 cl_sc1_msff_8x spare9_flop(
2601 .l1clk (l1clk),
2602 .siclk (siclk),
2603 .soclk (soclk),
2604 .si (si_9),
2605 .so (so_9),
2606 .d (1'b0),
2607 .q (spare9_flop_unused));
2608 cl_u1_buf_32x spare9_buf_32x(
2609 .in (1'b1),
2610 .out (spare9_buf_32x_unused));
2611 cl_u1_nand3_8x spare9_nand3_8x(
2612 .in0 (1'b1),
2613 .in1 (1'b1),
2614 .in2 (1'b1),
2615 .out (spare9_nand3_8x_unused));
2616 cl_u1_inv_8x spare9_inv_8x(
2617 .in (1'b1),
2618 .out (spare9_inv_8x_unused));
2619 cl_u1_aoi22_4x spare9_aoi22_4x(
2620 .in00 (1'b1),
2621 .in01 (1'b1),
2622 .in10 (1'b1),
2623 .in11 (1'b1),
2624 .out (spare9_aoi22_4x_unused));
2625 cl_u1_buf_8x spare9_buf_8x(
2626 .in (1'b1),
2627 .out (spare9_buf_8x_unused));
2628 cl_u1_oai22_4x spare9_oai22_4x(
2629 .in00 (1'b1),
2630 .in01 (1'b1),
2631 .in10 (1'b1),
2632 .in11 (1'b1),
2633 .out (spare9_oai22_4x_unused));
2634 cl_u1_inv_16x spare9_inv_16x(
2635 .in (1'b1),
2636 .out (spare9_inv_16x_unused));
2637 cl_u1_nand2_16x spare9_nand2_16x(
2638 .in0 (1'b1),
2639 .in1 (1'b1),
2640 .out (spare9_nand2_16x_unused));
2641 cl_u1_nor3_4x spare9_nor3_4x(
2642 .in0 (1'b0),
2643 .in1 (1'b0),
2644 .in2 (1'b0),
2645 .out (spare9_nor3_4x_unused));
2646 cl_u1_nand2_8x spare9_nand2_8x(
2647 .in0 (1'b1),
2648 .in1 (1'b1),
2649 .out (spare9_nand2_8x_unused));
2650 cl_u1_buf_16x spare9_buf_16x(
2651 .in (1'b1),
2652 .out (spare9_buf_16x_unused));
2653 cl_u1_nor2_16x spare9_nor2_16x(
2654 .in0 (1'b0),
2655 .in1 (1'b0),
2656 .out (spare9_nor2_16x_unused));
2657 cl_u1_inv_32x spare9_inv_32x(
2658 .in (1'b1),
2659 .out (spare9_inv_32x_unused));
2660endmodule
2661`endcelldefine
2662
2663`celldefine
2664module buff_macro__dbuff_16x__stack_none__width_4(din, dout);
2665
2666 input [3:0] din;
2667 output [3:0] dout;
2668
2669 buff #(4) d0_0(
2670 .in (din[3:0]),
2671 .out (dout[3:0]));
2672endmodule
2673`endcelldefine
2674
2675`celldefine
2676module msff_macro__dmsff_16x__stack_10c__width_10(din, clk, en, se, scan_in,
2677 siclk, soclk, pce_ov, stop, dout, scan_out);
2678
2679 input [9:0] din;
2680 input clk;
2681 input en;
2682 input se;
2683 input scan_in;
2684 input siclk;
2685 input soclk;
2686 input pce_ov;
2687 input stop;
2688 output [9:0] dout;
2689 output scan_out;
2690
2691 wire l1clk;
2692 wire siclk_out;
2693 wire soclk_out;
2694 wire [8:0] so;
2695
2696 cl_dp1_l1hdr_8x c0_0(
2697 .l2clk (clk),
2698 .pce (en),
2699 .aclk (siclk),
2700 .bclk (soclk),
2701 .l1clk (l1clk),
2702 .se (se),
2703 .pce_ov (pce_ov),
2704 .stop (stop),
2705 .siclk_out (siclk_out),
2706 .soclk_out (soclk_out));
2707 dff #(10) d0_0(
2708 .l1clk (l1clk),
2709 .siclk (siclk_out),
2710 .soclk (soclk_out),
2711 .d (din[9:0]),
2712 .si ({scan_in, so[8:0]}),
2713 .so ({so[8:0], scan_out}),
2714 .q (dout[9:0]));
2715endmodule
2716`endcelldefine
2717
2718`celldefine
2719module nand_macro__dnand_1x__ports_2__stack_10c__width_9(din0, din1, dout);
2720
2721 input [8:0] din0;
2722 input [8:0] din1;
2723 output [8:0] dout;
2724
2725 nand2 #(9) d0_0(
2726 .in0 (din0[8:0]),
2727 .in1 (din1[8:0]),
2728 .out (dout[8:0]));
2729endmodule
2730`endcelldefine
2731
2732`celldefine
2733module inv_macro__dinv_24x__stack_10c__width_10(din, dout);
2734
2735 input [9:0] din;
2736 output [9:0] dout;
2737
2738 inv #(10) d0_0(
2739 .in (din[9:0]),
2740 .out (dout[9:0]));
2741endmodule
2742`endcelldefine
2743
2744`celldefine
2745module buff_macro__dbuff_32x__minbuff_1__stack_none__width_19(din, dout);
2746
2747 input [18:0] din;
2748 output [18:0] dout;
2749
2750 buff #(19) d0_0(
2751 .in (din[18:0]),
2752 .out (dout[18:0]));
2753endmodule
2754`endcelldefine
2755
2756`celldefine
2757module msff_macro__stack_10c__width_10(din, clk, en, se, scan_in, siclk, soclk,
2758 pce_ov, stop, dout, scan_out);
2759
2760 input [9:0] din;
2761 input clk;
2762 input en;
2763 input se;
2764 input scan_in;
2765 input siclk;
2766 input soclk;
2767 input pce_ov;
2768 input stop;
2769 output [9:0] dout;
2770 output scan_out;
2771
2772 wire l1clk;
2773 wire siclk_out;
2774 wire soclk_out;
2775 wire [8:0] so;
2776
2777 cl_dp1_l1hdr_8x c0_0(
2778 .l2clk (clk),
2779 .pce (en),
2780 .aclk (siclk),
2781 .bclk (soclk),
2782 .l1clk (l1clk),
2783 .se (se),
2784 .pce_ov (pce_ov),
2785 .stop (stop),
2786 .siclk_out (siclk_out),
2787 .soclk_out (soclk_out));
2788 dff #(10) d0_0(
2789 .l1clk (l1clk),
2790 .siclk (siclk_out),
2791 .soclk (soclk_out),
2792 .d (din[9:0]),
2793 .si ({scan_in, so[8:0]}),
2794 .so ({so[8:0], scan_out}),
2795 .q (dout[9:0]));
2796endmodule
2797`endcelldefine
2798
2799`celldefine
2800module mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10(
2801 din0, din1, sel0, dout);
2802
2803 input [9:0] din0;
2804 input [9:0] din1;
2805 input sel0;
2806 output [9:0] dout;
2807
2808 wire psel0;
2809 wire psel1;
2810
2811 cl_dp1_penc2_8x c0_0(
2812 .sel0 (sel0),
2813 .psel0 (psel0),
2814 .psel1 (psel1));
2815 mux2s #(10) d0_0(
2816 .sel0 (psel0),
2817 .sel1 (psel1),
2818 .in0 (din0[9:0]),
2819 .in1 (din1[9:0]),
2820 .dout (dout[9:0]));
2821endmodule
2822`endcelldefine
2823
2824`celldefine
2825module mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10(
2826 din0, din1, din2, din3, din4, din5, din6, din7, sel, dout);
2827
2828 input [9:0] din0;
2829 input [9:0] din1;
2830 input [9:0] din2;
2831 input [9:0] din3;
2832 input [9:0] din4;
2833 input [9:0] din5;
2834 input [9:0] din6;
2835 input [9:0] din7;
2836 input [2:0] sel;
2837 output [9:0] dout;
2838
2839 wire psel0;
2840 wire psel1;
2841 wire psel2;
2842 wire psel3;
2843 wire psel4;
2844 wire psel5;
2845 wire psel6;
2846 wire psel7;
2847
2848 cl_dp1_pdec8_8x c0_0(
2849 .test (1'b1),
2850 .sel0 (sel[0]),
2851 .sel1 (sel[1]),
2852 .sel2 (sel[2]),
2853 .psel0 (psel0),
2854 .psel1 (psel1),
2855 .psel2 (psel2),
2856 .psel3 (psel3),
2857 .psel4 (psel4),
2858 .psel5 (psel5),
2859 .psel6 (psel6),
2860 .psel7 (psel7));
2861 mux8s #(10) d0_0(
2862 .sel0 (psel0),
2863 .sel1 (psel1),
2864 .sel2 (psel2),
2865 .sel3 (psel3),
2866 .sel4 (psel4),
2867 .sel5 (psel5),
2868 .sel6 (psel6),
2869 .sel7 (psel7),
2870 .in0 (din0[9:0]),
2871 .in1 (din1[9:0]),
2872 .in2 (din2[9:0]),
2873 .in3 (din3[9:0]),
2874 .in4 (din4[9:0]),
2875 .in5 (din5[9:0]),
2876 .in6 (din6[9:0]),
2877 .in7 (din7[9:0]),
2878 .dout (dout[9:0]));
2879endmodule
2880`endcelldefine
2881
2882`celldefine
2883module mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10(din0, din1,
2884 din2, din3, sel, dout);
2885
2886 input [9:0] din0;
2887 input [9:0] din1;
2888 input [9:0] din2;
2889 input [9:0] din3;
2890 input [1:0] sel;
2891 output [9:0] dout;
2892
2893 wire psel0;
2894 wire psel1;
2895 wire psel2;
2896 wire psel3;
2897
2898 cl_dp1_pdec4_8x c0_0(
2899 .test (1'b1),
2900 .sel0 (sel[0]),
2901 .sel1 (sel[1]),
2902 .psel0 (psel0),
2903 .psel1 (psel1),
2904 .psel2 (psel2),
2905 .psel3 (psel3));
2906 mux4s #(10) d0_0(
2907 .sel0 (psel0),
2908 .sel1 (psel1),
2909 .sel2 (psel2),
2910 .sel3 (psel3),
2911 .in0 (din0[9:0]),
2912 .in1 (din1[9:0]),
2913 .in2 (din2[9:0]),
2914 .in3 (din3[9:0]),
2915 .dout (dout[9:0]));
2916endmodule
2917`endcelldefine
2918
2919`celldefine
2920module mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10(din0, sel0,
2921 din1, sel1, dout);
2922
2923 input [9:0] din0;
2924 input sel0;
2925 input [9:0] din1;
2926 input sel1;
2927 output [9:0] dout;
2928
2929 wire buffout0;
2930 wire buffout1;
2931
2932 cl_dp1_muxbuff2_8x c0_0(
2933 .in0 (sel0),
2934 .in1 (sel1),
2935 .out0 (buffout0),
2936 .out1 (buffout1));
2937 mux2s #(10) d0_0(
2938 .sel0 (buffout0),
2939 .sel1 (buffout1),
2940 .in0 (din0[9:0]),
2941 .in1 (din1[9:0]),
2942 .dout (dout[9:0]));
2943endmodule
2944`endcelldefine
2945
2946`celldefine
2947module buff_macro__dbuff_8x__stack_10c__width_1(din, dout);
2948
2949 input [0:0] din;
2950 output [0:0] dout;
2951
2952 buff #(1) d0_0(
2953 .in (din[0]),
2954 .out (dout[0]));
2955endmodule
2956`endcelldefine
2957
2958`celldefine
2959module nand_macro__dnand_4x__ports_3__stack_10c__width_10(din0, din1, din2, dout
2960 );
2961
2962 input [9:0] din0;
2963 input [9:0] din1;
2964 input [9:0] din2;
2965 output [9:0] dout;
2966
2967 nand3 #(10) d0_0(
2968 .in0 (din0[9:0]),
2969 .in1 (din1[9:0]),
2970 .in2 (din2[9:0]),
2971 .out (dout[9:0]));
2972endmodule
2973`endcelldefine
2974
2975`celldefine
2976module nand_macro__dnand_4x__ports_2__stack_10c__width_10(din0, din1, dout);
2977
2978 input [9:0] din0;
2979 input [9:0] din1;
2980 output [9:0] dout;
2981
2982 nand2 #(10) d0_0(
2983 .in0 (din0[9:0]),
2984 .in1 (din1[9:0]),
2985 .out (dout[9:0]));
2986endmodule
2987`endcelldefine
2988
2989`celldefine
2990module nand_macro__dnand_12x__ports_2__stack_10c__width_10(din0, din1, dout);
2991
2992 input [9:0] din0;
2993 input [9:0] din1;
2994 output [9:0] dout;
2995
2996 nand2 #(10) d0_0(
2997 .in0 (din0[9:0]),
2998 .in1 (din1[9:0]),
2999 .out (dout[9:0]));
3000endmodule
3001`endcelldefine
3002
3003`celldefine
3004module inv_macro__dinv_2x__stack_10c__width_9(din, dout);
3005
3006 input [8:0] din;
3007 output [8:0] dout;
3008
3009 inv #(9) d0_0(
3010 .in (din[8:0]),
3011 .out (dout[8:0]));
3012endmodule
3013`endcelldefine
3014
3015`celldefine
3016module mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9(din0, din1,
3017 sel0, dout);
3018
3019 input [8:0] din0;
3020 input [8:0] din1;
3021 input sel0;
3022 output [8:0] dout;
3023
3024 wire psel0;
3025 wire psel1;
3026
3027 cl_dp1_penc2_8x c0_0(
3028 .sel0 (sel0),
3029 .psel0 (psel0),
3030 .psel1 (psel1));
3031 mux2s #(9) d0_0(
3032 .sel0 (psel0),
3033 .sel1 (psel1),
3034 .in0 (din0[8:0]),
3035 .in1 (din1[8:0]),
3036 .dout (dout[8:0]));
3037endmodule
3038`endcelldefine
3039
3040`celldefine
3041module nand_macro__dnand_4x__ports_3__stack_10c__width_1(din0, din1, din2, dout)
3042 ;
3043
3044 input [0:0] din0;
3045 input [0:0] din1;
3046 input [0:0] din2;
3047 output [0:0] dout;
3048
3049 nand3 #(1) d0_0(
3050 .in0 (din0[0]),
3051 .in1 (din1[0]),
3052 .in2 (din2[0]),
3053 .out (dout[0]));
3054endmodule
3055`endcelldefine
3056
3057`celldefine
3058module nand_macro__dnand_12x__ports_2__stack_10c__width_1(din0, din1, dout);
3059
3060 input [0:0] din0;
3061 input [0:0] din1;
3062 output [0:0] dout;
3063
3064 nand2 #(1) d0_0(
3065 .in0 (din0[0]),
3066 .in1 (din1[0]),
3067 .out (dout[0]));
3068endmodule
3069`endcelldefine
3070
3071`celldefine
3072module inv_macro__dinv_4x__stack_10c__width_1(din, dout);
3073
3074 input [0:0] din;
3075 output [0:0] dout;
3076
3077 inv #(1) d0_0(
3078 .in (din[0]),
3079 .out (dout[0]));
3080endmodule
3081`endcelldefine
3082
3083`celldefine
3084module inv_macro__dinv_12x__stack_10c__width_9(din, dout);
3085
3086 input [8:0] din;
3087 output [8:0] dout;
3088
3089 inv #(9) d0_0(
3090 .in (din[8:0]),
3091 .out (dout[8:0]));
3092endmodule
3093`endcelldefine
3094
3095`celldefine
3096module and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2(din0, din1,
3097 din2, din3, dout);
3098
3099 input [1:0] din0;
3100 input [1:0] din1;
3101 input [1:0] din2;
3102 input [1:0] din3;
3103 output [1:0] dout;
3104
3105 and4 #(2) d0_0(
3106 .in0 (din0[1:0]),
3107 .in1 (din1[1:0]),
3108 .in2 (din2[1:0]),
3109 .in3 (din3[1:0]),
3110 .out (dout[1:0]));
3111endmodule
3112`endcelldefine
3113
3114`celldefine
3115module and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4(din0, din1,
3116 din2, dout);
3117
3118 input [3:0] din0;
3119 input [3:0] din1;
3120 input [3:0] din2;
3121 output [3:0] dout;
3122
3123 and3 #(4) d0_0(
3124 .in0 (din0[3:0]),
3125 .in1 (din1[3:0]),
3126 .in2 (din2[3:0]),
3127 .out (dout[3:0]));
3128endmodule
3129`endcelldefine
3130
3131`celldefine
3132module nor_macro__dnor_8x__ports_2__stack_10c__width_3(din0, din1, dout);
3133
3134 input [2:0] din0;
3135 input [2:0] din1;
3136 output [2:0] dout;
3137
3138 nor2 #(3) d0_0(
3139 .in0 (din0[2:0]),
3140 .in1 (din1[2:0]),
3141 .out (dout[2:0]));
3142endmodule
3143`endcelldefine
3144
3145`celldefine
3146module nand_macro__dnand_2x__ports_2__stack_10c__width_5(din0, din1, dout);
3147
3148 input [4:0] din0;
3149 input [4:0] din1;
3150 output [4:0] dout;
3151
3152 nand2 #(5) d0_0(
3153 .in0 (din0[4:0]),
3154 .in1 (din1[4:0]),
3155 .out (dout[4:0]));
3156endmodule
3157`endcelldefine
3158
3159`celldefine
3160module nand_macro__dnand_8x__ports_2__stack_10c__width_1(din0, din1, dout);
3161
3162 input [0:0] din0;
3163 input [0:0] din1;
3164 output [0:0] dout;
3165
3166 nand2 #(1) d0_0(
3167 .in0 (din0[0]),
3168 .in1 (din1[0]),
3169 .out (dout[0]));
3170endmodule
3171`endcelldefine
3172
3173`celldefine
3174module inv_macro__dinv_4x__stack_10c__width_5(din, dout);
3175
3176 input [4:0] din;
3177 output [4:0] dout;
3178
3179 inv #(5) d0_0(
3180 .in (din[4:0]),
3181 .out (dout[4:0]));
3182endmodule
3183`endcelldefine
3184
3185`celldefine
3186module nand_macro__dnand_8x__ports_3__stack_10c__width_8(din0, din1, din2, dout)
3187 ;
3188
3189 input [7:0] din0;
3190 input [7:0] din1;
3191 input [7:0] din2;
3192 output [7:0] dout;
3193
3194 nand3 #(8) d0_0(
3195 .in0 (din0[7:0]),
3196 .in1 (din1[7:0]),
3197 .in2 (din2[7:0]),
3198 .out (dout[7:0]));
3199endmodule
3200`endcelldefine
3201
3202`celldefine
3203module nand_macro__dnand_32x__ports_2__stack_10c__width_9(din0, din1, dout);
3204
3205 input [8:0] din0;
3206 input [8:0] din1;
3207 output [8:0] dout;
3208
3209 nand2 #(9) d0_0(
3210 .in0 (din0[8:0]),
3211 .in1 (din1[8:0]),
3212 .out (dout[8:0]));
3213endmodule
3214`endcelldefine
3215
3216`celldefine
3217module buff_macro__dbuff_48x__stack_10c__width_9(din, dout);
3218
3219 input [8:0] din;
3220 output [8:0] dout;
3221
3222 buff #(9) d0_0(
3223 .in (din[8:0]),
3224 .out (dout[8:0]));
3225endmodule
3226`endcelldefine
3227
3228`celldefine
3229module buff_macro__dbuff_32x__stack_10c__width_9(din, dout);
3230
3231 input [8:0] din;
3232 output [8:0] dout;
3233
3234 buff #(9) d0_0(
3235 .in (din[8:0]),
3236 .out (dout[8:0]));
3237endmodule
3238`endcelldefine
3239
3240`celldefine
3241module buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9(din, dout);
3242
3243 input [8:0] din;
3244 output [8:0] dout;
3245
3246 buff #(9) d0_0(
3247 .in (din[8:0]),
3248 .out (dout[8:0]));
3249endmodule
3250`endcelldefine
3251
3252`celldefine
3253module inv_macro__dinv_8x__stack_10c__width_9(din, dout);
3254
3255 input [8:0] din;
3256 output [8:0] dout;
3257
3258 inv #(9) d0_0(
3259 .in (din[8:0]),
3260 .out (dout[8:0]));
3261endmodule
3262`endcelldefine
3263
3264`celldefine
3265module nand_macro__dnand_1x__ports_3__stack_10c__width_9(din0, din1, din2, dout)
3266 ;
3267
3268 input [8:0] din0;
3269 input [8:0] din1;
3270 input [8:0] din2;
3271 output [8:0] dout;
3272
3273 nand3 #(9) d0_0(
3274 .in0 (din0[8:0]),
3275 .in1 (din1[8:0]),
3276 .in2 (din2[8:0]),
3277 .out (dout[8:0]));
3278endmodule
3279`endcelldefine
3280
3281`celldefine
3282module nand_macro__dnand_1x__ports_2__stack_10c__width_10(din0, din1, dout);
3283
3284 input [9:0] din0;
3285 input [9:0] din1;
3286 output [9:0] dout;
3287
3288 nand2 #(10) d0_0(
3289 .in0 (din0[9:0]),
3290 .in1 (din1[9:0]),
3291 .out (dout[9:0]));
3292endmodule
3293`endcelldefine
3294
3295`celldefine
3296module msff_macro__dmsff_8x__stack_10c__stack_10c__width_10(din, clk, en, se,
3297 scan_in, siclk, soclk, pce_ov, stop, dout, scan_out);
3298
3299 input [9:0] din;
3300 input clk;
3301 input en;
3302 input se;
3303 input scan_in;
3304 input siclk;
3305 input soclk;
3306 input pce_ov;
3307 input stop;
3308 output [9:0] dout;
3309 output scan_out;
3310
3311 wire l1clk;
3312 wire siclk_out;
3313 wire soclk_out;
3314 wire [8:0] so;
3315
3316 cl_dp1_l1hdr_8x c0_0(
3317 .l2clk (clk),
3318 .pce (en),
3319 .aclk (siclk),
3320 .bclk (soclk),
3321 .l1clk (l1clk),
3322 .se (se),
3323 .pce_ov (pce_ov),
3324 .stop (stop),
3325 .siclk_out (siclk_out),
3326 .soclk_out (soclk_out));
3327 dff #(10) d0_0(
3328 .l1clk (l1clk),
3329 .siclk (siclk_out),
3330 .soclk (soclk_out),
3331 .d (din[9:0]),
3332 .si ({scan_in, so[8:0]}),
3333 .so ({so[8:0], scan_out}),
3334 .q (dout[9:0]));
3335endmodule
3336`endcelldefine
3337
3338`celldefine
3339module nand_macro__dnand_2x__ports_2__stack_10c__width_9(din0, din1, dout);
3340
3341 input [8:0] din0;
3342 input [8:0] din1;
3343 output [8:0] dout;
3344
3345 nand2 #(9) d0_0(
3346 .in0 (din0[8:0]),
3347 .in1 (din1[8:0]),
3348 .out (dout[8:0]));
3349endmodule
3350`endcelldefine
3351
3352`celldefine
3353module nand_macro__dnand_4x__ports_3__stack_10c__width_9(din0, din1, din2, dout)
3354 ;
3355
3356 input [8:0] din0;
3357 input [8:0] din1;
3358 input [8:0] din2;
3359 output [8:0] dout;
3360
3361 nand3 #(9) d0_0(
3362 .in0 (din0[8:0]),
3363 .in1 (din1[8:0]),
3364 .in2 (din2[8:0]),
3365 .out (dout[8:0]));
3366endmodule
3367`endcelldefine
3368
3369`celldefine
3370module nand_macro__dnand_8x__ports_2__stack_10c__width_9(din0, din1, dout);
3371
3372 input [8:0] din0;
3373 input [8:0] din1;
3374 output [8:0] dout;
3375
3376 nand2 #(9) d0_0(
3377 .in0 (din0[8:0]),
3378 .in1 (din1[8:0]),
3379 .out (dout[8:0]));
3380endmodule
3381`endcelldefine
3382
3383`celldefine
3384module nor_macro__dnor_4x__ports_3__stack_10c__width_6(din0, din1, din2, dout);
3385
3386 input [5:0] din0;
3387 input [5:0] din1;
3388 input [5:0] din2;
3389 output [5:0] dout;
3390
3391 nor3 #(6) d0_0(
3392 .in0 (din0[5:0]),
3393 .in1 (din1[5:0]),
3394 .in2 (din2[5:0]),
3395 .out (dout[5:0]));
3396endmodule
3397`endcelldefine
3398
3399`celldefine
3400module nand_macro__dnand_8x__ports_3__stack_10c__width_2(din0, din1, din2, dout)
3401 ;
3402
3403 input [1:0] din0;
3404 input [1:0] din1;
3405 input [1:0] din2;
3406 output [1:0] dout;
3407
3408 nand3 #(2) d0_0(
3409 .in0 (din0[1:0]),
3410 .in1 (din1[1:0]),
3411 .in2 (din2[1:0]),
3412 .out (dout[1:0]));
3413endmodule
3414`endcelldefine
3415
3416`celldefine
3417module inv_macro__dinv_32x__stack_10c__width_1(din, dout);
3418
3419 input [0:0] din;
3420 output [0:0] dout;
3421
3422 inv #(1) d0_0(
3423 .in (din[0]),
3424 .out (dout[0]));
3425endmodule
3426`endcelldefine
3427
3428`celldefine
3429module nand_macro__dnand_1x__ports_3__stack_10c__width_3(din0, din1, din2, dout)
3430 ;
3431
3432 input [2:0] din0;
3433 input [2:0] din1;
3434 input [2:0] din2;
3435 output [2:0] dout;
3436
3437 nand3 #(3) d0_0(
3438 .in0 (din0[2:0]),
3439 .in1 (din1[2:0]),
3440 .in2 (din2[2:0]),
3441 .out (dout[2:0]));
3442endmodule
3443`endcelldefine
3444
3445`celldefine
3446module nor_macro__dnor_4x__ports_3__stack_10c__width_1(din0, din1, din2, dout);
3447
3448 input [0:0] din0;
3449 input [0:0] din1;
3450 input [0:0] din2;
3451 output [0:0] dout;
3452
3453 nor3 #(1) d0_0(
3454 .in0 (din0[0]),
3455 .in1 (din1[0]),
3456 .in2 (din2[0]),
3457 .out (dout[0]));
3458endmodule
3459`endcelldefine
3460
3461`celldefine
3462module mux2s(dout, in0, in1, sel0, sel1);
3463
3464 parameter SIZE = 1;
3465
3466 output [(SIZE - 1):0] dout;
3467 input [(SIZE - 1):0] in0;
3468 input [(SIZE - 1):0] in1;
3469 input sel0;
3470 input sel1;
3471
3472 assign dout = ((in0 & {SIZE {sel0}}) | (in1 & {SIZE {sel1}}));
3473endmodule
3474`endcelldefine
3475
3476`celldefine
3477module mux4s(dout, in0, in1, in2, in3, sel0, sel1, sel2, sel3);
3478
3479 parameter SIZE = 1;
3480
3481 output [(SIZE - 1):0] dout;
3482 input [(SIZE - 1):0] in0;
3483 input [(SIZE - 1):0] in1;
3484 input [(SIZE - 1):0] in2;
3485 input [(SIZE - 1):0] in3;
3486 input sel0;
3487 input sel1;
3488 input sel2;
3489 input sel3;
3490
3491 assign dout = ((((in0 & {SIZE {sel0}}) | (in1 & {SIZE {sel1}})) | (in2 &
3492 {SIZE {sel2}})) | (in3 & {SIZE {sel3}}));
3493endmodule
3494`endcelldefine
3495
3496`celldefine
3497module mux8s(dout, in0, in1, in2, in3, in4, in5, in6, in7, sel0, sel1, sel2,
3498 sel3, sel4, sel5, sel6, sel7);
3499
3500 parameter SIZE = 1;
3501
3502 output [(SIZE - 1):0] dout;
3503 input [(SIZE - 1):0] in0;
3504 input [(SIZE - 1):0] in1;
3505 input [(SIZE - 1):0] in2;
3506 input [(SIZE - 1):0] in3;
3507 input [(SIZE - 1):0] in4;
3508 input [(SIZE - 1):0] in5;
3509 input [(SIZE - 1):0] in6;
3510 input [(SIZE - 1):0] in7;
3511 input sel0;
3512 input sel1;
3513 input sel2;
3514 input sel3;
3515 input sel4;
3516 input sel5;
3517 input sel6;
3518 input sel7;
3519
3520 assign dout = ((((((((in0 & {SIZE {sel0}}) | (in1 & {SIZE {sel1}})) | (
3521 in2 & {SIZE {sel2}})) | (in3 & {SIZE {sel3}})) | (in4 & {SIZE {
3522 sel4}})) | (in5 & {SIZE {sel5}})) | (in6 & {SIZE {sel6}})) | (
3523 in7 & {SIZE {sel7}}));
3524endmodule
3525`endcelldefine
3526
3527`celldefine
3528module dff(q, so, d, l1clk, si, siclk, soclk);
3529
3530 parameter SIZE = 1;
3531
3532 output [(SIZE - 1):0] q;
3533 output [(SIZE - 1):0] so;
3534 input [(SIZE - 1):0] d;
3535 input l1clk;
3536 input [(SIZE - 1):0] si;
3537 input siclk;
3538 input soclk;
3539
3540 reg [(SIZE - 1):0] q;
3541 reg [(SIZE - 1):0] l1;
3542
3543 assign so[(SIZE - 1):0] = q[(SIZE - 1):0];
3544
3545 always @(posedge l1clk or posedge siclk) begin
3546 if (siclk) begin
3547 q[(SIZE - 1):0] <= {SIZE {1'b0}};
3548 end
3549 else
3550 begin
3551 q[(SIZE - 1):0] <= d[(SIZE - 1):0];
3552 end
3553 end
3554endmodule
3555`endcelldefine
3556
3557`celldefine
3558module and3(out, in0, in1, in2);
3559
3560 parameter SIZE = 1;
3561
3562 output [(SIZE - 1):0] out;
3563 input [(SIZE - 1):0] in0;
3564 input [(SIZE - 1):0] in1;
3565 input [(SIZE - 1):0] in2;
3566
3567 assign out[(SIZE - 1):0] = ((in0[(SIZE - 1):0] & in1[(SIZE - 1):0]) &
3568 in2[(SIZE - 1):0]);
3569endmodule
3570`endcelldefine
3571
3572`celldefine
3573module and4(out, in0, in1, in2, in3);
3574
3575 parameter SIZE = 1;
3576
3577 output [(SIZE - 1):0] out;
3578 input [(SIZE - 1):0] in0;
3579 input [(SIZE - 1):0] in1;
3580 input [(SIZE - 1):0] in2;
3581 input [(SIZE - 1):0] in3;
3582
3583 assign out[(SIZE - 1):0] = (((in0[(SIZE - 1):0] & in1[(SIZE - 1):0]) &
3584 in2[(SIZE - 1):0]) & in3[(SIZE - 1):0]);
3585endmodule
3586`endcelldefine
3587
3588`celldefine
3589module nand2(out, in0, in1);
3590
3591 parameter SIZE = 1;
3592
3593 output [(SIZE - 1):0] out;
3594 input [(SIZE - 1):0] in0;
3595 input [(SIZE - 1):0] in1;
3596
3597 assign out[(SIZE - 1):0] = (~(in0[(SIZE - 1):0] & in1[(SIZE - 1):0]));
3598endmodule
3599`endcelldefine
3600
3601`celldefine
3602module nand3(out, in0, in1, in2);
3603
3604 parameter SIZE = 1;
3605
3606 output [(SIZE - 1):0] out;
3607 input [(SIZE - 1):0] in0;
3608 input [(SIZE - 1):0] in1;
3609 input [(SIZE - 1):0] in2;
3610
3611 assign out[(SIZE - 1):0] = (~((in0[(SIZE - 1):0] & in1[(SIZE - 1):0]) &
3612 in2[(SIZE - 1):0]));
3613endmodule
3614`endcelldefine
3615
3616`celldefine
3617module nor2(out, in0, in1);
3618
3619 parameter SIZE = 1;
3620
3621 output [(SIZE - 1):0] out;
3622 input [(SIZE - 1):0] in0;
3623 input [(SIZE - 1):0] in1;
3624
3625 assign out[(SIZE - 1):0] = (~(in0[(SIZE - 1):0] | in1[(SIZE - 1):0]));
3626endmodule
3627`endcelldefine
3628
3629`celldefine
3630module nor3(out, in0, in1, in2);
3631
3632 parameter SIZE = 1;
3633
3634 output [(SIZE - 1):0] out;
3635 input [(SIZE - 1):0] in0;
3636 input [(SIZE - 1):0] in1;
3637 input [(SIZE - 1):0] in2;
3638
3639 assign out[(SIZE - 1):0] = (~((in0[(SIZE - 1):0] | in1[(SIZE - 1):0]) |
3640 in2[(SIZE - 1):0]));
3641endmodule
3642`endcelldefine
3643
3644`celldefine
3645module buff(out, in);
3646
3647 parameter SIZE = 1;
3648
3649 output [(SIZE - 1):0] out;
3650 input [(SIZE - 1):0] in;
3651
3652 assign out[(SIZE - 1):0] = in[(SIZE - 1):0];
3653endmodule
3654`endcelldefine
3655
3656`celldefine
3657module inv(out, in);
3658
3659 parameter SIZE = 1;
3660
3661 output [(SIZE - 1):0] out;
3662 input [(SIZE - 1):0] in;
3663
3664 assign out[(SIZE - 1):0] = (~in[(SIZE - 1):0]);
3665endmodule
3666`endcelldefine
3667
3668`celldefine
3669module cl_dp1_l1hdr_8x(l1clk, l2clk, se, pce, pce_ov, stop, aclk, bclk,
3670 siclk_out, soclk_out);
3671
3672 output l1clk;
3673 input l2clk;
3674 input se;
3675 input pce;
3676 input pce_ov;
3677 input stop;
3678 input aclk;
3679 input bclk;
3680 output siclk_out;
3681 output soclk_out;
3682
3683 reg l1en;
3684
3685 assign l1clk = ((l2clk & l1en) || se);
3686 assign siclk_out = aclk;
3687 assign soclk_out = bclk;
3688
3689 always @(l2clk or stop or pce or pce_ov) begin
3690 if (~l2clk) begin
3691 l1en <= ((~stop) & (pce | pce_ov));
3692 end
3693 end
3694endmodule
3695`endcelldefine
3696
3697`celldefine
3698module cl_dp1_muxbuff2_8x(in0, in1, out0, out1);
3699
3700 input in0;
3701 input in1;
3702 output out0;
3703 output out1;
3704
3705 buf (out1, in1);
3706 buf (out0, in0);
3707endmodule
3708`endcelldefine
3709
3710`celldefine
3711module cl_dp1_pdec4_8x(sel0, sel1, test, psel0, psel1, psel2, psel3);
3712
3713 input sel0;
3714 input sel1;
3715 input test;
3716 output psel0;
3717 output psel1;
3718 output psel2;
3719 output psel3;
3720
3721 assign psel0 = ((~sel1) & (~sel0));
3722 assign psel1 = ((~sel1) & sel0);
3723 assign psel2 = (sel1 & (~sel0));
3724 assign psel3 = ((sel1 & sel0) & test);
3725endmodule
3726`endcelldefine
3727
3728`celldefine
3729module cl_dp1_pdec8_8x(sel0, sel1, sel2, test, psel0, psel1, psel2, psel3,
3730 psel4, psel5, psel6, psel7);
3731
3732 input sel0;
3733 input sel1;
3734 input sel2;
3735 input test;
3736 output psel0;
3737 output psel1;
3738 output psel2;
3739 output psel3;
3740 output psel4;
3741 output psel5;
3742 output psel6;
3743 output psel7;
3744
3745 assign psel0 = ((((~sel2) & (~sel1)) & (~sel0)) & test);
3746 assign psel1 = (((~sel2) & (~sel1)) & sel0);
3747 assign psel2 = (((~sel2) & sel1) & (~sel0));
3748 assign psel3 = (((~sel2) & sel1) & sel0);
3749 assign psel4 = ((sel2 & (~sel1)) & (~sel0));
3750 assign psel5 = ((sel2 & (~sel1)) & sel0);
3751 assign psel6 = ((sel2 & sel1) & (~sel0));
3752 assign psel7 = ((sel2 & sel1) & sel0);
3753endmodule
3754`endcelldefine
3755
3756`celldefine
3757module cl_dp1_penc2_8x(sel0, psel0, psel1);
3758
3759 input sel0;
3760 output psel0;
3761 output psel1;
3762
3763 assign psel0 = sel0;
3764 assign psel1 = (~sel0);
3765endmodule
3766`endcelldefine
3767
3768`celldefine
3769module cl_u1_aoi22_4x(out, in10, in11, in00, in01);
3770
3771 output out;
3772 input in10;
3773 input in11;
3774 input in00;
3775 input in01;
3776
3777 assign out = (~((in10 & in11) | (in00 & in01)));
3778endmodule
3779`endcelldefine
3780
3781`celldefine
3782module cl_u1_buf_16x(in, out);
3783
3784 input in;
3785 output out;
3786
3787 buf (out, in);
3788endmodule
3789`endcelldefine
3790
3791`celldefine
3792module cl_u1_buf_32x(in, out);
3793
3794 input in;
3795 output out;
3796
3797 buf (out, in);
3798endmodule
3799`endcelldefine
3800
3801`celldefine
3802module cl_u1_buf_8x(in, out);
3803
3804 input in;
3805 output out;
3806
3807 buf (out, in);
3808endmodule
3809`endcelldefine
3810
3811`celldefine
3812module cl_u1_inv_16x(in, out);
3813
3814 input in;
3815 output out;
3816
3817 not (out, in);
3818endmodule
3819`endcelldefine
3820
3821`celldefine
3822module cl_u1_inv_32x(in, out);
3823
3824 input in;
3825 output out;
3826
3827 not (out, in);
3828endmodule
3829`endcelldefine
3830
3831`celldefine
3832module cl_u1_inv_8x(in, out);
3833
3834 input in;
3835 output out;
3836
3837 not (out, in);
3838endmodule
3839`endcelldefine
3840
3841`celldefine
3842module cl_u1_nand2_16x(in0, in1, out);
3843
3844 input in0;
3845 input in1;
3846 output out;
3847
3848 assign out = (~(in0 & in1));
3849endmodule
3850`endcelldefine
3851
3852`celldefine
3853module cl_u1_nand2_8x(in0, in1, out);
3854
3855 input in0;
3856 input in1;
3857 output out;
3858
3859 assign out = (~(in0 & in1));
3860endmodule
3861`endcelldefine
3862
3863`celldefine
3864module cl_u1_nand3_8x(in0, in1, in2, out);
3865
3866 input in0;
3867 input in1;
3868 input in2;
3869 output out;
3870
3871 assign out = (~((in0 & in1) & in2));
3872endmodule
3873`endcelldefine
3874
3875`celldefine
3876module cl_u1_nor2_16x(in0, in1, out);
3877
3878 input in0;
3879 input in1;
3880 output out;
3881
3882 assign out = (~(in0 | in1));
3883endmodule
3884`endcelldefine
3885
3886`celldefine
3887module cl_u1_nor3_4x(in0, in1, in2, out);
3888
3889 input in0;
3890 input in1;
3891 input in2;
3892 output out;
3893
3894 assign out = (~((in0 | in1) | in2));
3895endmodule
3896`endcelldefine
3897
3898`celldefine
3899module cl_u1_oai22_4x(out, in10, in11, in00, in01);
3900
3901 output out;
3902 input in10;
3903 input in11;
3904 input in00;
3905 input in01;
3906
3907 assign out = (~((in10 | in11) & (in00 | in01)));
3908endmodule
3909`endcelldefine
3910
3911`celldefine
3912module cl_sc1_l1hdr_8x(l2clk, se, pce, pce_ov, stop, l1clk);
3913
3914 input l2clk;
3915 input se;
3916 input pce;
3917 input pce_ov;
3918 input stop;
3919 output l1clk;
3920
3921 reg l1en;
3922
3923 assign l1clk = ((l2clk & l1en) | se);
3924
3925 always @(l2clk or stop or pce or pce_ov) begin
3926 if (~l2clk) begin
3927 l1en <= ((~stop) & (pce | pce_ov));
3928 end
3929 end
3930endmodule
3931`endcelldefine
3932
3933`celldefine
3934module cl_sc1_msff_8x(q, so, d, l1clk, si, siclk, soclk);
3935
3936 parameter SIZE = 1;
3937
3938 output q;
3939 output so;
3940 input d;
3941 input l1clk;
3942 input si;
3943 input siclk;
3944 input soclk;
3945
3946 reg q;
3947 reg l1;
3948
3949 assign so = q;
3950
3951 always @(posedge l1clk or posedge siclk) begin
3952 if (siclk) begin
3953 q <= 1'b0;
3954 end
3955 else
3956 begin
3957 q <= d;
3958 end
3959 end
3960endmodule
3961`endcelldefine
3962
3963`celldefine
3964module msff_ctl_macro__width_5(din, l1clk, scan_in, siclk, soclk, dout, scan_out
3965 );
3966
3967 input [4:0] din;
3968 input l1clk;
3969 input scan_in;
3970 input siclk;
3971 input soclk;
3972 output [4:0] dout;
3973 output scan_out;
3974
3975 wire [4:0] fdin;
3976 wire [3:0] so;
3977
3978 assign fdin[4:0] = din[4:0];
3979
3980 dff #(5) d0_0(
3981 .l1clk (l1clk),
3982 .siclk (siclk),
3983 .soclk (soclk),
3984 .d (fdin[4:0]),
3985 .si ({scan_in, so[3:0]}),
3986 .so ({so[3:0], scan_out}),
3987 .q (dout[4:0]));
3988endmodule
3989`endcelldefine
3990
3991`celldefine
3992module buff_macro__dbuff_32x__stack_none__width_1(din, dout);
3993
3994 input [0:0] din;
3995 output [0:0] dout;
3996
3997 buff #(1) d0_0(
3998 .in (din[0]),
3999 .out (dout[0]));
4000endmodule
4001`endcelldefine
4002
4003`celldefine
4004module buff_macro__dbuff_8x__stack_none__width_1(din, dout);
4005
4006 input [0:0] din;
4007 output [0:0] dout;
4008
4009 buff #(1) d0_0(
4010 .in (din[0]),
4011 .out (dout[0]));
4012endmodule
4013`endcelldefine
4014
4015`endif // `ifdef FPGA