Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / tcu / rtl / tcu_clkseq_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: tcu_clkseq_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 ============================================
35module tcu_clkseq_ctl (
36 tcu_int_se,
37 tcu_int_aclk,
38 tcu_int_bclk,
39 tcu_int_ce,
40 tcu_pce_ov,
41 l2clk,
42 clock_stop_active,
43 debug_reg_hard_stop_domain_1st,
44 hard_stop_via_reg_din,
45 test_mode_gated,
46 io_ac_test_mode,
47 stop_req,
48 cntstart_equal_max,
49 cntstop_equal_max,
50 cntstart,
51 cntstop,
52 scan_in,
53 scan_out,
54 spc0_clk_stop_loop,
55 spc1_clk_stop_loop,
56 spc2_clk_stop_loop,
57 spc3_clk_stop_loop,
58 spc4_clk_stop_loop,
59 spc5_clk_stop_loop,
60 spc6_clk_stop_loop,
61 spc7_clk_stop_loop,
62 bnk0_clk_stop_loop,
63 bnk1_clk_stop_loop,
64 bnk2_clk_stop_loop,
65 bnk3_clk_stop_loop,
66 bnk4_clk_stop_loop,
67 bnk5_clk_stop_loop,
68 bnk6_clk_stop_loop,
69 bnk7_clk_stop_loop,
70 mcu0_clk_stop_loop,
71 mcu1_clk_stop_loop,
72 mcu2_clk_stop_loop,
73 mcu3_clk_stop_loop,
74 soc0_clk_stop_loop,
75 soc1_clk_stop_loop,
76 soc2_clk_stop_loop,
77 soc3_clk_stop_loop,
78 clk_stop_loops_all_on,
79 clk_stop_loops_all_off);
80wire l1en;
81wire pce_ov;
82wire stop;
83wire se;
84wire siclk;
85wire soclk;
86wire l1clk;
87wire start_with_spc0;
88wire start_with_spc1;
89wire start_with_spc2;
90wire start_with_spc3;
91wire start_with_spc4;
92wire start_with_spc5;
93wire start_with_spc6;
94wire start_with_spc7;
95wire start_with_bnk0;
96wire start_with_bnk1;
97wire start_with_bnk2;
98wire start_with_bnk3;
99wire start_with_bnk4;
100wire start_with_bnk5;
101wire start_with_bnk6;
102wire start_with_bnk7;
103wire start_with_mcu0;
104wire start_with_mcu1;
105wire start_with_mcu2;
106wire start_with_mcu3;
107wire start_with_soc0;
108wire start_with_soc1;
109wire start_with_soc2;
110wire start_with_soc3;
111wire stop_spc0;
112wire stop_spc1;
113wire stop_spc2;
114wire stop_spc3;
115wire stop_spc4;
116wire stop_spc5;
117wire stop_spc6;
118wire stop_spc7;
119wire stop_bnk0;
120wire stop_bnk1;
121wire stop_bnk2;
122wire stop_bnk3;
123wire stop_bnk4;
124wire stop_bnk5;
125wire stop_bnk6;
126wire stop_bnk7;
127wire stop_mcu0;
128wire stop_mcu1;
129wire stop_mcu2;
130wire stop_mcu3;
131wire stop_soc0;
132wire stop_soc1;
133wire stop_soc2;
134wire stop_soc3;
135wire stop_spc0_trigger;
136wire stopspc0_din;
137wire stopspc0_dout;
138wire clkseq_stopspc0_reg_scanin;
139wire clkseq_stopspc0_reg_scanout;
140wire stopspc0_din_l;
141wire stopspc0_dout_l;
142wire start_spc0_trigger;
143wire startspc0_din;
144wire startspc0_dout;
145wire clkseq_startspc0_reg_scanin;
146wire clkseq_startspc0_reg_scanout;
147wire startspc0_din_l;
148wire startspc0_dout_l;
149wire stop_spc0_delayed;
150wire stop_spc1_trigger;
151wire stopspc1_din;
152wire stopspc1_dout;
153wire clkseq_stopspc1_reg_scanin;
154wire clkseq_stopspc1_reg_scanout;
155wire stopspc1_din_l;
156wire stopspc1_dout_l;
157wire start_spc1_trigger;
158wire startspc1_din;
159wire startspc1_dout;
160wire clkseq_startspc1_reg_scanin;
161wire clkseq_startspc1_reg_scanout;
162wire startspc1_din_l;
163wire startspc1_dout_l;
164wire stop_spc1_delayed;
165wire stop_spc2_trigger;
166wire stopspc2_din;
167wire stopspc2_dout;
168wire clkseq_stopspc2_reg_scanin;
169wire clkseq_stopspc2_reg_scanout;
170wire stopspc2_din_l;
171wire stopspc2_dout_l;
172wire start_spc2_trigger;
173wire startspc2_din;
174wire startspc2_dout;
175wire clkseq_startspc2_reg_scanin;
176wire clkseq_startspc2_reg_scanout;
177wire startspc2_din_l;
178wire startspc2_dout_l;
179wire stop_spc2_delayed;
180wire stop_spc3_trigger;
181wire stopspc3_din;
182wire stopspc3_dout;
183wire clkseq_stopspc3_reg_scanin;
184wire clkseq_stopspc3_reg_scanout;
185wire stopspc3_din_l;
186wire stopspc3_dout_l;
187wire start_spc3_trigger;
188wire startspc3_din;
189wire startspc3_dout;
190wire clkseq_startspc3_reg_scanin;
191wire clkseq_startspc3_reg_scanout;
192wire startspc3_din_l;
193wire startspc3_dout_l;
194wire stop_spc3_delayed;
195wire stop_spc4_trigger;
196wire stopspc4_din;
197wire stopspc4_dout;
198wire clkseq_stopspc4_reg_scanin;
199wire clkseq_stopspc4_reg_scanout;
200wire stopspc4_din_l;
201wire stopspc4_dout_l;
202wire start_spc4_trigger;
203wire startspc4_din;
204wire startspc4_dout;
205wire clkseq_startspc4_reg_scanin;
206wire clkseq_startspc4_reg_scanout;
207wire startspc4_din_l;
208wire startspc4_dout_l;
209wire stop_spc4_delayed;
210wire stop_spc5_trigger;
211wire stopspc5_din;
212wire stopspc5_dout;
213wire clkseq_stopspc5_reg_scanin;
214wire clkseq_stopspc5_reg_scanout;
215wire stopspc5_din_l;
216wire stopspc5_dout_l;
217wire start_spc5_trigger;
218wire startspc5_din;
219wire startspc5_dout;
220wire clkseq_startspc5_reg_scanin;
221wire clkseq_startspc5_reg_scanout;
222wire startspc5_din_l;
223wire startspc5_dout_l;
224wire stop_spc5_delayed;
225wire stop_spc6_trigger;
226wire stopspc6_din;
227wire stopspc6_dout;
228wire clkseq_stopspc6_reg_scanin;
229wire clkseq_stopspc6_reg_scanout;
230wire stopspc6_din_l;
231wire stopspc6_dout_l;
232wire start_spc6_trigger;
233wire startspc6_din;
234wire startspc6_dout;
235wire clkseq_startspc6_reg_scanin;
236wire clkseq_startspc6_reg_scanout;
237wire startspc6_din_l;
238wire startspc6_dout_l;
239wire stop_spc6_delayed;
240wire stop_spc7_trigger;
241wire stopspc7_din;
242wire stopspc7_dout;
243wire clkseq_stopspc7_reg_scanin;
244wire clkseq_stopspc7_reg_scanout;
245wire stopspc7_din_l;
246wire stopspc7_dout_l;
247wire start_spc7_trigger;
248wire startspc7_din;
249wire startspc7_dout;
250wire clkseq_startspc7_reg_scanin;
251wire clkseq_startspc7_reg_scanout;
252wire startspc7_din_l;
253wire startspc7_dout_l;
254wire stop_spc7_delayed;
255wire stop_bnk0_trigger;
256wire stopbnk0_din;
257wire stopbnk0_dout;
258wire clkseq_stopbnk0_reg_scanin;
259wire clkseq_stopbnk0_reg_scanout;
260wire stopbnk0_din_l;
261wire stopbnk0_dout_l;
262wire start_bnk0_trigger;
263wire startbnk0_din;
264wire startbnk0_dout;
265wire clkseq_startbnk0_reg_scanin;
266wire clkseq_startbnk0_reg_scanout;
267wire startbnk0_din_l;
268wire startbnk0_dout_l;
269wire stop_bnk0_delayed;
270wire stop_bnk1_trigger;
271wire stopbnk1_din;
272wire stopbnk1_dout;
273wire clkseq_stopbnk1_reg_scanin;
274wire clkseq_stopbnk1_reg_scanout;
275wire stopbnk1_din_l;
276wire stopbnk1_dout_l;
277wire start_bnk1_trigger;
278wire startbnk1_din;
279wire startbnk1_dout;
280wire clkseq_startbnk1_reg_scanin;
281wire clkseq_startbnk1_reg_scanout;
282wire startbnk1_din_l;
283wire startbnk1_dout_l;
284wire stop_bnk1_delayed;
285wire stop_bnk2_trigger;
286wire stopbnk2_din;
287wire stopbnk2_dout;
288wire clkseq_stopbnk2_reg_scanin;
289wire clkseq_stopbnk2_reg_scanout;
290wire stopbnk2_din_l;
291wire stopbnk2_dout_l;
292wire start_bnk2_trigger;
293wire startbnk2_din;
294wire startbnk2_dout;
295wire clkseq_startbnk2_reg_scanin;
296wire clkseq_startbnk2_reg_scanout;
297wire startbnk2_din_l;
298wire startbnk2_dout_l;
299wire stop_bnk2_delayed;
300wire stop_bnk3_trigger;
301wire stopbnk3_din;
302wire stopbnk3_dout;
303wire clkseq_stopbnk3_reg_scanin;
304wire clkseq_stopbnk3_reg_scanout;
305wire stopbnk3_din_l;
306wire stopbnk3_dout_l;
307wire start_bnk3_trigger;
308wire startbnk3_din;
309wire startbnk3_dout;
310wire clkseq_startbnk3_reg_scanin;
311wire clkseq_startbnk3_reg_scanout;
312wire startbnk3_din_l;
313wire startbnk3_dout_l;
314wire stop_bnk3_delayed;
315wire stop_bnk4_trigger;
316wire stopbnk4_din;
317wire stopbnk4_dout;
318wire clkseq_stopbnk4_reg_scanin;
319wire clkseq_stopbnk4_reg_scanout;
320wire stopbnk4_din_l;
321wire stopbnk4_dout_l;
322wire start_bnk4_trigger;
323wire startbnk4_din;
324wire startbnk4_dout;
325wire clkseq_startbnk4_reg_scanin;
326wire clkseq_startbnk4_reg_scanout;
327wire startbnk4_din_l;
328wire startbnk4_dout_l;
329wire stop_bnk4_delayed;
330wire stop_bnk5_trigger;
331wire stopbnk5_din;
332wire stopbnk5_dout;
333wire clkseq_stopbnk5_reg_scanin;
334wire clkseq_stopbnk5_reg_scanout;
335wire stopbnk5_din_l;
336wire stopbnk5_dout_l;
337wire start_bnk5_trigger;
338wire startbnk5_din;
339wire startbnk5_dout;
340wire clkseq_startbnk5_reg_scanin;
341wire clkseq_startbnk5_reg_scanout;
342wire startbnk5_din_l;
343wire startbnk5_dout_l;
344wire stop_bnk5_delayed;
345wire stop_bnk6_trigger;
346wire stopbnk6_din;
347wire stopbnk6_dout;
348wire clkseq_stopbnk6_reg_scanin;
349wire clkseq_stopbnk6_reg_scanout;
350wire stopbnk6_din_l;
351wire stopbnk6_dout_l;
352wire start_bnk6_trigger;
353wire startbnk6_din;
354wire startbnk6_dout;
355wire clkseq_startbnk6_reg_scanin;
356wire clkseq_startbnk6_reg_scanout;
357wire startbnk6_din_l;
358wire startbnk6_dout_l;
359wire stop_bnk6_delayed;
360wire stop_bnk7_trigger;
361wire stopbnk7_din;
362wire stopbnk7_dout;
363wire clkseq_stopbnk7_reg_scanin;
364wire clkseq_stopbnk7_reg_scanout;
365wire stopbnk7_din_l;
366wire stopbnk7_dout_l;
367wire start_bnk7_trigger;
368wire startbnk7_din;
369wire startbnk7_dout;
370wire clkseq_startbnk7_reg_scanin;
371wire clkseq_startbnk7_reg_scanout;
372wire startbnk7_din_l;
373wire startbnk7_dout_l;
374wire stop_bnk7_delayed;
375wire stop_mcu0_trigger;
376wire stopmcu0_din;
377wire stopmcu0_dout;
378wire clkseq_stopmcu0_reg_scanin;
379wire clkseq_stopmcu0_reg_scanout;
380wire stopmcu0_din_l;
381wire stopmcu0_dout_l;
382wire start_mcu0_trigger;
383wire startmcu0_din;
384wire startmcu0_dout;
385wire clkseq_startmcu0_reg_scanin;
386wire clkseq_startmcu0_reg_scanout;
387wire startmcu0_din_l;
388wire startmcu0_dout_l;
389wire stop_mcu0_delayed;
390wire stop_mcu1_trigger;
391wire stopmcu1_din;
392wire stopmcu1_dout;
393wire clkseq_stopmcu1_reg_scanin;
394wire clkseq_stopmcu1_reg_scanout;
395wire stopmcu1_din_l;
396wire stopmcu1_dout_l;
397wire start_mcu1_trigger;
398wire startmcu1_din;
399wire startmcu1_dout;
400wire clkseq_startmcu1_reg_scanin;
401wire clkseq_startmcu1_reg_scanout;
402wire startmcu1_din_l;
403wire startmcu1_dout_l;
404wire stop_mcu1_delayed;
405wire stop_mcu2_trigger;
406wire stopmcu2_din;
407wire stopmcu2_dout;
408wire clkseq_stopmcu2_reg_scanin;
409wire clkseq_stopmcu2_reg_scanout;
410wire stopmcu2_din_l;
411wire stopmcu2_dout_l;
412wire start_mcu2_trigger;
413wire startmcu2_din;
414wire startmcu2_dout;
415wire clkseq_startmcu2_reg_scanin;
416wire clkseq_startmcu2_reg_scanout;
417wire startmcu2_din_l;
418wire startmcu2_dout_l;
419wire stop_mcu2_delayed;
420wire stop_mcu3_trigger;
421wire stopmcu3_din;
422wire stopmcu3_dout;
423wire clkseq_stopmcu3_reg_scanin;
424wire clkseq_stopmcu3_reg_scanout;
425wire stopmcu3_din_l;
426wire stopmcu3_dout_l;
427wire start_mcu3_trigger;
428wire startmcu3_din;
429wire startmcu3_dout;
430wire clkseq_startmcu3_reg_scanin;
431wire clkseq_startmcu3_reg_scanout;
432wire startmcu3_din_l;
433wire startmcu3_dout_l;
434wire stop_mcu3_delayed;
435wire stop_soc0_trigger;
436wire stopsoc0_din;
437wire stopsoc0_dout;
438wire clkseq_stopsoc0_reg_scanin;
439wire clkseq_stopsoc0_reg_scanout;
440wire stopsoc0_din_l;
441wire stopsoc0_dout_l;
442wire start_soc0_trigger;
443wire startsoc0_din;
444wire startsoc0_dout;
445wire clkseq_startsoc0_reg_scanin;
446wire clkseq_startsoc0_reg_scanout;
447wire startsoc0_din_l;
448wire startsoc0_dout_l;
449wire stop_soc0_delayed;
450wire stop_soc1_trigger;
451wire stopsoc1_din;
452wire stopsoc1_dout;
453wire clkseq_stopsoc1_reg_scanin;
454wire clkseq_stopsoc1_reg_scanout;
455wire stopsoc1_din_l;
456wire stopsoc1_dout_l;
457wire start_soc1_trigger;
458wire startsoc1_din;
459wire startsoc1_dout;
460wire clkseq_startsoc1_reg_scanin;
461wire clkseq_startsoc1_reg_scanout;
462wire startsoc1_din_l;
463wire startsoc1_dout_l;
464wire stop_soc1_delayed;
465wire stop_soc2_trigger;
466wire stopsoc2_din;
467wire stopsoc2_dout;
468wire clkseq_stopsoc2_reg_scanin;
469wire clkseq_stopsoc2_reg_scanout;
470wire stopsoc2_din_l;
471wire stopsoc2_dout_l;
472wire start_soc2_trigger;
473wire startsoc2_din;
474wire startsoc2_dout;
475wire clkseq_startsoc2_reg_scanin;
476wire clkseq_startsoc2_reg_scanout;
477wire startsoc2_din_l;
478wire startsoc2_dout_l;
479wire stop_soc2_delayed;
480wire stop_soc3_trigger;
481wire stopsoc3_din;
482wire stopsoc3_dout;
483wire clkseq_stopsoc3_reg_scanin;
484wire clkseq_stopsoc3_reg_scanout;
485wire stopsoc3_din_l;
486wire stopsoc3_dout_l;
487wire start_soc3_trigger;
488wire startsoc3_din;
489wire startsoc3_dout;
490wire clkseq_startsoc3_reg_scanin;
491wire clkseq_startsoc3_reg_scanout;
492wire startsoc3_din_l;
493wire startsoc3_dout_l;
494wire stop_soc3_delayed;
495wire io_test_mode;
496wire spc0_clk_stop;
497wire spc1_clk_stop;
498wire spc2_clk_stop;
499wire spc3_clk_stop;
500wire spc4_clk_stop;
501wire spc5_clk_stop;
502wire spc6_clk_stop;
503wire spc7_clk_stop;
504wire bnk0_clk_stop;
505wire bnk1_clk_stop;
506wire bnk2_clk_stop;
507wire bnk3_clk_stop;
508wire bnk4_clk_stop;
509wire bnk5_clk_stop;
510wire bnk6_clk_stop;
511wire bnk7_clk_stop;
512wire mcu0_clk_stop;
513wire mcu1_clk_stop;
514wire mcu2_clk_stop;
515wire mcu3_clk_stop;
516wire soc0_clk_stop;
517wire soc1_clk_stop;
518wire soc2_clk_stop;
519wire soc3_clk_stop;
520
521
522 //inputs
523 input tcu_int_se;
524 input tcu_int_aclk;
525 input tcu_int_bclk;
526 input tcu_int_ce;
527 input tcu_pce_ov;
528 input l2clk;
529 input clock_stop_active;
530 input [23:0] debug_reg_hard_stop_domain_1st;
531 input hard_stop_via_reg_din;
532 input test_mode_gated;
533 input io_ac_test_mode;
534 input stop_req;
535 input cntstart_equal_max;
536 input cntstop_equal_max;
537 input cntstart;
538 input cntstop;
539
540 //scan
541 input scan_in;
542 output scan_out;
543
544 //outputs
545 output spc0_clk_stop_loop;
546 output spc1_clk_stop_loop;
547 output spc2_clk_stop_loop;
548 output spc3_clk_stop_loop;
549 output spc4_clk_stop_loop;
550 output spc5_clk_stop_loop;
551 output spc6_clk_stop_loop;
552 output spc7_clk_stop_loop;
553 output bnk0_clk_stop_loop;
554 output bnk1_clk_stop_loop;
555 output bnk2_clk_stop_loop;
556 output bnk3_clk_stop_loop;
557 output bnk4_clk_stop_loop;
558 output bnk5_clk_stop_loop;
559 output bnk6_clk_stop_loop;
560 output bnk7_clk_stop_loop;
561 output mcu0_clk_stop_loop;
562 output mcu1_clk_stop_loop;
563 output mcu2_clk_stop_loop;
564 output mcu3_clk_stop_loop;
565 output soc0_clk_stop_loop;
566 output soc1_clk_stop_loop;
567 output soc2_clk_stop_loop;
568 output soc3_clk_stop_loop;
569
570 output clk_stop_loops_all_on ;
571 output clk_stop_loops_all_off;
572
573 // Scan reassigns
574 assign l1en = tcu_int_ce; //1'b1;
575 assign pce_ov = tcu_pce_ov; //1'b1;
576 assign stop = 1'b0;
577 assign se = tcu_int_se;
578 assign siclk = tcu_int_aclk;
579 assign soclk = tcu_int_bclk;
580
581 //create clock headers
582 tcu_clkseq_ctl_l1clkhdr_ctl_macro clkseq_clkgen
583 (
584 .l2clk (l2clk ),
585 .l1clk (l1clk ),
586 .l1en(l1en),
587 .pce_ov(pce_ov),
588 .stop(stop),
589 .se(se)
590 );
591
592
593 //********************************************************************
594 // Clock Stop Sequencer
595 //********************************************************************
596
597 // We want to be able to specify the starting point for stopping the clocks
598 assign start_with_spc0 = hard_stop_via_reg_din ? debug_reg_hard_stop_domain_1st[0]:1'b1;
599 assign start_with_spc1 = debug_reg_hard_stop_domain_1st[1];
600 assign start_with_spc2 = debug_reg_hard_stop_domain_1st[2];
601 assign start_with_spc3 = debug_reg_hard_stop_domain_1st[3];
602 assign start_with_spc4 = debug_reg_hard_stop_domain_1st[4];
603 assign start_with_spc5 = debug_reg_hard_stop_domain_1st[5];
604 assign start_with_spc6 = debug_reg_hard_stop_domain_1st[6];
605 assign start_with_spc7 = debug_reg_hard_stop_domain_1st[7];
606 assign start_with_bnk0 = debug_reg_hard_stop_domain_1st[8];
607 assign start_with_bnk1 = debug_reg_hard_stop_domain_1st[9];
608 assign start_with_bnk2 = debug_reg_hard_stop_domain_1st[10];
609 assign start_with_bnk3 = debug_reg_hard_stop_domain_1st[11];
610 assign start_with_bnk4 = debug_reg_hard_stop_domain_1st[12];
611 assign start_with_bnk5 = debug_reg_hard_stop_domain_1st[13];
612 assign start_with_bnk6 = debug_reg_hard_stop_domain_1st[14];
613 assign start_with_bnk7 = debug_reg_hard_stop_domain_1st[15];
614 assign start_with_mcu0 = debug_reg_hard_stop_domain_1st[16];
615 assign start_with_mcu1 = debug_reg_hard_stop_domain_1st[17];
616 assign start_with_mcu2 = debug_reg_hard_stop_domain_1st[18];
617 assign start_with_mcu3 = debug_reg_hard_stop_domain_1st[19];
618 assign start_with_soc0 = debug_reg_hard_stop_domain_1st[20];
619 assign start_with_soc1 = debug_reg_hard_stop_domain_1st[21];
620 assign start_with_soc2 = debug_reg_hard_stop_domain_1st[22];
621 assign start_with_soc3 = debug_reg_hard_stop_domain_1st[23];
622
623 assign stop_spc0 = start_with_spc0 ? stop_req : soc3_clk_stop_loop;
624 assign stop_spc1 = start_with_spc1 ? stop_req : spc0_clk_stop_loop;
625 assign stop_spc2 = start_with_spc2 ? stop_req : spc1_clk_stop_loop;
626 assign stop_spc3 = start_with_spc3 ? stop_req : spc2_clk_stop_loop;
627 assign stop_spc4 = start_with_spc4 ? stop_req : spc3_clk_stop_loop;
628 assign stop_spc5 = start_with_spc5 ? stop_req : spc4_clk_stop_loop;
629 assign stop_spc6 = start_with_spc6 ? stop_req : spc5_clk_stop_loop;
630 assign stop_spc7 = start_with_spc7 ? stop_req : spc6_clk_stop_loop;
631 assign stop_bnk0 = start_with_bnk0 ? stop_req : spc7_clk_stop_loop;
632 assign stop_bnk1 = start_with_bnk1 ? stop_req : bnk0_clk_stop_loop;
633 assign stop_bnk2 = start_with_bnk2 ? stop_req : bnk1_clk_stop_loop;
634 assign stop_bnk3 = start_with_bnk3 ? stop_req : bnk2_clk_stop_loop;
635 assign stop_bnk4 = start_with_bnk4 ? stop_req : bnk3_clk_stop_loop;
636 assign stop_bnk5 = start_with_bnk5 ? stop_req : bnk4_clk_stop_loop;
637 assign stop_bnk6 = start_with_bnk6 ? stop_req : bnk5_clk_stop_loop;
638 assign stop_bnk7 = start_with_bnk7 ? stop_req : bnk6_clk_stop_loop;
639 assign stop_mcu0 = start_with_mcu0 ? stop_req : bnk7_clk_stop_loop;
640 assign stop_mcu1 = start_with_mcu1 ? stop_req : mcu0_clk_stop_loop;
641 assign stop_mcu2 = start_with_mcu2 ? stop_req : mcu1_clk_stop_loop;
642 assign stop_mcu3 = start_with_mcu3 ? stop_req : mcu2_clk_stop_loop;
643 assign stop_soc0 = start_with_soc0 ? stop_req : mcu3_clk_stop_loop;
644 assign stop_soc1 = start_with_soc1 ? stop_req : soc0_clk_stop_loop;
645 assign stop_soc2 = start_with_soc2 ? stop_req : soc1_clk_stop_loop;
646 assign stop_soc3 = start_with_soc3 ? stop_req : soc2_clk_stop_loop;
647
648
649 //********************************************************************
650 // SPC0 - Turn CLOCK STOP ON
651 assign stop_spc0_trigger = stop_spc0 & cntstop_equal_max;
652 assign stopspc0_din = stop_req & (stop_spc0_trigger | stopspc0_dout);
653 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc0_reg
654 (
655 .scan_in(clkseq_stopspc0_reg_scanin),
656 .scan_out(clkseq_stopspc0_reg_scanout),
657 .l1clk (l1clk),
658 .din (stopspc0_din_l),
659 .dout (stopspc0_dout_l),
660 .siclk(siclk),
661 .soclk(soclk)
662 );
663 // SPC0 - Turn CLOCK STOP OFF
664 assign start_spc0_trigger = ~stop_spc0 & cntstart_equal_max;
665 assign startspc0_din = ~stop_req & (start_spc0_trigger | startspc0_dout);
666 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc0_reg
667 (
668 .scan_in(clkseq_startspc0_reg_scanin),
669 .scan_out(clkseq_startspc0_reg_scanout),
670 .l1clk (l1clk),
671 .din (startspc0_din_l),
672 .dout (startspc0_dout_l),
673 .siclk(siclk),
674 .soclk(soclk)
675 );
676 assign stop_spc0_delayed = (cntstop & stopspc0_dout) | (cntstart & ~startspc0_dout);
677
678 //********************************************************************
679 // SPC1 - Turn CLOCK STOP ON
680 assign stop_spc1_trigger = stop_spc1 & cntstop_equal_max;
681 assign stopspc1_din = stop_req & (stop_spc1_trigger | stopspc1_dout);
682 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc1_reg
683 (
684 .scan_in(clkseq_stopspc1_reg_scanin),
685 .scan_out(clkseq_stopspc1_reg_scanout),
686 .l1clk (l1clk),
687 .din (stopspc1_din_l),
688 .dout (stopspc1_dout_l),
689 .siclk(siclk),
690 .soclk(soclk)
691 );
692 // SPC1 - Turn CLOCK STOP OFF
693 assign start_spc1_trigger = ~stop_spc1 & cntstart_equal_max;
694 assign startspc1_din = ~stop_req & (start_spc1_trigger | startspc1_dout);
695 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc1_reg
696 (
697 .scan_in(clkseq_startspc1_reg_scanin),
698 .scan_out(clkseq_startspc1_reg_scanout),
699 .l1clk (l1clk),
700 .din (startspc1_din_l),
701 .dout (startspc1_dout_l),
702 .siclk(siclk),
703 .soclk(soclk)
704 );
705 assign stop_spc1_delayed = (cntstop & stopspc1_dout) | (cntstart & ~startspc1_dout);
706
707 //********************************************************************
708 // SPC2 - Turn CLOCK STOP ON
709 assign stop_spc2_trigger = stop_spc2 & cntstop_equal_max;
710 assign stopspc2_din = stop_req & (stop_spc2_trigger | stopspc2_dout);
711 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc2_reg
712 (
713 .scan_in(clkseq_stopspc2_reg_scanin),
714 .scan_out(clkseq_stopspc2_reg_scanout),
715 .l1clk (l1clk),
716 .din (stopspc2_din_l),
717 .dout (stopspc2_dout_l),
718 .siclk(siclk),
719 .soclk(soclk)
720 );
721 // SPC2 - Turn CLOCK STOP OFF
722 assign start_spc2_trigger = ~stop_spc2 & cntstart_equal_max;
723 assign startspc2_din = ~stop_req & (start_spc2_trigger | startspc2_dout);
724 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc2_reg
725 (
726 .scan_in(clkseq_startspc2_reg_scanin),
727 .scan_out(clkseq_startspc2_reg_scanout),
728 .l1clk (l1clk),
729 .din (startspc2_din_l),
730 .dout (startspc2_dout_l),
731 .siclk(siclk),
732 .soclk(soclk)
733 );
734 assign stop_spc2_delayed = (cntstop & stopspc2_dout) | (cntstart & ~startspc2_dout);
735
736 //********************************************************************
737 // SPC3 - Turn CLOCK STOP ON
738 assign stop_spc3_trigger = stop_spc3 & cntstop_equal_max;
739 assign stopspc3_din = stop_req & (stop_spc3_trigger | stopspc3_dout);
740 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc3_reg
741 (
742 .scan_in(clkseq_stopspc3_reg_scanin),
743 .scan_out(clkseq_stopspc3_reg_scanout),
744 .l1clk (l1clk),
745 .din (stopspc3_din_l),
746 .dout (stopspc3_dout_l),
747 .siclk(siclk),
748 .soclk(soclk)
749 );
750 // SPC3 - Turn CLOCK STOP OFF
751 assign start_spc3_trigger = ~stop_spc3 & cntstart_equal_max;
752 assign startspc3_din = ~stop_req & (start_spc3_trigger | startspc3_dout);
753 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc3_reg
754 (
755 .scan_in(clkseq_startspc3_reg_scanin),
756 .scan_out(clkseq_startspc3_reg_scanout),
757 .l1clk (l1clk),
758 .din (startspc3_din_l),
759 .dout (startspc3_dout_l),
760 .siclk(siclk),
761 .soclk(soclk)
762 );
763 assign stop_spc3_delayed = (cntstop & stopspc3_dout) | (cntstart & ~startspc3_dout);
764
765 //********************************************************************
766 // SPC4 - Turn CLOCK STOP ON
767 assign stop_spc4_trigger = stop_spc4 & cntstop_equal_max;
768 assign stopspc4_din = stop_req & (stop_spc4_trigger | stopspc4_dout);
769 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc4_reg
770 (
771 .scan_in(clkseq_stopspc4_reg_scanin),
772 .scan_out(clkseq_stopspc4_reg_scanout),
773 .l1clk (l1clk),
774 .din (stopspc4_din_l),
775 .dout (stopspc4_dout_l),
776 .siclk(siclk),
777 .soclk(soclk)
778 );
779 // SPC4 - Turn CLOCK STOP OFF
780 assign start_spc4_trigger = ~stop_spc4 & cntstart_equal_max;
781 assign startspc4_din = ~stop_req & (start_spc4_trigger | startspc4_dout);
782 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc4_reg
783 (
784 .scan_in(clkseq_startspc4_reg_scanin),
785 .scan_out(clkseq_startspc4_reg_scanout),
786 .l1clk (l1clk),
787 .din (startspc4_din_l),
788 .dout (startspc4_dout_l),
789 .siclk(siclk),
790 .soclk(soclk)
791 );
792 assign stop_spc4_delayed = (cntstop & stopspc4_dout) | (cntstart & ~startspc4_dout);
793
794 //********************************************************************
795 // SPC5 - Turn CLOCK STOP ON
796 assign stop_spc5_trigger = stop_spc5 & cntstop_equal_max;
797 assign stopspc5_din = stop_req & (stop_spc5_trigger | stopspc5_dout);
798 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc5_reg
799 (
800 .scan_in(clkseq_stopspc5_reg_scanin),
801 .scan_out(clkseq_stopspc5_reg_scanout),
802 .l1clk (l1clk),
803 .din (stopspc5_din_l),
804 .dout (stopspc5_dout_l),
805 .siclk(siclk),
806 .soclk(soclk)
807 );
808 // SPC5 - Turn CLOCK STOP OFF
809 assign start_spc5_trigger = ~stop_spc5 & cntstart_equal_max;
810 assign startspc5_din = ~stop_req & (start_spc5_trigger | startspc5_dout);
811 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc5_reg
812 (
813 .scan_in(clkseq_startspc5_reg_scanin),
814 .scan_out(clkseq_startspc5_reg_scanout),
815 .l1clk (l1clk),
816 .din (startspc5_din_l),
817 .dout (startspc5_dout_l),
818 .siclk(siclk),
819 .soclk(soclk)
820 );
821 assign stop_spc5_delayed = (cntstop & stopspc5_dout) | (cntstart & ~startspc5_dout);
822
823 //********************************************************************
824 // SPC6 - Turn CLOCK STOP ON
825 assign stop_spc6_trigger = stop_spc6 & cntstop_equal_max;
826 assign stopspc6_din = stop_req & (stop_spc6_trigger | stopspc6_dout);
827 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc6_reg
828 (
829 .scan_in(clkseq_stopspc6_reg_scanin),
830 .scan_out(clkseq_stopspc6_reg_scanout),
831 .l1clk (l1clk),
832 .din (stopspc6_din_l),
833 .dout (stopspc6_dout_l),
834 .siclk(siclk),
835 .soclk(soclk)
836 );
837 // SPC6 - Turn CLOCK STOP OFF
838 assign start_spc6_trigger = ~stop_spc6 & cntstart_equal_max;
839 assign startspc6_din = ~stop_req & (start_spc6_trigger | startspc6_dout);
840 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc6_reg
841 (
842 .scan_in(clkseq_startspc6_reg_scanin),
843 .scan_out(clkseq_startspc6_reg_scanout),
844 .l1clk (l1clk),
845 .din (startspc6_din_l),
846 .dout (startspc6_dout_l),
847 .siclk(siclk),
848 .soclk(soclk)
849 );
850 assign stop_spc6_delayed = (cntstop & stopspc6_dout) | (cntstart & ~startspc6_dout);
851
852 //********************************************************************
853 // SPC7 - Turn CLOCK STOP ON
854 assign stop_spc7_trigger = stop_spc7 & cntstop_equal_max;
855 assign stopspc7_din = stop_req & (stop_spc7_trigger | stopspc7_dout);
856 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopspc7_reg
857 (
858 .scan_in(clkseq_stopspc7_reg_scanin),
859 .scan_out(clkseq_stopspc7_reg_scanout),
860 .l1clk (l1clk),
861 .din (stopspc7_din_l),
862 .dout (stopspc7_dout_l),
863 .siclk(siclk),
864 .soclk(soclk)
865 );
866 // SPC7 - Turn CLOCK STOP OFF
867 assign start_spc7_trigger = ~stop_spc7 & cntstart_equal_max;
868 assign startspc7_din = ~stop_req & (start_spc7_trigger | startspc7_dout);
869 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startspc7_reg
870 (
871 .scan_in(clkseq_startspc7_reg_scanin),
872 .scan_out(clkseq_startspc7_reg_scanout),
873 .l1clk (l1clk),
874 .din (startspc7_din_l),
875 .dout (startspc7_dout_l),
876 .siclk(siclk),
877 .soclk(soclk)
878 );
879 assign stop_spc7_delayed = (cntstop & stopspc7_dout) | (cntstart & ~startspc7_dout);
880
881 //********************************************************************
882 // BNK0 - Turn CLOCK STOP ON
883 assign stop_bnk0_trigger = stop_bnk0 & cntstop_equal_max;
884 assign stopbnk0_din = stop_req & (stop_bnk0_trigger | stopbnk0_dout);
885 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk0_reg
886 (
887 .scan_in(clkseq_stopbnk0_reg_scanin),
888 .scan_out(clkseq_stopbnk0_reg_scanout),
889 .l1clk (l1clk),
890 .din (stopbnk0_din_l),
891 .dout (stopbnk0_dout_l),
892 .siclk(siclk),
893 .soclk(soclk)
894 );
895 // BNK0 - Turn CLOCK STOP OFF
896 assign start_bnk0_trigger = ~stop_bnk0 & cntstart_equal_max;
897 assign startbnk0_din = ~stop_req & (start_bnk0_trigger | startbnk0_dout);
898 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk0_reg
899 (
900 .scan_in(clkseq_startbnk0_reg_scanin),
901 .scan_out(clkseq_startbnk0_reg_scanout),
902 .l1clk (l1clk),
903 .din (startbnk0_din_l),
904 .dout (startbnk0_dout_l),
905 .siclk(siclk),
906 .soclk(soclk)
907 );
908 assign stop_bnk0_delayed = (cntstop & stopbnk0_dout) | (cntstart & ~startbnk0_dout);
909
910 //********************************************************************
911 // BNK1 - Turn CLOCK STOP ON
912 assign stop_bnk1_trigger = stop_bnk1 & cntstop_equal_max;
913 assign stopbnk1_din = stop_req & (stop_bnk1_trigger | stopbnk1_dout);
914 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk1_reg
915 (
916 .scan_in(clkseq_stopbnk1_reg_scanin),
917 .scan_out(clkseq_stopbnk1_reg_scanout),
918 .l1clk (l1clk),
919 .din (stopbnk1_din_l),
920 .dout (stopbnk1_dout_l),
921 .siclk(siclk),
922 .soclk(soclk)
923 );
924 // BNK1 - Turn CLOCK STOP OFF
925 assign start_bnk1_trigger = ~stop_bnk1 & cntstart_equal_max;
926 assign startbnk1_din = ~stop_req & (start_bnk1_trigger | startbnk1_dout);
927 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk1_reg
928 (
929 .scan_in(clkseq_startbnk1_reg_scanin),
930 .scan_out(clkseq_startbnk1_reg_scanout),
931 .l1clk (l1clk),
932 .din (startbnk1_din_l),
933 .dout (startbnk1_dout_l),
934 .siclk(siclk),
935 .soclk(soclk)
936 );
937 assign stop_bnk1_delayed = (cntstop & stopbnk1_dout) | (cntstart & ~startbnk1_dout);
938
939 //********************************************************************
940 // BNK2 - Turn CLOCK STOP ON
941 assign stop_bnk2_trigger = stop_bnk2 & cntstop_equal_max;
942 assign stopbnk2_din = stop_req & (stop_bnk2_trigger | stopbnk2_dout);
943 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk2_reg
944 (
945 .scan_in(clkseq_stopbnk2_reg_scanin),
946 .scan_out(clkseq_stopbnk2_reg_scanout),
947 .l1clk (l1clk),
948 .din (stopbnk2_din_l),
949 .dout (stopbnk2_dout_l),
950 .siclk(siclk),
951 .soclk(soclk)
952 );
953 // BNK2 - Turn CLOCK STOP OFF
954 assign start_bnk2_trigger = ~stop_bnk2 & cntstart_equal_max;
955 assign startbnk2_din = ~stop_req & (start_bnk2_trigger | startbnk2_dout);
956 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk2_reg
957 (
958 .scan_in(clkseq_startbnk2_reg_scanin),
959 .scan_out(clkseq_startbnk2_reg_scanout),
960 .l1clk (l1clk),
961 .din (startbnk2_din_l),
962 .dout (startbnk2_dout_l),
963 .siclk(siclk),
964 .soclk(soclk)
965 );
966 assign stop_bnk2_delayed = (cntstop & stopbnk2_dout) | (cntstart & ~startbnk2_dout);
967
968 //********************************************************************
969 // BNK3 - Turn CLOCK STOP ON
970 assign stop_bnk3_trigger = stop_bnk3 & cntstop_equal_max;
971 assign stopbnk3_din = stop_req & (stop_bnk3_trigger | stopbnk3_dout);
972 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk3_reg
973 (
974 .scan_in(clkseq_stopbnk3_reg_scanin),
975 .scan_out(clkseq_stopbnk3_reg_scanout),
976 .l1clk (l1clk),
977 .din (stopbnk3_din_l),
978 .dout (stopbnk3_dout_l),
979 .siclk(siclk),
980 .soclk(soclk)
981 );
982 // BNK3 - Turn CLOCK STOP OFF
983 assign start_bnk3_trigger = ~stop_bnk3 & cntstart_equal_max;
984 assign startbnk3_din = ~stop_req & (start_bnk3_trigger | startbnk3_dout);
985 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk3_reg
986 (
987 .scan_in(clkseq_startbnk3_reg_scanin),
988 .scan_out(clkseq_startbnk3_reg_scanout),
989 .l1clk (l1clk),
990 .din (startbnk3_din_l),
991 .dout (startbnk3_dout_l),
992 .siclk(siclk),
993 .soclk(soclk)
994 );
995 assign stop_bnk3_delayed = (cntstop & stopbnk3_dout) | (cntstart & ~startbnk3_dout);
996
997 //********************************************************************
998 // BNK4 - Turn CLOCK STOP ON
999 assign stop_bnk4_trigger = stop_bnk4 & cntstop_equal_max;
1000 assign stopbnk4_din = stop_req & (stop_bnk4_trigger | stopbnk4_dout);
1001 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk4_reg
1002 (
1003 .scan_in(clkseq_stopbnk4_reg_scanin),
1004 .scan_out(clkseq_stopbnk4_reg_scanout),
1005 .l1clk (l1clk),
1006 .din (stopbnk4_din_l),
1007 .dout (stopbnk4_dout_l),
1008 .siclk(siclk),
1009 .soclk(soclk)
1010 );
1011 // BNK4 - Turn CLOCK STOP OFF
1012 assign start_bnk4_trigger = ~stop_bnk4 & cntstart_equal_max;
1013 assign startbnk4_din = ~stop_req & (start_bnk4_trigger | startbnk4_dout);
1014 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk4_reg
1015 (
1016 .scan_in(clkseq_startbnk4_reg_scanin),
1017 .scan_out(clkseq_startbnk4_reg_scanout),
1018 .l1clk (l1clk),
1019 .din (startbnk4_din_l),
1020 .dout (startbnk4_dout_l),
1021 .siclk(siclk),
1022 .soclk(soclk)
1023 );
1024 assign stop_bnk4_delayed = (cntstop & stopbnk4_dout) | (cntstart & ~startbnk4_dout);
1025
1026 //********************************************************************
1027 // BNK5 - Turn CLOCK STOP ON
1028 assign stop_bnk5_trigger = stop_bnk5 & cntstop_equal_max;
1029 assign stopbnk5_din = stop_req & (stop_bnk5_trigger | stopbnk5_dout);
1030 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk5_reg
1031 (
1032 .scan_in(clkseq_stopbnk5_reg_scanin),
1033 .scan_out(clkseq_stopbnk5_reg_scanout),
1034 .l1clk (l1clk),
1035 .din (stopbnk5_din_l),
1036 .dout (stopbnk5_dout_l),
1037 .siclk(siclk),
1038 .soclk(soclk)
1039 );
1040 // BNK5 - Turn CLOCK STOP OFF
1041 assign start_bnk5_trigger = ~stop_bnk5 & cntstart_equal_max;
1042 assign startbnk5_din = ~stop_req & (start_bnk5_trigger | startbnk5_dout);
1043 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk5_reg
1044 (
1045 .scan_in(clkseq_startbnk5_reg_scanin),
1046 .scan_out(clkseq_startbnk5_reg_scanout),
1047 .l1clk (l1clk),
1048 .din (startbnk5_din_l),
1049 .dout (startbnk5_dout_l),
1050 .siclk(siclk),
1051 .soclk(soclk)
1052 );
1053 assign stop_bnk5_delayed = (cntstop & stopbnk5_dout) | (cntstart & ~startbnk5_dout);
1054
1055 //********************************************************************
1056 // BNK6 - Turn CLOCK STOP ON
1057 assign stop_bnk6_trigger = stop_bnk6 & cntstop_equal_max;
1058 assign stopbnk6_din = stop_req & (stop_bnk6_trigger | stopbnk6_dout);
1059 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk6_reg
1060 (
1061 .scan_in(clkseq_stopbnk6_reg_scanin),
1062 .scan_out(clkseq_stopbnk6_reg_scanout),
1063 .l1clk (l1clk),
1064 .din (stopbnk6_din_l),
1065 .dout (stopbnk6_dout_l),
1066 .siclk(siclk),
1067 .soclk(soclk)
1068 );
1069 // BNK6 - Turn CLOCK STOP OFF
1070 assign start_bnk6_trigger = ~stop_bnk6 & cntstart_equal_max;
1071 assign startbnk6_din = ~stop_req & (start_bnk6_trigger | startbnk6_dout);
1072 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk6_reg
1073 (
1074 .scan_in(clkseq_startbnk6_reg_scanin),
1075 .scan_out(clkseq_startbnk6_reg_scanout),
1076 .l1clk (l1clk),
1077 .din (startbnk6_din_l),
1078 .dout (startbnk6_dout_l),
1079 .siclk(siclk),
1080 .soclk(soclk)
1081 );
1082 assign stop_bnk6_delayed = (cntstop & stopbnk6_dout) | (cntstart & ~startbnk6_dout);
1083
1084 //********************************************************************
1085 // BNK7 - Turn CLOCK STOP ON
1086 assign stop_bnk7_trigger = stop_bnk7 & cntstop_equal_max;
1087 assign stopbnk7_din = stop_req & (stop_bnk7_trigger | stopbnk7_dout);
1088 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopbnk7_reg
1089 (
1090 .scan_in(clkseq_stopbnk7_reg_scanin),
1091 .scan_out(clkseq_stopbnk7_reg_scanout),
1092 .l1clk (l1clk),
1093 .din (stopbnk7_din_l),
1094 .dout (stopbnk7_dout_l),
1095 .siclk(siclk),
1096 .soclk(soclk)
1097 );
1098 // BNK7 - Turn CLOCK STOP OFF
1099 assign start_bnk7_trigger = ~stop_bnk7 & cntstart_equal_max;
1100 assign startbnk7_din = ~stop_req & (start_bnk7_trigger | startbnk7_dout);
1101 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startbnk7_reg
1102 (
1103 .scan_in(clkseq_startbnk7_reg_scanin),
1104 .scan_out(clkseq_startbnk7_reg_scanout),
1105 .l1clk (l1clk),
1106 .din (startbnk7_din_l),
1107 .dout (startbnk7_dout_l),
1108 .siclk(siclk),
1109 .soclk(soclk)
1110 );
1111 assign stop_bnk7_delayed = (cntstop & stopbnk7_dout) | (cntstart & ~startbnk7_dout);
1112
1113 //********************************************************************
1114 // MCU0 - Turn CLOCK STOP ON
1115 assign stop_mcu0_trigger = stop_mcu0 & cntstop_equal_max;
1116 assign stopmcu0_din = stop_req & (stop_mcu0_trigger | stopmcu0_dout);
1117 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopmcu0_reg
1118 (
1119 .scan_in(clkseq_stopmcu0_reg_scanin),
1120 .scan_out(clkseq_stopmcu0_reg_scanout),
1121 .l1clk (l1clk),
1122 .din (stopmcu0_din_l),
1123 .dout (stopmcu0_dout_l),
1124 .siclk(siclk),
1125 .soclk(soclk)
1126 );
1127 // MCU0 - Turn CLOCK STOP OFF
1128 assign start_mcu0_trigger = ~stop_mcu0 & cntstart_equal_max;
1129 assign startmcu0_din = ~stop_req & (start_mcu0_trigger | startmcu0_dout);
1130 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startmcu0_reg
1131 (
1132 .scan_in(clkseq_startmcu0_reg_scanin),
1133 .scan_out(clkseq_startmcu0_reg_scanout),
1134 .l1clk (l1clk),
1135 .din (startmcu0_din_l),
1136 .dout (startmcu0_dout_l),
1137 .siclk(siclk),
1138 .soclk(soclk)
1139 );
1140 assign stop_mcu0_delayed = (cntstop & stopmcu0_dout) | (cntstart & ~startmcu0_dout);
1141
1142 //********************************************************************
1143 // MCU1 - Turn CLOCK STOP ON
1144 assign stop_mcu1_trigger = stop_mcu1 & cntstop_equal_max;
1145 assign stopmcu1_din = stop_req & (stop_mcu1_trigger | stopmcu1_dout);
1146 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopmcu1_reg
1147 (
1148 .scan_in(clkseq_stopmcu1_reg_scanin),
1149 .scan_out(clkseq_stopmcu1_reg_scanout),
1150 .l1clk (l1clk),
1151 .din (stopmcu1_din_l),
1152 .dout (stopmcu1_dout_l),
1153 .siclk(siclk),
1154 .soclk(soclk)
1155 );
1156 // MCU1 - Turn CLOCK STOP OFF
1157 assign start_mcu1_trigger = ~stop_mcu1 & cntstart_equal_max;
1158 assign startmcu1_din = ~stop_req & (start_mcu1_trigger | startmcu1_dout);
1159 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startmcu1_reg
1160 (
1161 .scan_in(clkseq_startmcu1_reg_scanin),
1162 .scan_out(clkseq_startmcu1_reg_scanout),
1163 .l1clk (l1clk),
1164 .din (startmcu1_din_l),
1165 .dout (startmcu1_dout_l),
1166 .siclk(siclk),
1167 .soclk(soclk)
1168 );
1169 assign stop_mcu1_delayed = (cntstop & stopmcu1_dout) | (cntstart & ~startmcu1_dout);
1170
1171 //********************************************************************
1172 // MCU2 - Turn CLOCK STOP ON
1173 assign stop_mcu2_trigger = stop_mcu2 & cntstop_equal_max;
1174 assign stopmcu2_din = stop_req & (stop_mcu2_trigger | stopmcu2_dout);
1175 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopmcu2_reg
1176 (
1177 .scan_in(clkseq_stopmcu2_reg_scanin),
1178 .scan_out(clkseq_stopmcu2_reg_scanout),
1179 .l1clk (l1clk),
1180 .din (stopmcu2_din_l),
1181 .dout (stopmcu2_dout_l),
1182 .siclk(siclk),
1183 .soclk(soclk)
1184 );
1185 // MCU2 - Turn CLOCK STOP OFF
1186 assign start_mcu2_trigger = ~stop_mcu2 & cntstart_equal_max;
1187 assign startmcu2_din = ~stop_req & (start_mcu2_trigger | startmcu2_dout);
1188 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startmcu2_reg
1189 (
1190 .scan_in(clkseq_startmcu2_reg_scanin),
1191 .scan_out(clkseq_startmcu2_reg_scanout),
1192 .l1clk (l1clk),
1193 .din (startmcu2_din_l),
1194 .dout (startmcu2_dout_l),
1195 .siclk(siclk),
1196 .soclk(soclk)
1197 );
1198 assign stop_mcu2_delayed = (cntstop & stopmcu2_dout) | (cntstart & ~startmcu2_dout);
1199
1200 //********************************************************************
1201 // MCU3 - Turn CLOCK STOP ON
1202 assign stop_mcu3_trigger = stop_mcu3 & cntstop_equal_max;
1203 assign stopmcu3_din = stop_req & (stop_mcu3_trigger | stopmcu3_dout);
1204 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopmcu3_reg
1205 (
1206 .scan_in(clkseq_stopmcu3_reg_scanin),
1207 .scan_out(clkseq_stopmcu3_reg_scanout),
1208 .l1clk (l1clk),
1209 .din (stopmcu3_din_l),
1210 .dout (stopmcu3_dout_l),
1211 .siclk(siclk),
1212 .soclk(soclk)
1213 );
1214 // MCU3 - Turn CLOCK STOP OFF
1215 assign start_mcu3_trigger = ~stop_mcu3 & cntstart_equal_max;
1216 assign startmcu3_din = ~stop_req & (start_mcu3_trigger | startmcu3_dout);
1217 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startmcu3_reg
1218 (
1219 .scan_in(clkseq_startmcu3_reg_scanin),
1220 .scan_out(clkseq_startmcu3_reg_scanout),
1221 .l1clk (l1clk),
1222 .din (startmcu3_din_l),
1223 .dout (startmcu3_dout_l),
1224 .siclk(siclk),
1225 .soclk(soclk)
1226 );
1227 assign stop_mcu3_delayed = (cntstop & stopmcu3_dout) | (cntstart & ~startmcu3_dout);
1228
1229 //********************************************************************
1230 // SOC0 - Turn CLOCK STOP ON
1231 assign stop_soc0_trigger = stop_soc0 & cntstop_equal_max;
1232 assign stopsoc0_din = stop_req & (stop_soc0_trigger | stopsoc0_dout);
1233 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopsoc0_reg
1234 (
1235 .scan_in(clkseq_stopsoc0_reg_scanin),
1236 .scan_out(clkseq_stopsoc0_reg_scanout),
1237 .l1clk (l1clk),
1238 .din (stopsoc0_din_l),
1239 .dout (stopsoc0_dout_l),
1240 .siclk(siclk),
1241 .soclk(soclk)
1242 );
1243 // SOC0 - Turn CLOCK STOP OFF
1244 assign start_soc0_trigger = ~stop_soc0 & cntstart_equal_max;
1245 assign startsoc0_din = ~stop_req & (start_soc0_trigger | startsoc0_dout);
1246 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startsoc0_reg
1247 (
1248 .scan_in(clkseq_startsoc0_reg_scanin),
1249 .scan_out(clkseq_startsoc0_reg_scanout),
1250 .l1clk (l1clk),
1251 .din (startsoc0_din_l),
1252 .dout (startsoc0_dout_l),
1253 .siclk(siclk),
1254 .soclk(soclk)
1255 );
1256 assign stop_soc0_delayed = (cntstop & stopsoc0_dout) | (cntstart & ~startsoc0_dout);
1257
1258 //********************************************************************
1259 // SOC1 - Turn CLOCK STOP ON
1260 assign stop_soc1_trigger = stop_soc1 & cntstop_equal_max;
1261 assign stopsoc1_din = stop_req & (stop_soc1_trigger | stopsoc1_dout);
1262 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopsoc1_reg
1263 (
1264 .scan_in(clkseq_stopsoc1_reg_scanin),
1265 .scan_out(clkseq_stopsoc1_reg_scanout),
1266 .l1clk (l1clk),
1267 .din (stopsoc1_din_l),
1268 .dout (stopsoc1_dout_l),
1269 .siclk(siclk),
1270 .soclk(soclk)
1271 );
1272 // SOC1 - Turn CLOCK STOP OFF
1273 assign start_soc1_trigger = ~stop_soc1 & cntstart_equal_max;
1274 assign startsoc1_din = ~stop_req & (start_soc1_trigger | startsoc1_dout);
1275 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startsoc1_reg
1276 (
1277 .scan_in(clkseq_startsoc1_reg_scanin),
1278 .scan_out(clkseq_startsoc1_reg_scanout),
1279 .l1clk (l1clk),
1280 .din (startsoc1_din_l),
1281 .dout (startsoc1_dout_l),
1282 .siclk(siclk),
1283 .soclk(soclk)
1284 );
1285 assign stop_soc1_delayed = (cntstop & stopsoc1_dout) | (cntstart & ~startsoc1_dout);
1286
1287 //********************************************************************
1288 // SOC2 - Turn CLOCK STOP ON
1289 assign stop_soc2_trigger = stop_soc2 & cntstop_equal_max;
1290 assign stopsoc2_din = stop_req & (stop_soc2_trigger | stopsoc2_dout);
1291 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopsoc2_reg
1292 (
1293 .scan_in(clkseq_stopsoc2_reg_scanin),
1294 .scan_out(clkseq_stopsoc2_reg_scanout),
1295 .l1clk (l1clk),
1296 .din (stopsoc2_din_l),
1297 .dout (stopsoc2_dout_l),
1298 .siclk(siclk),
1299 .soclk(soclk)
1300 );
1301 // SOC2 - Turn CLOCK STOP OFF
1302 assign start_soc2_trigger = ~stop_soc2 & cntstart_equal_max;
1303 assign startsoc2_din = ~stop_req & (start_soc2_trigger | startsoc2_dout);
1304 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startsoc2_reg
1305 (
1306 .scan_in(clkseq_startsoc2_reg_scanin),
1307 .scan_out(clkseq_startsoc2_reg_scanout),
1308 .l1clk (l1clk),
1309 .din (startsoc2_din_l),
1310 .dout (startsoc2_dout_l),
1311 .siclk(siclk),
1312 .soclk(soclk)
1313 );
1314 assign stop_soc2_delayed = (cntstop & stopsoc2_dout) | (cntstart & ~startsoc2_dout);
1315
1316 //********************************************************************
1317 // SOC3 - Turn CLOCK STOP ON
1318 assign stop_soc3_trigger = stop_soc3 & cntstop_equal_max;
1319 assign stopsoc3_din = stop_req & (stop_soc3_trigger | stopsoc3_dout);
1320 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_stopsoc3_reg
1321 (
1322 .scan_in(clkseq_stopsoc3_reg_scanin),
1323 .scan_out(clkseq_stopsoc3_reg_scanout),
1324 .l1clk (l1clk),
1325 .din (stopsoc3_din_l),
1326 .dout (stopsoc3_dout_l),
1327 .siclk(siclk),
1328 .soclk(soclk)
1329 );
1330 // SOC3 - Turn CLOCK STOP OFF
1331 assign start_soc3_trigger = ~stop_soc3 & cntstart_equal_max;
1332 assign startsoc3_din = ~stop_req & (start_soc3_trigger | startsoc3_dout);
1333 tcu_clkseq_ctl_msff_ctl_macro__width_1 clkseq_startsoc3_reg
1334 (
1335 .scan_in(clkseq_startsoc3_reg_scanin),
1336 .scan_out(clkseq_startsoc3_reg_scanout),
1337 .l1clk (l1clk),
1338 .din (startsoc3_din_l),
1339 .dout (startsoc3_dout_l),
1340 .siclk(siclk),
1341 .soclk(soclk)
1342 );
1343 assign stop_soc3_delayed = (cntstop & stopsoc3_dout) | (cntstart & ~startsoc3_dout);
1344
1345 //********************************************************************
1346 // Generation of clock stops before synchronizing them
1347 //********************************************************************
1348 assign io_test_mode = test_mode_gated;
1349
1350 assign spc0_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc0_clk_stop;
1351 assign spc0_clk_stop = clock_stop_active & stop_spc0_delayed;
1352
1353 assign spc1_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc1_clk_stop;
1354 assign spc1_clk_stop = clock_stop_active & stop_spc1_delayed;
1355
1356 assign spc2_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc2_clk_stop;
1357 assign spc2_clk_stop = clock_stop_active & stop_spc2_delayed;
1358
1359 assign spc3_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc3_clk_stop;
1360 assign spc3_clk_stop = clock_stop_active & stop_spc3_delayed;
1361
1362 assign spc4_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc4_clk_stop;
1363 assign spc4_clk_stop = clock_stop_active & stop_spc4_delayed;
1364
1365 assign spc5_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc5_clk_stop;
1366 assign spc5_clk_stop = clock_stop_active & stop_spc5_delayed;
1367
1368 assign spc6_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc6_clk_stop;
1369 assign spc6_clk_stop = clock_stop_active & stop_spc6_delayed;
1370
1371 assign spc7_clk_stop_loop = io_test_mode ? io_ac_test_mode : spc7_clk_stop;
1372 assign spc7_clk_stop = clock_stop_active & stop_spc7_delayed;
1373
1374 assign bnk0_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk0_clk_stop;
1375 assign bnk0_clk_stop = clock_stop_active & stop_bnk0_delayed;
1376
1377 assign bnk1_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk1_clk_stop;
1378 assign bnk1_clk_stop = clock_stop_active & stop_bnk1_delayed;
1379
1380 assign bnk2_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk2_clk_stop;
1381 assign bnk2_clk_stop = clock_stop_active & stop_bnk2_delayed;
1382
1383 assign bnk3_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk3_clk_stop;
1384 assign bnk3_clk_stop = clock_stop_active & stop_bnk3_delayed;
1385
1386 assign bnk4_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk4_clk_stop;
1387 assign bnk4_clk_stop = clock_stop_active & stop_bnk4_delayed;
1388
1389 assign bnk5_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk5_clk_stop;
1390 assign bnk5_clk_stop = clock_stop_active & stop_bnk5_delayed;
1391
1392 assign bnk6_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk6_clk_stop;
1393 assign bnk6_clk_stop = clock_stop_active & stop_bnk6_delayed;
1394
1395 assign bnk7_clk_stop_loop = io_test_mode ? io_ac_test_mode : bnk7_clk_stop;
1396 assign bnk7_clk_stop = clock_stop_active & stop_bnk7_delayed;
1397
1398 assign mcu0_clk_stop_loop = io_test_mode ? io_ac_test_mode : mcu0_clk_stop;
1399 assign mcu0_clk_stop = clock_stop_active & stop_mcu0_delayed;
1400
1401 assign mcu1_clk_stop_loop = io_test_mode ? io_ac_test_mode : mcu1_clk_stop;
1402 assign mcu1_clk_stop = clock_stop_active & stop_mcu1_delayed;
1403
1404 assign mcu2_clk_stop_loop = io_test_mode ? io_ac_test_mode : mcu2_clk_stop;
1405 assign mcu2_clk_stop = clock_stop_active & stop_mcu2_delayed;
1406
1407 assign mcu3_clk_stop_loop = io_test_mode ? io_ac_test_mode : mcu3_clk_stop;
1408 assign mcu3_clk_stop = clock_stop_active & stop_mcu3_delayed;
1409
1410 assign soc0_clk_stop_loop = io_test_mode ? io_ac_test_mode : soc0_clk_stop;
1411 assign soc0_clk_stop = clock_stop_active & stop_soc0_delayed;
1412
1413 assign soc1_clk_stop_loop = io_test_mode ? io_ac_test_mode : soc1_clk_stop;
1414 assign soc1_clk_stop = clock_stop_active & stop_soc1_delayed;
1415
1416 assign soc2_clk_stop_loop = io_test_mode ? io_ac_test_mode : soc2_clk_stop;
1417 assign soc2_clk_stop = clock_stop_active & stop_soc2_delayed;
1418
1419 assign soc3_clk_stop_loop = io_test_mode ? io_ac_test_mode : soc3_clk_stop;
1420 assign soc3_clk_stop = clock_stop_active & stop_soc3_delayed;
1421
1422 assign clk_stop_loops_all_off = ~(spc0_clk_stop_loop | spc1_clk_stop_loop
1423 | spc2_clk_stop_loop | spc3_clk_stop_loop
1424 | spc4_clk_stop_loop | spc5_clk_stop_loop
1425 | spc6_clk_stop_loop | spc7_clk_stop_loop
1426 | bnk0_clk_stop_loop | bnk1_clk_stop_loop
1427 | bnk2_clk_stop_loop | bnk3_clk_stop_loop
1428 | bnk4_clk_stop_loop | bnk5_clk_stop_loop
1429 | bnk6_clk_stop_loop | bnk7_clk_stop_loop
1430 | mcu0_clk_stop_loop | mcu1_clk_stop_loop
1431 | mcu2_clk_stop_loop | mcu3_clk_stop_loop
1432 | soc0_clk_stop_loop | soc1_clk_stop_loop
1433 | soc2_clk_stop_loop | soc3_clk_stop_loop);
1434
1435 assign clk_stop_loops_all_on = ( spc0_clk_stop_loop & spc1_clk_stop_loop
1436 & spc2_clk_stop_loop & spc3_clk_stop_loop
1437 & spc4_clk_stop_loop & spc5_clk_stop_loop
1438 & spc6_clk_stop_loop & spc7_clk_stop_loop
1439 & bnk0_clk_stop_loop & bnk1_clk_stop_loop
1440 & bnk2_clk_stop_loop & bnk3_clk_stop_loop
1441 & bnk4_clk_stop_loop & bnk5_clk_stop_loop
1442 & bnk6_clk_stop_loop & bnk7_clk_stop_loop
1443 & mcu0_clk_stop_loop & mcu1_clk_stop_loop
1444 & mcu2_clk_stop_loop & mcu3_clk_stop_loop
1445 & soc0_clk_stop_loop & soc1_clk_stop_loop
1446 & soc2_clk_stop_loop & soc3_clk_stop_loop);
1447
1448// invert din and dout (q) so that during flush reset these flops all are set to '1'
1449
1450 assign stopspc0_din_l = ~stopspc0_din;
1451 assign startspc0_din_l = ~startspc0_din;
1452 assign stopspc1_din_l = ~stopspc1_din;
1453 assign startspc1_din_l = ~startspc1_din;
1454 assign stopspc2_din_l = ~stopspc2_din;
1455 assign startspc2_din_l = ~startspc2_din;
1456 assign stopspc3_din_l = ~stopspc3_din;
1457 assign startspc3_din_l = ~startspc3_din;
1458 assign stopspc4_din_l = ~stopspc4_din;
1459 assign startspc4_din_l = ~startspc4_din;
1460 assign stopspc5_din_l = ~stopspc5_din;
1461 assign startspc5_din_l = ~startspc5_din;
1462 assign stopspc6_din_l = ~stopspc6_din;
1463 assign startspc6_din_l = ~startspc6_din;
1464 assign stopspc7_din_l = ~stopspc7_din;
1465 assign startspc7_din_l = ~startspc7_din;
1466 assign stopbnk0_din_l = ~stopbnk0_din;
1467 assign startbnk0_din_l = ~startbnk0_din;
1468 assign stopbnk1_din_l = ~stopbnk1_din;
1469 assign startbnk1_din_l = ~startbnk1_din;
1470 assign stopbnk2_din_l = ~stopbnk2_din;
1471 assign startbnk2_din_l = ~startbnk2_din;
1472 assign stopbnk3_din_l = ~stopbnk3_din;
1473 assign startbnk3_din_l = ~startbnk3_din;
1474 assign stopbnk4_din_l = ~stopbnk4_din;
1475 assign startbnk4_din_l = ~startbnk4_din;
1476 assign stopbnk5_din_l = ~stopbnk5_din;
1477 assign startbnk5_din_l = ~startbnk5_din;
1478 assign stopbnk6_din_l = ~stopbnk6_din;
1479 assign startbnk6_din_l = ~startbnk6_din;
1480 assign stopbnk7_din_l = ~stopbnk7_din;
1481 assign startbnk7_din_l = ~startbnk7_din;
1482 assign stopmcu0_din_l = ~stopmcu0_din;
1483 assign startmcu0_din_l = ~startmcu0_din;
1484 assign stopmcu1_din_l = ~stopmcu1_din;
1485 assign startmcu1_din_l = ~startmcu1_din;
1486 assign stopmcu2_din_l = ~stopmcu2_din;
1487 assign startmcu2_din_l = ~startmcu2_din;
1488 assign stopmcu3_din_l = ~stopmcu3_din;
1489 assign startmcu3_din_l = ~startmcu3_din;
1490 assign stopsoc0_din_l = ~stopsoc0_din;
1491 assign startsoc0_din_l = ~startsoc0_din;
1492 assign stopsoc1_din_l = ~stopsoc1_din;
1493 assign startsoc1_din_l = ~startsoc1_din;
1494 assign stopsoc2_din_l = ~stopsoc2_din;
1495 assign startsoc2_din_l = ~startsoc2_din;
1496 assign stopsoc3_din_l = ~stopsoc3_din;
1497 assign startsoc3_din_l = ~startsoc3_din;
1498
1499 assign stopspc0_dout = ~stopspc0_dout_l;
1500 assign startspc0_dout = ~startspc0_dout_l;
1501 assign stopspc1_dout = ~stopspc1_dout_l;
1502 assign startspc1_dout = ~startspc1_dout_l;
1503 assign stopspc2_dout = ~stopspc2_dout_l;
1504 assign startspc2_dout = ~startspc2_dout_l;
1505 assign stopspc3_dout = ~stopspc3_dout_l;
1506 assign startspc3_dout = ~startspc3_dout_l;
1507 assign stopspc4_dout = ~stopspc4_dout_l;
1508 assign startspc4_dout = ~startspc4_dout_l;
1509 assign stopspc5_dout = ~stopspc5_dout_l;
1510 assign startspc5_dout = ~startspc5_dout_l;
1511 assign stopspc6_dout = ~stopspc6_dout_l;
1512 assign startspc6_dout = ~startspc6_dout_l;
1513 assign stopspc7_dout = ~stopspc7_dout_l;
1514 assign startspc7_dout = ~startspc7_dout_l;
1515 assign stopbnk0_dout = ~stopbnk0_dout_l;
1516 assign startbnk0_dout = ~startbnk0_dout_l;
1517 assign stopbnk1_dout = ~stopbnk1_dout_l;
1518 assign startbnk1_dout = ~startbnk1_dout_l;
1519 assign stopbnk2_dout = ~stopbnk2_dout_l;
1520 assign startbnk2_dout = ~startbnk2_dout_l;
1521 assign stopbnk3_dout = ~stopbnk3_dout_l;
1522 assign startbnk3_dout = ~startbnk3_dout_l;
1523 assign stopbnk4_dout = ~stopbnk4_dout_l;
1524 assign startbnk4_dout = ~startbnk4_dout_l;
1525 assign stopbnk5_dout = ~stopbnk5_dout_l;
1526 assign startbnk5_dout = ~startbnk5_dout_l;
1527 assign stopbnk6_dout = ~stopbnk6_dout_l;
1528 assign startbnk6_dout = ~startbnk6_dout_l;
1529 assign stopbnk7_dout = ~stopbnk7_dout_l;
1530 assign startbnk7_dout = ~startbnk7_dout_l;
1531 assign stopmcu0_dout = ~stopmcu0_dout_l;
1532 assign startmcu0_dout = ~startmcu0_dout_l;
1533 assign stopmcu1_dout = ~stopmcu1_dout_l;
1534 assign startmcu1_dout = ~startmcu1_dout_l;
1535 assign stopmcu2_dout = ~stopmcu2_dout_l;
1536 assign startmcu2_dout = ~startmcu2_dout_l;
1537 assign stopmcu3_dout = ~stopmcu3_dout_l;
1538 assign startmcu3_dout = ~startmcu3_dout_l;
1539 assign stopsoc0_dout = ~stopsoc0_dout_l;
1540 assign startsoc0_dout = ~startsoc0_dout_l;
1541 assign stopsoc1_dout = ~stopsoc1_dout_l;
1542 assign startsoc1_dout = ~startsoc1_dout_l;
1543 assign stopsoc2_dout = ~stopsoc2_dout_l;
1544 assign startsoc2_dout = ~startsoc2_dout_l;
1545 assign stopsoc3_dout = ~stopsoc3_dout_l;
1546 assign startsoc3_dout = ~startsoc3_dout_l;
1547
1548
1549// fixscan start:
1550assign clkseq_stopspc0_reg_scanin = scan_in ;
1551assign clkseq_startspc0_reg_scanin = clkseq_stopspc0_reg_scanout;
1552assign clkseq_stopspc1_reg_scanin = clkseq_startspc0_reg_scanout;
1553assign clkseq_startspc1_reg_scanin = clkseq_stopspc1_reg_scanout;
1554assign clkseq_stopspc2_reg_scanin = clkseq_startspc1_reg_scanout;
1555assign clkseq_startspc2_reg_scanin = clkseq_stopspc2_reg_scanout;
1556assign clkseq_stopspc3_reg_scanin = clkseq_startspc2_reg_scanout;
1557assign clkseq_startspc3_reg_scanin = clkseq_stopspc3_reg_scanout;
1558assign clkseq_stopspc4_reg_scanin = clkseq_startspc3_reg_scanout;
1559assign clkseq_startspc4_reg_scanin = clkseq_stopspc4_reg_scanout;
1560assign clkseq_stopspc5_reg_scanin = clkseq_startspc4_reg_scanout;
1561assign clkseq_startspc5_reg_scanin = clkseq_stopspc5_reg_scanout;
1562assign clkseq_stopspc6_reg_scanin = clkseq_startspc5_reg_scanout;
1563assign clkseq_startspc6_reg_scanin = clkseq_stopspc6_reg_scanout;
1564assign clkseq_stopspc7_reg_scanin = clkseq_startspc6_reg_scanout;
1565assign clkseq_startspc7_reg_scanin = clkseq_stopspc7_reg_scanout;
1566assign clkseq_stopbnk0_reg_scanin = clkseq_startspc7_reg_scanout;
1567assign clkseq_startbnk0_reg_scanin = clkseq_stopbnk0_reg_scanout;
1568assign clkseq_stopbnk1_reg_scanin = clkseq_startbnk0_reg_scanout;
1569assign clkseq_startbnk1_reg_scanin = clkseq_stopbnk1_reg_scanout;
1570assign clkseq_stopbnk2_reg_scanin = clkseq_startbnk1_reg_scanout;
1571assign clkseq_startbnk2_reg_scanin = clkseq_stopbnk2_reg_scanout;
1572assign clkseq_stopbnk3_reg_scanin = clkseq_startbnk2_reg_scanout;
1573assign clkseq_startbnk3_reg_scanin = clkseq_stopbnk3_reg_scanout;
1574assign clkseq_stopbnk4_reg_scanin = clkseq_startbnk3_reg_scanout;
1575assign clkseq_startbnk4_reg_scanin = clkseq_stopbnk4_reg_scanout;
1576assign clkseq_stopbnk5_reg_scanin = clkseq_startbnk4_reg_scanout;
1577assign clkseq_startbnk5_reg_scanin = clkseq_stopbnk5_reg_scanout;
1578assign clkseq_stopbnk6_reg_scanin = clkseq_startbnk5_reg_scanout;
1579assign clkseq_startbnk6_reg_scanin = clkseq_stopbnk6_reg_scanout;
1580assign clkseq_stopbnk7_reg_scanin = clkseq_startbnk6_reg_scanout;
1581assign clkseq_startbnk7_reg_scanin = clkseq_stopbnk7_reg_scanout;
1582assign clkseq_stopmcu0_reg_scanin = clkseq_startbnk7_reg_scanout;
1583assign clkseq_startmcu0_reg_scanin = clkseq_stopmcu0_reg_scanout;
1584assign clkseq_stopmcu1_reg_scanin = clkseq_startmcu0_reg_scanout;
1585assign clkseq_startmcu1_reg_scanin = clkseq_stopmcu1_reg_scanout;
1586assign clkseq_stopmcu2_reg_scanin = clkseq_startmcu1_reg_scanout;
1587assign clkseq_startmcu2_reg_scanin = clkseq_stopmcu2_reg_scanout;
1588assign clkseq_stopmcu3_reg_scanin = clkseq_startmcu2_reg_scanout;
1589assign clkseq_startmcu3_reg_scanin = clkseq_stopmcu3_reg_scanout;
1590assign clkseq_stopsoc0_reg_scanin = clkseq_startmcu3_reg_scanout;
1591assign clkseq_startsoc0_reg_scanin = clkseq_stopsoc0_reg_scanout;
1592assign clkseq_stopsoc1_reg_scanin = clkseq_startsoc0_reg_scanout;
1593assign clkseq_startsoc1_reg_scanin = clkseq_stopsoc1_reg_scanout;
1594assign clkseq_stopsoc2_reg_scanin = clkseq_startsoc1_reg_scanout;
1595assign clkseq_startsoc2_reg_scanin = clkseq_stopsoc2_reg_scanout;
1596assign clkseq_stopsoc3_reg_scanin = clkseq_startsoc2_reg_scanout;
1597assign clkseq_startsoc3_reg_scanin = clkseq_stopsoc3_reg_scanout;
1598assign scan_out = clkseq_startsoc3_reg_scanout;
1599// fixscan end:
1600endmodule
1601
1602
1603
1604
1605
1606
1607// any PARAMS parms go into naming of macro
1608
1609module tcu_clkseq_ctl_l1clkhdr_ctl_macro (
1610 l2clk,
1611 l1en,
1612 pce_ov,
1613 stop,
1614 se,
1615 l1clk);
1616
1617
1618 input l2clk;
1619 input l1en;
1620 input pce_ov;
1621 input stop;
1622 input se;
1623 output l1clk;
1624
1625
1626
1627
1628
1629cl_sc1_l1hdr_8x c_0 (
1630
1631
1632 .l2clk(l2clk),
1633 .pce(l1en),
1634 .l1clk(l1clk),
1635 .se(se),
1636 .pce_ov(pce_ov),
1637 .stop(stop)
1638);
1639
1640
1641
1642endmodule
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656// any PARAMS parms go into naming of macro
1657
1658module tcu_clkseq_ctl_msff_ctl_macro__width_1 (
1659 din,
1660 l1clk,
1661 scan_in,
1662 siclk,
1663 soclk,
1664 dout,
1665 scan_out);
1666wire [0:0] fdin;
1667
1668 input [0:0] din;
1669 input l1clk;
1670 input scan_in;
1671
1672
1673 input siclk;
1674 input soclk;
1675
1676 output [0:0] dout;
1677 output scan_out;
1678assign fdin[0:0] = din[0:0];
1679
1680
1681
1682
1683
1684
1685dff #(1) d0_0 (
1686.l1clk(l1clk),
1687.siclk(siclk),
1688.soclk(soclk),
1689.d(fdin[0:0]),
1690.si(scan_in),
1691.so(scan_out),
1692.q(dout[0:0])
1693);
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706endmodule
1707
1708
1709
1710
1711
1712
1713
1714