Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / rst / rtl / rst_cmp_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: rst_cmp_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`define ASSERT 1'b0 // For active low signal.
36`define DEASSERT 1'b1 // For active low signal.
37
38`define INFO 20
39 // (Origin:)
40`define IOB_CREG_RESET_GEN 40'h89_0000_0808 //Adr of RESET_GEN reg (Fire.)
41`define IOB_CREG_RESET_SOURCE 40'h89_0000_0818 //Adr of RESET_SOURCE reg (Fire.)
42`define IOB_CREG_SSYSRESET 40'h89_0000_0838 //Adr of SSYS_RESET reg (N1.)
43`define IOB_CREG_RESETSTAT 40'h89_0000_0810 //Adr of RSET_STAT reg (N1.)
44`define IOB_CREG_CCU_TIME 40'h89_0000_0860 //Adr of CCU_TIME reg (N2.)
45`define IOB_CREG_LOCK_TIME 40'h89_0000_0870 //Adr of LOCK_TIME reg (N2.)
46`define IOB_CREG_PROP_TIME 40'h89_0000_0880 //Adr of PROP_TIME reg (N2.)
47`define IOB_CREG_NIU_TIME 40'h89_0000_0890 //Adr of NIU_TIME reg (N2.)
48`define IOB_CREG_RESET_FEE 40'h89_0000_0820 //Adr of RESET_FEE reg (N2.)
49//________________________________________________________________
50
51`define RST_FSM_WIDTH 33
52`define RST_INIT_STATE 33'h0_0000_0001
53`define POR1_LOCK_TIME 33'h0_0000_0002
54`define POR1_ARST_TIME 33'h0_0000_0004
55`define POR1_SYNC_STABLE 33'h0_0000_0008
56`define POR1_ASICFLUSH_STOP_ACK 33'h0_0000_0010
57`define POR1_NIU_TIME 33'h0_0000_0020
58`define POR1_FLUSH_STOP_ACK 33'h0_0000_0040
59`define POR1_BISX_DONE 33'h0_0000_0080
60`define POR2_FLUSH_INIT_ACK 33'h0_0000_0100
61`define POR2_LOCK_TIME 33'h0_0000_0200
62`define POR2_FLUSH_STOP_ACK 33'h0_0000_0400
63`define POR2_EFU_DONE 33'h0_0000_0800
64`define POR2_ASSERT_RUN 33'h0_0000_1000
65`define POR2_UNPARK_THREAD 33'h0_0000_2000
66`define WMR1_WMR_GEN 33'h0_0000_4000
67`define WMR1_DEASSERT_RUN 33'h0_0000_8000
68`define WMR1_FLUSH_INIT_ACK 33'h0_0001_0000
69`define WMR1_PRE_PLL1 33'h0_0002_0000
70`define WMR1_PRE_PLL2 33'h0_0004_0000
71`define WMR1_CCU_PLL 33'h0_0008_0000
72`define WMR1_LOCK_TIME 33'h0_0010_0000
73`define WMR1_ARST_TIME 33'h0_0020_0000
74`define WMR1_PROP_TIME 33'h0_0040_0000
75`define WMR1_SYNC_STABLE 33'h0_0080_0000
76`define WMR1_FLUSH_STOP_ACK 33'h0_0100_0000
77`define WMR1_BISX_DONE 33'h0_0200_0000
78`define WMR2_FLUSH_INIT_ACK 33'h0_0400_0000
79`define WMR2_PROP_TIME 33'h0_0800_0000
80`define WMR2_FLUSH_STOP_ACK 33'h0_1000_0000
81`define WMR2_NIU_TIME 33'h1_0000_0000
82`define WMR2_ASSERT_RUN 33'h0_2000_0000
83`define WMR2_UNPARK_THREAD 33'h0_4000_0000
84`define RST_ARBITER 33'h0_8000_0000
85
86`define XIR_IDLE 2'h1
87`define XIR_DONE 2'h2
88
89`define DMU_IDLE 3'h1
90`define DMU_TIME1 3'h2
91`define DMU_TIME2 3'h4
92
93`define NIU_IDLE 2'h1
94`define NIU_TIME 2'h2
95//________________________________________________________________
96
97// Already taken addresses, in address order:
98// sort -t "'" -k 2 /home/jl148824/project/NCU/include/iop.h:
99
100//`define IOB_CREG_INTMAN 32'h00000000
101//`define IOB_CREG_INTSTAT 32'h00000000
102//`define IOB_CREG_INTCTL 32'h00000400
103//`define IOB_CREG_MDATA0 32'h00000400
104//`define IOB_CREG_MDATA1 32'h00000500
105//`define IOB_CREG_MDATA0_ALIAS 32'h00000600
106//`define IOB_CREG_MDATA1_ALIAS 32'h00000700
107//`define IOB_CREG_INTVECDISP 32'h00000800
108// 32'h00000808 // Adr of RESET_GEN reg.
109// Bill Bryg removed the CHIP_RESET reg from the Niagara 1 spec Feb 4 '03.
110//`define IOB_CREG_RESETSTAT 32'h00000810 // Adr of RSET_STAT reg.
111//`define IOB_CREG_SERNUM 32'h00000820
112//`define IOB_CREG_TMSTATCTRL 32'h00000828
113//`define IOB_CREG_COREAVAIL 32'h00000830
114//`define IOB_CREG_SSYSRESET 32'h00000838 // Adr of SSYS_RESET reg.
115//`define IOB_CREG_FUSESTAT 32'h00000840
116//`define IOB_CREG_MARGIN 32'h00000850
117//`define IOB_CREG_MBUSY 32'h00000900
118//`define IOB_CREG_JINTV 32'h00000a00
119//`define IOB_CREG_MBUSY_ALIAS 32'h00000b00
120//`define IOB_CREG_DBG_IOBVIS_CTRL 32'h00001000
121//`define IOB_CREG_DBG_L2VIS_CTRL 32'h00001800
122//`define IOB_CREG_DBG_L2VIS_MASKA 32'h00001820
123//`define IOB_CREG_DBG_L2VIS_MASKB 32'h00001828
124//`define IOB_CREG_DBG_L2VIS_CMPA 32'h00001830
125//`define IOB_CREG_DBG_L2VIS_CMPB 32'h00001838
126//`define IOB_CREG_DBG_L2VIS_TRIG 32'h00001840
127//`define IOB_CREG_DBG_ENET_CTRL 32'h00002000
128//`define IOB_CREG_DBG_ENET_IDLEVAL 32'h00002008
129//`define IOB_CREG_DBG_JBUS_CTRL 32'h00002100
130//`define IOB_CREG_DBG_JBUS_LO_MASK0 32'h00002140
131//`define IOB_CREG_DBG_JBUS_LO_CMP0 32'h00002148
132//`define IOB_CREG_DBG_JBUS_LO_CNT0 32'h00002150
133//`define IOB_CREG_DBG_JBUS_LO_MASK1 32'h00002160
134//`define IOB_CREG_DBG_JBUS_LO_CMP1 32'h00002168
135//`define IOB_CREG_DBG_JBUS_LO_CNT1 32'h00002170
136//`define IOB_CREG_DBG_JBUS_HI_MASK0 32'h00002180
137//`define IOB_CREG_DBG_JBUS_HI_CMP0 32'h00002188
138//`define IOB_CREG_DBG_JBUS_HI_CNT0 32'h00002190
139//`define IOB_CREG_DBG_JBUS_HI_MASK1 32'h000021a0
140//`define IOB_CREG_DBG_JBUS_HI_CMP1 32'h000021a8
141//`define IOB_CREG_DBG_JBUS_HI_CNT1 32'h000021b0
142//________________________________________________________________
143
144// Verilog define statements for:
145// rst_ucbbusin4_ctl.sv and:
146// rst_ucbbusout4_ctl.sv:
147
148`define UCB_BUS_WIDTH 4
149`define UCB_BUS_WIDTH_M1 3
150`define CYC_NUM 32
151`define CYC_NUM_M1 31
152
153`define RST_UCB_DATA_WIDTH 16
154// Width of:
155// data_in_io ;// Convert from io to cmp to sys.
156// data_in_sys ;// Convert from io to cmp to sys.
157// data_out_sys2 ;// Convert from sys to cmp.
158// data_out_cmp2 ;// Convert from sys to cmp to io.
159// The following stay 64 bits wide:
160// data_in ;// Convert from io to cmp to sys.
161// data_out ;// Converted from cmp to io.
162// If you modify RST_UCB_DATA_WIDTH, adjust the width of x'b0 in
163// the following two concatenations:
164// assign data_out [ 63:0] =
165// assign data_out_sys[`RST_UCB_DATA_WIDTH-1:0] =
166
167`define RST_TIME_WIDTH 16
168// Width of:
169// lock_time_addr ? {32'b0, lock_time_q [31:0] }:// LOCK_TIME
170// prop_time_addr ? {32'b0, prop_time_q [31:0] }:// PROP_TIME
171// niu_time_addr ? {32'b0, niu_time_q [31:0] }:// NIU_TIME
172// msff_ctl_macro lock_time_ff (width=32,en=1,clr_=1)
173// msff_ctl_macro lock_count_ff (width=32,en=0,clr_=1)
174// msff_ctl_macro prop_time_ff (width=32,en=1,clr_=1)
175// msff_ctl_macro prop_count_ff (width=32,en=0,clr_=1)
176// msff_ctl_macro niu_time_ff (width=32,en=1,clr_=1)
177// msff_ctl_macro niu_count_ff (width=32,en=0,clr_=1)
178// msff_ctl_macro dmu_time_ff (width=32,en=1,clr_=1)
179// msff_ctl_macro dmu_count_ff (width=32,en=0,clr_=1)
180
181
182
183module rst_cmp_ctl (
184 l2clk,
185 scan_in,
186 scan_out,
187 rst_aclk,
188 rst_bclk,
189 rst_scan_en,
190 tcu_pce_ov,
191 rst_clk_stop,
192 tcu_rst_scan_mode,
193 ccu_cmp_sys_sync_en,
194 ccu_sys_cmp_sync_en,
195 cmp_io_sync_en,
196 io_cmp_sync_en,
197 rst_cmp_ctl_wmr_sys2_,
198 mio_rst_pwron_rst_l,
199 tcu_rst_flush_init_ack,
200 tcu_rst_flush_stop_ack,
201 tcu_rst_asicflush_stop_ack,
202 rst_mcu_selfrsh_sys2,
203 rst_l2_por_sys2_,
204 rst_l2_wmr_sys2_,
205 rst_dmu_peu_por_sys2_,
206 rst_dmu_peu_wmr_sys2_,
207 rst_niu_mac_sys2_,
208 rst_niu_wmr_sys2_,
209 rst_tcu_clk_stop_sys2,
210 rst_ncu_unpark_thread_sys2,
211 rst_ncu_xir_sys2_,
212 ncu_rst_xir_done_io,
213 tcu_rst_efu_done,
214 tcu_bisx_done,
215 tcu_test_protect_io,
216 ccu_rst_change_io,
217 l2ta_rst_fatal_error_io,
218 ncu_rst_fatal_error_io,
219 tr_flush_init_ack_cmp,
220 tr_flush_stop_ack_cmp,
221 tr_asicflush_stop_ack_cmp,
222 rt_flush_init_req_sys2,
223 rt_flush_stop_req_sys2,
224 rt_asicflush_stop_req_sys2,
225 rst_tcu_flush_init_req,
226 rst_tcu_flush_stop_req,
227 rst_tcu_asicflush_stop_req,
228 rd_req_vld_io,
229 wr_req_vld_io,
230 req_acpted_sys,
231 rd_ack_vld_sys,
232 rd_nack_vld_sys,
233 addr_in_io,
234 data_in_io,
235 thr_id_in_io,
236 buf_id_in_io,
237 ack_busy_io,
238 data_out_sys2,
239 thr_id_out_sys,
240 buf_id_out_sys,
241 reset_gen_dbr_gen_q,
242 rd_req_vld_sys,
243 wr_req_vld_sys,
244 req_acpted_cmp2,
245 rd_ack_vld_cmp2,
246 rd_nack_vld_cmp2,
247 addr_in_sys,
248 data_in_sys,
249 thr_id_in_sys,
250 buf_id_in_sys,
251 ack_busy_sys,
252 data_out_cmp2,
253 thr_id_out_cmp2,
254 buf_id_out_cmp2,
255 rst_mcu_selfrsh_cmp2,
256 rst_dmu_peu_por_,
257 rst_dmu_peu_wmr_,
258 rst_niu_mac_,
259 rst_niu_wmr_,
260 rst_tcu_clk_stop,
261 rst_tcu_clk_stop_io,
262 rst_l2_por_,
263 rst_l2_wmr_,
264 rst_ncu_unpark_thread_cmp2,
265 rst_ncu_xir_cmp2_,
266 ncu_rst_xir_done_sys,
267 tcu_rst_efu_done_cmp,
268 tcu_bisx_done_cmp,
269 ncu_rst_fatal_error_cmp,
270 tcu_test_protect_cmp,
271 ccu_rst_change_cmp,
272 l2t7_rst_fatal_error_cmp,
273 l2t6_rst_fatal_error_cmp,
274 l2t5_rst_fatal_error_cmp,
275 l2t4_rst_fatal_error_cmp,
276 l2t3_rst_fatal_error_cmp,
277 l2t2_rst_fatal_error_cmp,
278 l2t1_rst_fatal_error_cmp,
279 l2t0_rst_fatal_error_cmp,
280 pwron_rst_h_scan_mode_en,
281 rst_tcu_dbr_gen,
282 rst_rst_pwron_rst_l_sys2_,
283 rst_tcu_pwron_rst_l,
284 rst_rst_pwron_rst_l_io0_,
285 mio_rst_pb_rst_sys_,
286 mio_rst_pb_rst_sys2_,
287 rst_rst_por_sys2_,
288 rst_rst_por_io0_,
289 rst_rst_wmr_sys2_,
290 rst_rst_wmr_io0_);
291wire spares_scanout;
292wire tcu_aclk;
293wire tcu_bclk;
294wire tcu_scan_en;
295wire tcu_clk_stop;
296wire siclk;
297wire soclk;
298wire rst_tcu_pwron_rst_l_ff_scanin;
299wire rst_tcu_pwron_rst_l_ff_scanout;
300wire l1clk;
301wire ccu_sys_cmp_sync_en3;
302wire rst_tcu_pwron_rst_l_cmp_;
303wire rst_rst_pwron_rst_l_io0_ff_scanin;
304wire rst_rst_pwron_rst_l_io0_ff_scanout;
305wire cmp_io_sync_en2;
306wire rst_tcu_flush_init_req_ff_scanin;
307wire rst_tcu_flush_init_req_ff_scanout;
308wire rst_cmp_ctl_wmr_cmp_;
309wire rst_tcu_flush_stop_req_ff_scanin;
310wire rst_tcu_flush_stop_req_ff_scanout;
311wire rst_tcu_asicflush_stop_req_ff_scanin;
312wire rst_tcu_asicflush_stop_req_ff_scanout;
313wire rst_tcu_dbr_gen_ff_scanin;
314wire rst_tcu_dbr_gen_ff_scanout;
315wire tcu_rst_flush_init_ack_ff_scanin;
316wire tcu_rst_flush_init_ack_ff_scanout;
317wire ccu_cmp_sys_sync_en3;
318wire tcu_rst_flush_stop_ack_ff_scanin;
319wire tcu_rst_flush_stop_ack_ff_scanout;
320wire tcu_rst_asicflush_stop_ack_ff_scanin;
321wire tcu_rst_asicflush_stop_ack_ff_scanout;
322wire req_acpted_cmp_ff_scanin;
323wire req_acpted_cmp_ff_scanout;
324wire req_acpted_cmp;
325wire req_acpted_cmp2_ff_scanin;
326wire req_acpted_cmp2_ff_scanout;
327wire rd_ack_vld_cmp_ff_scanin;
328wire rd_ack_vld_cmp_ff_scanout;
329wire rd_ack_vld_cmp;
330wire rd_ack_vld_cmp2_ff_scanin;
331wire rd_ack_vld_cmp2_ff_scanout;
332wire rd_nack_vld_cmp_ff_scanin;
333wire rd_nack_vld_cmp_ff_scanout;
334wire rd_nack_vld_cmp;
335wire rd_nack_vld_cmp2_ff_scanin;
336wire rd_nack_vld_cmp2_ff_scanout;
337wire data_out_cmp_ff_scanin;
338wire data_out_cmp_ff_scanout;
339wire [15:0] data_out_cmp;
340wire data_out_cmp2_ff_scanin;
341wire data_out_cmp2_ff_scanout;
342wire addr_in_cmp_ff_scanin;
343wire addr_in_cmp_ff_scanout;
344wire io_cmp_sync_en2;
345wire [39:0] addr_in_cmp;
346wire addr_in_sys_ff_scanin;
347wire addr_in_sys_ff_scanout;
348wire data_in_cmp_ff_scanin;
349wire data_in_cmp_ff_scanout;
350wire [15:0] data_in_cmp;
351wire data_in_sys_ff_scanin;
352wire data_in_sys_ff_scanout;
353wire thr_id_in_cmp_ff_scanin;
354wire thr_id_in_cmp_ff_scanout;
355wire [5:0] thr_id_in_cmp;
356wire thr_id_in_sys_ff_scanin;
357wire thr_id_in_sys_ff_scanout;
358wire buf_id_in_cmp_ff_scanin;
359wire buf_id_in_cmp_ff_scanout;
360wire [1:0] buf_id_in_cmp;
361wire buf_id_in_sys_ff_scanin;
362wire buf_id_in_sys_ff_scanout;
363wire ack_busy_cmp_ff_scanin;
364wire ack_busy_cmp_ff_scanout;
365wire ack_busy_cmp;
366wire ack_busy_sys_ff_scanin;
367wire ack_busy_sys_ff_scanout;
368wire thr_id_out_cmp_ff_scanin;
369wire thr_id_out_cmp_ff_scanout;
370wire [5:0] thr_id_out_cmp;
371wire thr_id_out_cmp2_ff_scanin;
372wire thr_id_out_cmp2_ff_scanout;
373wire buf_id_out_cmp_ff_scanin;
374wire buf_id_out_cmp_ff_scanout;
375wire [1:0] buf_id_out_cmp;
376wire buf_id_out_cmp2_ff_scanin;
377wire buf_id_out_cmp2_ff_scanout;
378wire rd_req_vld_cmp_ff_scanin;
379wire rd_req_vld_cmp_ff_scanout;
380wire rd_req_vld_cmp;
381wire rd_req_vld_cmp2_ff_scanin;
382wire rd_req_vld_cmp2_ff_scanout;
383wire wr_req_vld_cmp_ff_scanin;
384wire wr_req_vld_cmp_ff_scanout;
385wire wr_req_vld_cmp;
386wire wr_req_vld_cmp2_ff_scanin;
387wire wr_req_vld_cmp2_ff_scanout;
388wire rst_mcu_selfrsh_cmp_ff_scanin;
389wire rst_mcu_selfrsh_cmp_ff_scanout;
390wire rst_mcu_selfrsh_cmp;
391wire rst_mcu_selfrsh_cmp2_ff_scanin;
392wire rst_mcu_selfrsh_cmp2_ff_scanout;
393wire rst_l2_por_ff_scanin;
394wire rst_l2_por_ff_scanout;
395wire rst_l2_wmr_ff_scanin;
396wire rst_l2_wmr_ff_scanout;
397wire rst_tcu_clk_stop_cmp_ff_scanin;
398wire rst_tcu_clk_stop_cmp_ff_scanout;
399wire l1clk_free_running;
400wire rst_tcu_clk_stop_io_ff_scanin;
401wire rst_tcu_clk_stop_io_ff_scanout;
402wire rst_dmu_peu_por_ff_scanin;
403wire rst_dmu_peu_por_ff_scanout;
404wire rst_dmu_peu_wmr_ff_scanin;
405wire rst_dmu_peu_wmr_ff_scanout;
406wire rst_niu_mac_ff_scanin;
407wire rst_niu_mac_ff_scanout;
408wire rst_niu_wmr_ff_scanin;
409wire rst_niu_wmr_ff_scanout;
410wire rst_ncu_unpark_thread_cmp_ff_scanin;
411wire rst_ncu_unpark_thread_cmp_ff_scanout;
412wire rst_ncu_unpark_thread_cmp;
413wire rst_ncu_unpark_thread_cmp2_ff_scanin;
414wire rst_ncu_unpark_thread_cmp2_ff_scanout;
415wire rst_ncu_xir_dout;
416wire rst_ncu_xir_cmp_ff_scanin;
417wire rst_ncu_xir_cmp_ff_scanout;
418wire rst_ncu_xir_cmp_;
419wire rst_ncu_xir_cmp2_ff_scanin;
420wire rst_ncu_xir_cmp2_ff_scanout;
421wire ncu_rst_xir_done_cmp_ff_scanin;
422wire ncu_rst_xir_done_cmp_ff_scanout;
423wire ncu_rst_xir_done_cmp;
424wire ncu_rst_xir_done_sys_ff_scanin;
425wire ncu_rst_xir_done_sys_ff_scanout;
426wire tcu_rst_efu_done_sys_ff_scanin;
427wire tcu_rst_efu_done_sys_ff_scanout;
428wire tcu_bisx_done_sys_ff_scanin;
429wire tcu_bisx_done_sys_ff_scanout;
430wire tcu_test_protect_cmp0_ff_scanin;
431wire tcu_test_protect_cmp0_ff_scanout;
432wire tcu_test_protect_cmp0;
433wire tcu_test_protect_cmp_ff_scanin;
434wire tcu_test_protect_cmp_ff_scanout;
435wire ccu_rst_change_cmp0_ff_scanin;
436wire ccu_rst_change_cmp0_ff_scanout;
437wire ccu_rst_change_cmp0;
438wire ccu_rst_change_cmp_ff_scanin;
439wire ccu_rst_change_cmp_ff_scanout;
440wire ncu_rst_fatal_error_cmp0_ff_scanin;
441wire ncu_rst_fatal_error_cmp0_ff_scanout;
442wire ncu_rst_fatal_error_cmp0;
443wire ncu_rst_fatal_error_hold_din;
444wire ncu_rst_fatal_error_hold_dout;
445wire ncu_rst_fatal_error_hold_ff_scanin;
446wire ncu_rst_fatal_error_hold_ff_scanout;
447wire ncu_rst_fatal_error_cmp_ff_scanin;
448wire ncu_rst_fatal_error_cmp_ff_scanout;
449wire l2ta_rst_fatal_error_cmp0_ff_scanin;
450wire l2ta_rst_fatal_error_cmp0_ff_scanout;
451wire [7:0] l2ta_rst_fatal_error_cmp0;
452wire [7:0] l2ta_rst_fatal_error_hold_din;
453wire [7:0] l2ta_rst_fatal_error_hold_dout;
454wire [7:0] l2ta_rst_fatal_error_cmp;
455wire l2ta_rst_fatal_error_hold_ff_scanin;
456wire l2ta_rst_fatal_error_hold_ff_scanout;
457wire l2ta_rst_fatal_error_cmp_ff_scanin;
458wire l2ta_rst_fatal_error_cmp_ff_scanout;
459wire mio_rst_pb_rst_cmp_ff_scanin;
460wire mio_rst_pb_rst_cmp_ff_scanout;
461wire mio_rst_pb_rst_cmp_;
462wire mio_rst_pb_rst_sys2_ff_scanin;
463wire mio_rst_pb_rst_sys2_ff_scanout;
464wire rst_cmp_ctl_wmr_cmp_ff_scanin;
465wire rst_cmp_ctl_wmr_cmp_ff_scanout;
466wire rst_rst_por_cmp_ff_scanin;
467wire rst_rst_por_cmp_ff_scanout;
468wire rst_rst_por_cmp_;
469wire rst_rst_por_io_ff_scanin;
470wire rst_rst_por_io_ff_scanout;
471wire rst_rst_wmr_cmp_ff_scanin;
472wire rst_rst_wmr_cmp_ff_scanout;
473wire rst_rst_wmr_cmp_;
474wire rst_rst_wmr_io_ff_scanin;
475wire rst_rst_wmr_io_ff_scanout;
476wire cmp_io_sync_en2_ff_scanin;
477wire cmp_io_sync_en2_ff_scanout;
478wire io_cmp_sync_en2_ff_scanin;
479wire io_cmp_sync_en2_ff_scanout;
480wire ccu_cmp_sys_sync_en2_ff_scanin;
481wire ccu_cmp_sys_sync_en2_ff_scanout;
482wire ccu_cmp_sys_sync_en2;
483wire ccu_cmp_sys_sync_en3_ff_scanin;
484wire ccu_cmp_sys_sync_en3_ff_scanout;
485wire ccu_sys_cmp_sync_en2_ff_scanin;
486wire ccu_sys_cmp_sync_en2_ff_scanout;
487wire ccu_sys_cmp_sync_en2;
488wire ccu_sys_cmp_sync_en3_ff_scanin;
489wire ccu_sys_cmp_sync_en3_ff_scanout;
490wire spares_scanin;
491
492input l2clk ;// From clkgen_rst_cmp.
493input scan_in ;// rst_fsm_ctl_scanin? rst_cmp_ctl_scanin?
494output scan_out ;//
495//output rst_fsm_ctl_scanout ;
496input rst_aclk ;// Called rst_ here. .(tcu_aclk_gen )
497input rst_bclk ;// to allow assign stmt. .(tcu_bclk_gen )
498input rst_scan_en ;// Assign. .(tcu_scan_en )
499input tcu_pce_ov ;// (No assign needed.) .(tcu_pce_ov_gen)
500input rst_clk_stop ;// Assign. .(1'b0 )
501input tcu_rst_scan_mode ;// Indicates scan is active.
502input ccu_cmp_sys_sync_en ;
503input ccu_sys_cmp_sync_en ;
504input cmp_io_sync_en ;
505input io_cmp_sync_en ;
506//put ccu_rst_sync_stable ;// Review Oct 24 '05.
507input rst_cmp_ctl_wmr_sys2_;
508
509input mio_rst_pwron_rst_l ;
510input tcu_rst_flush_init_ack;// Convert from cmp to sys.
511input tcu_rst_flush_stop_ack;// Convert from cmp to sys.
512input tcu_rst_asicflush_stop_ack;// Convert from cmp to sys.
513
514input rst_mcu_selfrsh_sys2 ;// Convert from sys to cmp to io.
515input rst_l2_por_sys2_ ;// Convert from sys to cmp.
516input rst_l2_wmr_sys2_ ;// Convert from sys to cmp.
517input rst_dmu_peu_por_sys2_ ;// Convert from sys to cmp.
518input rst_dmu_peu_wmr_sys2_ ;// Convert from sys to cmp.
519input rst_niu_mac_sys2_ ;// Convert from sys to cmp.
520input rst_niu_wmr_sys2_ ;// Convert from sys to cmp.
521input rst_tcu_clk_stop_sys2 ;// Convert from sys to cmp.
522input rst_ncu_unpark_thread_sys2;// Convert from sys to cmp to io.
523input rst_ncu_xir_sys2_ ;// Convert from sys to cmp to io.
524input ncu_rst_xir_done_io ;// Convert from io to cmp to sys.
525input tcu_rst_efu_done ;// Convert from cmp to sys.
526input tcu_bisx_done ;// Convert from cmp to sys.
527input tcu_test_protect_io ;// Convert from cmp to sys.
528input ccu_rst_change_io ;// Convert from cmp to sys.
529input [ 7:0] l2ta_rst_fatal_error_io ;// Convert from io to cmp to sys.
530input ncu_rst_fatal_error_io ;// Convert from io to cmp to sys.
531
532output tr_flush_init_ack_cmp ;// Converted from cmp to sys.
533output tr_flush_stop_ack_cmp ;// Converted from cmp to sys.
534output tr_asicflush_stop_ack_cmp ;// Converted from cmp to sys.
535
536input rt_flush_init_req_sys2 ;// Convert from sys to cmp.
537input rt_flush_stop_req_sys2 ;// Convert from sys to cmp.
538input rt_asicflush_stop_req_sys2;// Convert from sys to cmp.
539
540output rst_tcu_flush_init_req ;// Converted from sys to cmp.
541output rst_tcu_flush_stop_req ;// Converted from sys to cmp.
542output rst_tcu_asicflush_stop_req;// Converted from sys to cmp.
543
544input rd_req_vld_io ;// Convert from io to cmp.
545input wr_req_vld_io ;// Convert from io to cmp.
546input req_acpted_sys ;// Convert from sys to cmp.
547input rd_ack_vld_sys ;// Convert from sys to cmp.
548input rd_nack_vld_sys ;// Convert from sys to cmp.
549input [39:0] addr_in_io ;// Convert from io to cmp to sys.
550input [`RST_UCB_DATA_WIDTH-1:0]
551 data_in_io ;// Convert from io to cmp to sys.
552input [ 5:0] thr_id_in_io ;// Convert from io to cmp to sys.
553input [ 1:0] buf_id_in_io ;// Convert from io to cmp to sys.
554input ack_busy_io ;// Convert from io to cmp to sys.
555input [`RST_UCB_DATA_WIDTH-1:0]
556 data_out_sys2 ;// Convert from sys to cmp.
557input [ 5:0] thr_id_out_sys ;// Convert from sys to cmp to io.
558input [ 1:0] buf_id_out_sys ;// Convert from sys to cmp to io.
559input reset_gen_dbr_gen_q ;// Convert from sys to cmp:
560 // rst_tcu_dbr_gen
561
562output rd_req_vld_sys ;// Converted from io to cmp.
563output wr_req_vld_sys ;// Converted from io to cmp.
564output req_acpted_cmp2 ;// Convert from sys to cmp to io.
565output rd_ack_vld_cmp2 ;// Convert from sys to cmp to io.
566output rd_nack_vld_cmp2 ;// Convert from sys to cmp to io.
567output[39:0] addr_in_sys ;// Convert from io to cmp to sys.
568output[`RST_UCB_DATA_WIDTH-1:0]
569 data_in_sys ;// Convert from io to cmp to sys.
570output[ 5:0] thr_id_in_sys ;// Convert from io to cmp to sys.
571output[ 1:0] buf_id_in_sys ;// Convert from io to cmp to sys.
572output ack_busy_sys ;// Convert from io to cmp to sys.
573output[`RST_UCB_DATA_WIDTH-1:0]
574 data_out_cmp2 ;// Convert from sys to cmp to io.
575output[ 5:0] thr_id_out_cmp2 ;// Convert from sys to cmp to io.
576output[ 1:0] buf_id_out_cmp2 ;// Convert from sys to cmp to io.
577
578output rst_mcu_selfrsh_cmp2 ;// Convert from sys to cmp to io.
579output rst_dmu_peu_por_ ;// Converted from sys to cmp.
580output rst_dmu_peu_wmr_ ;// Converted from sys to cmp.
581output rst_niu_mac_ ;// Converted from sys to cmp.
582output rst_niu_wmr_ ;// Converted from sys to cmp.
583output rst_tcu_clk_stop ;// Converted from sys to cmp.
584output rst_tcu_clk_stop_io ;// Converted from sys to io.
585output rst_l2_por_ ;// Converted from sys to cmp.
586output rst_l2_wmr_ ;// Converted from sys to cmp.
587output rst_ncu_unpark_thread_cmp2;// Convert from sys to cmp to io.
588output rst_ncu_xir_cmp2_ ;// Convert from sys to cmp to io.
589output ncu_rst_xir_done_sys ;// Convert from io to cmp to sys.
590output tcu_rst_efu_done_cmp ;// Convert from cmp to sys.
591output tcu_bisx_done_cmp ;// Convert from cmp to sys.
592output ncu_rst_fatal_error_cmp ;// Convert from io to cmp to sys.
593output tcu_test_protect_cmp ;// Convert from io to cmp to sys.
594output ccu_rst_change_cmp ;// Convert from io to cmp to sys.
595output l2t7_rst_fatal_error_cmp ;// Convert from cmp to sys.
596output l2t6_rst_fatal_error_cmp ;// Convert from cmp to sys.
597output l2t5_rst_fatal_error_cmp ;// Convert from cmp to sys.
598output l2t4_rst_fatal_error_cmp ;// Convert from cmp to sys.
599output l2t3_rst_fatal_error_cmp ;// Convert from cmp to sys.
600output l2t2_rst_fatal_error_cmp ;// Convert from cmp to sys.
601output l2t1_rst_fatal_error_cmp ;// Convert from cmp to sys.
602output l2t0_rst_fatal_error_cmp ;// Convert from cmp to sys.
603output pwron_rst_h_scan_mode_en ;// = tcu_rst_scan_mode ? rst_scan_en:
604 // ~mio_rst_pwron_rst_l;
605output rst_tcu_dbr_gen ;// Convert reset_gen_dbr_gen_q
606 // from sys to cmp.
607input rst_rst_pwron_rst_l_sys2_ ;// BP 7-28-06 from rst_fsm_ctl sync to
608 // cmp_clk then on to tcu
609output rst_tcu_pwron_rst_l ;// BP 7-28-05 rst_tcu_pwron_rst_cmp_
610 // synched to cmp_clk
611output rst_rst_pwron_rst_l_io0_ ;
612input mio_rst_pb_rst_sys_ ;// From rst_fsm_ctl sync to cmp&back.
613output mio_rst_pb_rst_sys2_ ;//
614input rst_rst_por_sys2_ ;// From rst_fsm_ctl to cmp to _io_ctl.
615output rst_rst_por_io0_ ;// From rst_fsm_ctl to cmp to _io_ctl.
616input rst_rst_wmr_sys2_ ;// From rst_fsm_ctl to cmp to ucbflow.
617output rst_rst_wmr_io0_ ;// From rst_fsm_ctl to cmp to ucbflow.
618
619// ign tr_flush_init_ack_cmp = tcu_rst_flush_init_ack;// Now a flop.
620// ign tr_flush_stop_ack_cmp = tcu_rst_flush_stop_ack;// Now a flop.
621
622// ign rst_tcu_flush_init_req = rt_flush_init_req_sys; // Now a flop.
623// ign rst_tcu_flush_stop_req = rt_flush_stop_req_sys; // Now a flop.
624
625// ign rst_tcu_flush_init_req = rt_flush_init_req_sys2;// Now a flop.
626// ign rst_tcu_flush_stop_req = rt_flush_stop_req_sys2;// Now a flop.
627
628// ign rd_req_vld_sys = rd_req_vld_io ;// Now a flop.
629// ign wr_req_vld_sys = wr_req_vld_io ;// Now a flop.
630// ign req_acpted_cmp2 = req_acpted_sys ;// Now a flop.
631//________________________________________________________________
632
633assign scan_out
634 = tcu_rst_scan_mode ? spares_scanout : 1'b0;
635assign tcu_aclk = tcu_rst_scan_mode ? rst_aclk : 1'b0;
636assign tcu_bclk = tcu_rst_scan_mode ? rst_bclk : 1'b0;
637assign tcu_scan_en = tcu_rst_scan_mode ? rst_scan_en : 1'b0;
638assign tcu_clk_stop = tcu_rst_scan_mode ? rst_clk_stop : 1'b0;
639
640//sign rst_fsm_ctl_scanout
641// = (~mio_rst_pwron_rst_l) ? scan_out : 1'b0;
642//sign tcu_aclk = (~mio_rst_pwron_rst_l) ? rst_aclk : 1'b0;
643//sign tcu_bclk = (~mio_rst_pwron_rst_l) ? rst_bclk : 1'b0;
644//sign tcu_scan_en = (~mio_rst_pwron_rst_l) ? rst_scan_en : 1'b0;
645//sign tcu_clk_stop = (~mio_rst_pwron_rst_l) ? rst_clk_stop : 1'b0;
646//________________________________________________________________
647
648// N2 Bug ID: 107214
649// The current fix leaves us with an 'x' after scan_en goes low,
650// right before we launch the capture clock.
651// This is b/c the PWRON_RST_L pin is not constrained during atpg.
652// So the equation should actually be a mux, as follows:
653
654assign pwron_rst_h_scan_mode_en = tcu_rst_scan_mode ? rst_scan_en :
655 ~mio_rst_pwron_rst_l;
656 // Place logic here (not allowed in rst.sv)
657 // to pass this function to clkgen_rst_cmp's
658 // input ports .tcu_clk_stop and .scan_en.
659//________________________________________________________________
660
661assign siclk = tcu_aclk; // When say wire instead of assign, siclk = z.
662 // Described to Anurag Bhatnagar Feb 23 '05.
663assign soclk = tcu_bclk;
664//________________________________________________________________
665
666rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 rst_tcu_pwron_rst_l_ff
667 (.din (rst_rst_pwron_rst_l_sys2_ ),// synchronized version on sysclk
668// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Don't assert during WMR.
669 .scan_in (rst_tcu_pwron_rst_l_ff_scanin ),
670 .scan_out(rst_tcu_pwron_rst_l_ff_scanout),
671 .l1clk (l1clk ),
672 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
673 .dout (rst_tcu_pwron_rst_l_cmp_ ),
674 .siclk(siclk),
675 .soclk(soclk));
676
677assign rst_tcu_pwron_rst_l =
678 rst_tcu_pwron_rst_l_cmp_ & // BP 7-29-05
679 // rst_tcu_pwron_rst_l_cmp_ -> cmp clk
680 rst_rst_pwron_rst_l_sys2_; // rst_tcu_pwron_rst_l_cmp_ -> sys clk
681 // Async assert, cmp-sync deassert.
682
683rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 rst_rst_pwron_rst_l_io0_ff
684 (.din (rst_tcu_pwron_rst_l_cmp_ ),
685// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Don't assert during WMR.
686 .scan_in (rst_rst_pwron_rst_l_io0_ff_scanin ),
687 .scan_out(rst_rst_pwron_rst_l_io0_ff_scanout),
688 .l1clk (l1clk ),
689 .en (cmp_io_sync_en2 ),// Convert from cmp to io.
690 .dout (rst_rst_pwron_rst_l_io0_ ),
691 .siclk(siclk),
692 .soclk(soclk));
693//________________________________________________________________
694
695rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_tcu_flush_init_req_ff
696 (.din (rt_flush_init_req_sys2 ),//
697 .scan_in (rst_tcu_flush_init_req_ff_scanin ),
698 .scan_out(rst_tcu_flush_init_req_ff_scanout),
699 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
700 .l1clk (l1clk ),
701 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
702 .dout (rst_tcu_flush_init_req ),
703 .siclk(siclk),
704 .soclk(soclk));
705
706rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_tcu_flush_stop_req_ff
707 (.din (rt_flush_stop_req_sys2 ),
708 .scan_in (rst_tcu_flush_stop_req_ff_scanin ),
709 .scan_out(rst_tcu_flush_stop_req_ff_scanout),
710 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
711 .l1clk (l1clk ),
712 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
713 .dout (rst_tcu_flush_stop_req ),
714 .siclk(siclk),
715 .soclk(soclk));
716
717rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_tcu_asicflush_stop_req_ff
718 (.din (rt_asicflush_stop_req_sys2 ),
719 .scan_in (rst_tcu_asicflush_stop_req_ff_scanin ),
720 .scan_out(rst_tcu_asicflush_stop_req_ff_scanout),
721 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
722 .l1clk (l1clk ),
723 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
724 .dout (rst_tcu_asicflush_stop_req ),
725 .siclk(siclk),
726 .soclk(soclk));
727//________________________________________________________________
728
729rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_tcu_dbr_gen_ff
730 (.din (reset_gen_dbr_gen_q ),//
731 .scan_in (rst_tcu_dbr_gen_ff_scanin ),
732 .scan_out(rst_tcu_dbr_gen_ff_scanout),
733 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
734 .l1clk (l1clk ),
735 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
736 .dout (rst_tcu_dbr_gen ),
737 .siclk(siclk),
738 .soclk(soclk));
739//________________________________________________________________
740
741rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 tcu_rst_flush_init_ack_ff
742 (.din (tcu_rst_flush_init_ack ),
743 .scan_in (tcu_rst_flush_init_ack_ff_scanin ),
744 .scan_out(tcu_rst_flush_init_ack_ff_scanout),
745 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
746 .l1clk (l1clk ),
747 .en (ccu_cmp_sys_sync_en3 ),// Convert from cmp to sys.
748 .dout (tr_flush_init_ack_cmp ),
749 .siclk(siclk),
750 .soclk(soclk));
751
752rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 tcu_rst_flush_stop_ack_ff
753 (.din (tcu_rst_flush_stop_ack ),
754 .scan_in (tcu_rst_flush_stop_ack_ff_scanin ),
755 .scan_out(tcu_rst_flush_stop_ack_ff_scanout),
756 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
757 .l1clk (l1clk ),
758 .en (ccu_cmp_sys_sync_en3 ),// Convert from cmp to sys.
759 .dout (tr_flush_stop_ack_cmp ),
760 .siclk(siclk),
761 .soclk(soclk));
762
763rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 tcu_rst_asicflush_stop_ack_ff
764 (.din (tcu_rst_asicflush_stop_ack ),
765 .scan_in (tcu_rst_asicflush_stop_ack_ff_scanin ),
766 .scan_out(tcu_rst_asicflush_stop_ack_ff_scanout),
767 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
768 .l1clk (l1clk ),
769 .en (ccu_cmp_sys_sync_en3 ),//Convert from cmp to sys.
770 .dout (tr_asicflush_stop_ack_cmp ),
771 .siclk(siclk),
772 .soclk(soclk));
773//________________________________________________________________
774
775rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 req_acpted_cmp_ff
776 (.din (req_acpted_sys ),
777 .scan_in (req_acpted_cmp_ff_scanin ),
778 .scan_out(req_acpted_cmp_ff_scanout),
779 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
780 .l1clk (l1clk ),
781 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
782 .dout (req_acpted_cmp ),
783 .siclk(siclk),
784 .soclk(soclk));
785
786rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 req_acpted_cmp2_ff
787 (.din (req_acpted_cmp ),
788 .scan_in (req_acpted_cmp2_ff_scanin ),
789 .scan_out(req_acpted_cmp2_ff_scanout),
790 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
791 .l1clk (l1clk ),
792 .en (cmp_io_sync_en2 ),// Convert from cmp to io.
793 .dout (req_acpted_cmp2 ),
794 .siclk(siclk),
795 .soclk(soclk));
796//________________________________________________________________
797
798rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rd_ack_vld_cmp_ff
799 (.din (rd_ack_vld_sys ),
800 .scan_in (rd_ack_vld_cmp_ff_scanin ),
801 .scan_out(rd_ack_vld_cmp_ff_scanout),
802 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
803 .l1clk (l1clk ),
804 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
805 .dout (rd_ack_vld_cmp ),
806 .siclk(siclk),
807 .soclk(soclk));
808
809rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rd_ack_vld_cmp2_ff
810 (.din (rd_ack_vld_cmp ),
811 .scan_in (rd_ack_vld_cmp2_ff_scanin ),
812 .scan_out(rd_ack_vld_cmp2_ff_scanout),
813 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
814 .l1clk (l1clk ),
815 .en (cmp_io_sync_en2 ),// Convert from cmp to io.
816 .dout (rd_ack_vld_cmp2 ),
817 .siclk(siclk),
818 .soclk(soclk));
819//________________________________________________________________
820
821rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rd_nack_vld_cmp_ff
822 (.din (rd_nack_vld_sys ),
823 .scan_in (rd_nack_vld_cmp_ff_scanin ),
824 .scan_out(rd_nack_vld_cmp_ff_scanout),
825 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
826 .l1clk (l1clk ),
827 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
828 .dout (rd_nack_vld_cmp ),
829 .siclk(siclk),
830 .soclk(soclk));
831
832rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rd_nack_vld_cmp2_ff
833 (.din (rd_nack_vld_cmp ),
834 .scan_in (rd_nack_vld_cmp2_ff_scanin ),
835 .scan_out(rd_nack_vld_cmp2_ff_scanout),
836 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
837 .l1clk (l1clk ),
838 .en (cmp_io_sync_en2 ),// Convert from cmp to io.
839 .dout (rd_nack_vld_cmp2 ),
840 .siclk(siclk),
841 .soclk(soclk));
842//________________________________________________________________
843
844rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_16 data_out_cmp_ff
845
846 (.din (data_out_sys2[`RST_UCB_DATA_WIDTH-1:0]),
847 .scan_in (data_out_cmp_ff_scanin ),
848 .scan_out(data_out_cmp_ff_scanout),
849 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
850 .l1clk (l1clk ),
851 .en (ccu_sys_cmp_sync_en3 ),// Convert fr sys to cmp.
852 .dout (data_out_cmp [`RST_UCB_DATA_WIDTH-1:0]),
853 .siclk(siclk),
854 .soclk(soclk));
855
856rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_16 data_out_cmp2_ff
857
858 (.din (data_out_cmp [`RST_UCB_DATA_WIDTH-1:0]),
859 .scan_in (data_out_cmp2_ff_scanin ),
860 .scan_out(data_out_cmp2_ff_scanout),
861 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
862 .l1clk (l1clk ),
863 .en (cmp_io_sync_en2 ),// Convert fr cmp to io.
864 .dout (data_out_cmp2[`RST_UCB_DATA_WIDTH-1:0]),
865 .siclk(siclk),
866 .soclk(soclk));
867//________________________________________________________________
868
869rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_40 addr_in_cmp_ff
870 (.din (addr_in_io[39:0] ),
871 .scan_in (addr_in_cmp_ff_scanin ),
872 .scan_out(addr_in_cmp_ff_scanout),
873 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
874 .l1clk (l1clk ),
875 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
876 .dout (addr_in_cmp[39:0] ),
877 .siclk(siclk),
878 .soclk(soclk));
879
880rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_40 addr_in_sys_ff
881 (.din (addr_in_cmp[39:0] ),
882 .scan_in (addr_in_sys_ff_scanin ),
883 .scan_out(addr_in_sys_ff_scanout),
884 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
885 .l1clk (l1clk ),
886 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
887 .dout (addr_in_sys[39:0] ),
888 .siclk(siclk),
889 .soclk(soclk));
890
891rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_16 data_in_cmp_ff
892
893 (.din (data_in_io [`RST_UCB_DATA_WIDTH-1:0]),
894 .scan_in (data_in_cmp_ff_scanin ),
895 .scan_out(data_in_cmp_ff_scanout),
896 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
897 .l1clk (l1clk ),
898 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
899 .dout (data_in_cmp[`RST_UCB_DATA_WIDTH-1:0]),
900 .siclk(siclk),
901 .soclk(soclk));
902
903rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_16 data_in_sys_ff
904
905 (.din (data_in_cmp[`RST_UCB_DATA_WIDTH-1:0]),
906 .scan_in (data_in_sys_ff_scanin ),
907 .scan_out(data_in_sys_ff_scanout),
908 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
909 .l1clk (l1clk ),
910 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
911 .dout (data_in_sys[`RST_UCB_DATA_WIDTH-1:0]),
912 .siclk(siclk),
913 .soclk(soclk));
914
915rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_6 thr_id_in_cmp_ff
916 (.din (thr_id_in_io[5:0] ),
917 .scan_in (thr_id_in_cmp_ff_scanin ),
918 .scan_out(thr_id_in_cmp_ff_scanout),
919 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
920 .l1clk (l1clk ),
921 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
922 .dout (thr_id_in_cmp[5:0] ),
923 .siclk(siclk),
924 .soclk(soclk));
925
926rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_6 thr_id_in_sys_ff
927 (.din (thr_id_in_cmp[5:0] ),
928 .scan_in (thr_id_in_sys_ff_scanin ),
929 .scan_out(thr_id_in_sys_ff_scanout),
930 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
931 .l1clk (l1clk ),
932 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
933 .dout (thr_id_in_sys[5:0] ),
934 .siclk(siclk),
935 .soclk(soclk));
936
937rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_2 buf_id_in_cmp_ff
938 (.din (buf_id_in_io[1:0] ),
939 .scan_in (buf_id_in_cmp_ff_scanin ),
940 .scan_out(buf_id_in_cmp_ff_scanout),
941 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
942 .l1clk (l1clk ),
943 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
944 .dout (buf_id_in_cmp[1:0] ),
945 .siclk(siclk),
946 .soclk(soclk));
947
948rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_2 buf_id_in_sys_ff
949 (.din (buf_id_in_cmp[1:0] ),
950 .scan_in (buf_id_in_sys_ff_scanin ),
951 .scan_out(buf_id_in_sys_ff_scanout),
952 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
953 .l1clk (l1clk ),
954 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
955 .dout (buf_id_in_sys[1:0] ),
956 .siclk(siclk),
957 .soclk(soclk));
958
959rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 ack_busy_cmp_ff
960 (.din (ack_busy_io ),
961 .scan_in (ack_busy_cmp_ff_scanin ),
962 .scan_out(ack_busy_cmp_ff_scanout),
963 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
964 .l1clk (l1clk ),
965 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
966 .dout (ack_busy_cmp ),
967 .siclk(siclk),
968 .soclk(soclk));
969
970rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 ack_busy_sys_ff
971 (.din (ack_busy_cmp ),
972 .scan_in (ack_busy_sys_ff_scanin ),
973 .scan_out(ack_busy_sys_ff_scanout),
974 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
975 .l1clk (l1clk ),
976 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
977 .dout (ack_busy_sys ),
978 .siclk(siclk),
979 .soclk(soclk));
980//________________________________________________________________
981
982rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_6 thr_id_out_cmp_ff
983 (.din (thr_id_out_sys[ 5:0] ),
984 .scan_in (thr_id_out_cmp_ff_scanin ),
985 .scan_out(thr_id_out_cmp_ff_scanout),
986 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
987 .l1clk (l1clk ),
988 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
989 .dout (thr_id_out_cmp[ 5:0] ),
990 .siclk(siclk),
991 .soclk(soclk));
992
993rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_6 thr_id_out_cmp2_ff
994 (.din (thr_id_out_cmp[ 5:0] ),
995 .scan_in (thr_id_out_cmp2_ff_scanin ),
996 .scan_out(thr_id_out_cmp2_ff_scanout),
997 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
998 .l1clk (l1clk ),
999 .en (cmp_io_sync_en2 ),// Convert from cmp to io.
1000 .dout (thr_id_out_cmp2[ 5:0] ),
1001 .siclk(siclk),
1002 .soclk(soclk));
1003//________________________________________________________________
1004
1005rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_2 buf_id_out_cmp_ff
1006 (.din (buf_id_out_sys[ 1:0] ),
1007 .scan_in (buf_id_out_cmp_ff_scanin ),
1008 .scan_out(buf_id_out_cmp_ff_scanout),
1009 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1010 .l1clk (l1clk ),
1011 .en (ccu_sys_cmp_sync_en3 ),// Convert from sys to cmp.
1012 .dout (buf_id_out_cmp[ 1:0] ),
1013 .siclk(siclk),
1014 .soclk(soclk));
1015
1016rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_2 buf_id_out_cmp2_ff
1017 (.din (buf_id_out_cmp[ 1:0] ),
1018 .scan_in (buf_id_out_cmp2_ff_scanin ),
1019 .scan_out(buf_id_out_cmp2_ff_scanout),
1020 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1021 .l1clk (l1clk ),
1022 .en (cmp_io_sync_en2 ),// Convert from cmp to io.
1023 .dout (buf_id_out_cmp2[ 1:0] ),
1024 .siclk(siclk),
1025 .soclk(soclk));
1026//________________________________________________________________
1027
1028rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rd_req_vld_cmp_ff
1029 (.din (rd_req_vld_io ),
1030 .scan_in (rd_req_vld_cmp_ff_scanin ),
1031 .scan_out(rd_req_vld_cmp_ff_scanout),
1032 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1033 .l1clk (l1clk ),
1034 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
1035 .dout (rd_req_vld_cmp ),
1036 .siclk(siclk),
1037 .soclk(soclk));
1038
1039rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rd_req_vld_cmp2_ff
1040 (.din (rd_req_vld_cmp ),
1041 .scan_in (rd_req_vld_cmp2_ff_scanin ),
1042 .scan_out(rd_req_vld_cmp2_ff_scanout),
1043 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1044 .l1clk (l1clk ),
1045 .en (ccu_cmp_sys_sync_en3 ),// Convert from cmp to sys.
1046 .dout (rd_req_vld_sys ),
1047 .siclk(siclk),
1048 .soclk(soclk));
1049//________________________________________________________________
1050
1051rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 wr_req_vld_cmp_ff
1052 (.din (wr_req_vld_io ),
1053 .scan_in (wr_req_vld_cmp_ff_scanin ),
1054 .scan_out(wr_req_vld_cmp_ff_scanout),
1055 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1056 .l1clk (l1clk ),
1057 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
1058 .dout (wr_req_vld_cmp ),
1059 .siclk(siclk),
1060 .soclk(soclk));
1061
1062rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 wr_req_vld_cmp2_ff
1063 (.din (wr_req_vld_cmp ),
1064 .scan_in (wr_req_vld_cmp2_ff_scanin ),
1065 .scan_out(wr_req_vld_cmp2_ff_scanout),
1066 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1067 .l1clk (l1clk ),
1068 .en (ccu_cmp_sys_sync_en3 ),// Convert from cmp to sys.
1069 .dout (wr_req_vld_sys ),
1070 .siclk(siclk),
1071 .soclk(soclk));
1072//________________________________________________________________
1073
1074rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_mcu_selfrsh_cmp_ff
1075 (.din (rst_mcu_selfrsh_sys2 ),
1076 .scan_in (rst_mcu_selfrsh_cmp_ff_scanin ),
1077 .scan_out(rst_mcu_selfrsh_cmp_ff_scanout),
1078 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1079 .l1clk (l1clk ),
1080 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys to cmp to io.
1081 .dout (rst_mcu_selfrsh_cmp ),
1082 .siclk(siclk),
1083 .soclk(soclk));// Cross fr sys to cmp to io.
1084
1085rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_mcu_selfrsh_cmp2_ff
1086 (.din (rst_mcu_selfrsh_cmp ),
1087 .scan_in (rst_mcu_selfrsh_cmp2_ff_scanin ),
1088 .scan_out(rst_mcu_selfrsh_cmp2_ff_scanout),
1089 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1090 .l1clk (l1clk ),
1091 .en (cmp_io_sync_en2 ),// Convert fr cmp to io.
1092 .dout (rst_mcu_selfrsh_cmp2 ),
1093 .siclk(siclk),
1094 .soclk(soclk));
1095//________________________________________________________________
1096
1097rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_l2_por_ff
1098 (.din (rst_l2_por_sys2_ ),
1099 .scan_in (rst_l2_por_ff_scanin ),
1100 .scan_out(rst_l2_por_ff_scanout),
1101 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1102 .l1clk (l1clk ),
1103 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk to cmp_clk.
1104 .dout (rst_l2_por_ ),
1105 .siclk(siclk),
1106 .soclk(soclk));// Cross fr sys_clk to cmp_clk.
1107
1108rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_l2_wmr_ff
1109 (.din (rst_l2_wmr_sys2_ ),
1110 .scan_in (rst_l2_wmr_ff_scanin ),
1111 .scan_out(rst_l2_wmr_ff_scanout),
1112 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1113 .l1clk (l1clk ),
1114 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk to cmp_clk.
1115 .dout (rst_l2_wmr_ ),
1116 .siclk(siclk),
1117 .soclk(soclk));// Cross fr sys_clk to cmp_clk.
1118
1119// rst_wmr_protect generation moved to rst_fsm_ctl, since untimed.
1120//
1121// msff_ctl_macro rst_wmr_protect_cmp_ff (width=1,en=1,clr_=0)
1122// (.din (rst_wmr_protect_sys2 ),
1123// .scan_in (rst_wmr_protect_cmp_ff_scanin ),
1124// .scan_out(rst_wmr_protect_cmp_ff_scanout),
1125// // .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Don't clear during WMR.
1126// .l1clk (l1clk ),
1127// .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk-cmp_clk.
1128// .dout (rst_wmr_protect_cmp ));// Cross fr sys_clk-cmp_clk.
1129//
1130// assign rst_wmr_protect = tcu_rst_scan_mode ?
1131// 1'b0 : // Suppress when chip is being scanned.
1132// ~mio_rst_pwron_rst_l_sys_ ? // This is a TCU bug.
1133// 1'b0 : // Make not x when chip is in POR.
1134// rst_wmr_protect_cmp;
1135//________________________________________________________________
1136
1137rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 rst_tcu_clk_stop_cmp_ff
1138 (.din (rst_tcu_clk_stop_sys2 ),
1139// .clr_ (rst_cmp_ctl_wmr_cmp_ ), // Needs to keep going.
1140 .scan_in (rst_tcu_clk_stop_cmp_ff_scanin ),
1141 .scan_out(rst_tcu_clk_stop_cmp_ff_scanout),
1142 .l1clk (l1clk_free_running ), // Needs to keep going.
1143 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk to cmp_clk.
1144 .dout (rst_tcu_clk_stop ),
1145 .siclk(siclk),
1146 .soclk(soclk));
1147
1148rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_tcu_clk_stop_io_ff
1149 (.din (rst_tcu_clk_stop ),
1150 .scan_in (rst_tcu_clk_stop_io_ff_scanin ),
1151 .scan_out(rst_tcu_clk_stop_io_ff_scanout),
1152 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1153 .l1clk (l1clk_free_running ), // Needs to keep going.
1154 .en (cmp_io_sync_en2 ), // Cross fr cmp_clk to io_clk.
1155 .dout (rst_tcu_clk_stop_io ),
1156 .siclk(siclk),
1157 .soclk(soclk));
1158//________________________________________________________________
1159
1160//BP 9-27-05 note: to make sure rst_dmu_peu_por_ is repeatable. S has
1161// implemented a counter after rst_ccu_ is deasserted and counts
1162// sys clocks and then releases rst_dmu_peu_por_sys2_ thus
1163// the por to dmu and peu will always happen the same number
1164// of sys clocks after PWRON_RST_L is deasserted
1165
1166rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 rst_dmu_peu_por_ff
1167 (.din (rst_dmu_peu_por_sys2_ ),
1168// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Don't clear during WMR.
1169 .scan_in (rst_dmu_peu_por_ff_scanin ),
1170 .scan_out(rst_dmu_peu_por_ff_scanout),
1171 .l1clk (l1clk ),
1172 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk to cmp_clk.
1173 .dout (rst_dmu_peu_por_ ),
1174 .siclk(siclk),
1175 .soclk(soclk));// Cross fr sys_clk to cmp_clk.
1176
1177rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_dmu_peu_wmr_ff
1178 (.din (rst_dmu_peu_wmr_sys2_ ),
1179 .scan_in (rst_dmu_peu_wmr_ff_scanin ),
1180 .scan_out(rst_dmu_peu_wmr_ff_scanout),
1181 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1182 .l1clk (l1clk ),
1183 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk to cmp_clk.
1184 .dout (rst_dmu_peu_wmr_ ),
1185 .siclk(siclk),
1186 .soclk(soclk));// Cross fr sys_clk to cmp_clk.
1187
1188rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_niu_mac_ff
1189 (.din (rst_niu_mac_sys2_ ),
1190 .scan_in (rst_niu_mac_ff_scanin ),
1191 .scan_out(rst_niu_mac_ff_scanout),
1192 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1193 .l1clk (l1clk ),
1194 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk to cmp_clk.
1195 .dout (rst_niu_mac_ ),
1196 .siclk(siclk),
1197 .soclk(soclk));// Cross fr sys_clk to cmp_clk.
1198
1199rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_niu_wmr_ff
1200 (.din (rst_niu_wmr_sys2_ ),
1201 .scan_in (rst_niu_wmr_ff_scanin ),
1202 .scan_out(rst_niu_wmr_ff_scanout),
1203 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1204 .l1clk (l1clk ),
1205 .en (ccu_sys_cmp_sync_en3 ), // Cross fr sys_clk to cmp_clk.
1206 .dout (rst_niu_wmr_ ),
1207 .siclk(siclk),
1208 .soclk(soclk));// Cross fr sys_clk to cmp_clk.
1209//________________________________________________________________
1210
1211rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_ncu_unpark_thread_cmp_ff
1212 (.din (rst_ncu_unpark_thread_sys2 ),
1213 .scan_in (rst_ncu_unpark_thread_cmp_ff_scanin ),
1214 .scan_out(rst_ncu_unpark_thread_cmp_ff_scanout),
1215 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1216 .l1clk (l1clk ),
1217 .en (ccu_sys_cmp_sync_en3 ),// Convert fr sys to cmp.
1218 .dout (rst_ncu_unpark_thread_cmp ),
1219 .siclk(siclk),
1220 .soclk(soclk));
1221
1222rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_ncu_unpark_thread_cmp2_ff
1223 (.din (rst_ncu_unpark_thread_cmp ),
1224 .scan_in (rst_ncu_unpark_thread_cmp2_ff_scanin ),
1225 .scan_out(rst_ncu_unpark_thread_cmp2_ff_scanout),
1226 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1227 .l1clk (l1clk ),
1228 .en (cmp_io_sync_en2 ),// Convert fr cmp to io.
1229 .dout (rst_ncu_unpark_thread_cmp2 ),
1230 .siclk(siclk),
1231 .soclk(soclk));
1232//________________________________________________________________
1233
1234wire rst_ncu_xir_din = ~rst_ncu_xir_sys2_;
1235assign rst_ncu_xir_cmp2_ = ~rst_ncu_xir_dout;
1236 // Store as active low, so
1237 // resets to deasserted value.
1238rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_ncu_xir_cmp_ff
1239 (.din (rst_ncu_xir_din ),
1240 .scan_in (rst_ncu_xir_cmp_ff_scanin ),
1241 .scan_out(rst_ncu_xir_cmp_ff_scanout),
1242 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1243 .l1clk (l1clk ),
1244 .en (ccu_sys_cmp_sync_en3 ),// Convert fr sys to cmp.
1245 .dout (rst_ncu_xir_cmp_ ),
1246 .siclk(siclk),
1247 .soclk(soclk));
1248
1249rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_ncu_xir_cmp2_ff
1250 (.din (rst_ncu_xir_cmp_ ),
1251 .scan_in (rst_ncu_xir_cmp2_ff_scanin ),
1252 .scan_out(rst_ncu_xir_cmp2_ff_scanout),
1253 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1254 .l1clk (l1clk ),
1255 .en (cmp_io_sync_en2 ),// Convert fr cmp to io.
1256 .dout (rst_ncu_xir_dout ),
1257 .siclk(siclk),
1258 .soclk(soclk));
1259//________________________________________________________________
1260
1261rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 ncu_rst_xir_done_cmp_ff
1262 (.din (ncu_rst_xir_done_io ),
1263 .scan_in (ncu_rst_xir_done_cmp_ff_scanin ),
1264 .scan_out(ncu_rst_xir_done_cmp_ff_scanout),
1265 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1266 .l1clk (l1clk ),
1267 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
1268 .dout (ncu_rst_xir_done_cmp ),
1269 .siclk(siclk),
1270 .soclk(soclk));
1271
1272rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 ncu_rst_xir_done_sys_ff
1273 (.din (ncu_rst_xir_done_cmp ),
1274 .scan_in (ncu_rst_xir_done_sys_ff_scanin ),
1275 .scan_out(ncu_rst_xir_done_sys_ff_scanout),
1276 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1277 .l1clk (l1clk ),
1278 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
1279 .dout (ncu_rst_xir_done_sys ),
1280 .siclk(siclk),
1281 .soclk(soclk));
1282//________________________________________________________________
1283
1284rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 tcu_rst_efu_done_sys_ff
1285 (.din (tcu_rst_efu_done ),
1286 .scan_in (tcu_rst_efu_done_sys_ff_scanin ),
1287 .scan_out(tcu_rst_efu_done_sys_ff_scanout),
1288 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1289 .l1clk (l1clk ),
1290 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
1291 .dout (tcu_rst_efu_done_cmp ),
1292 .siclk(siclk),
1293 .soclk(soclk));
1294
1295rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 tcu_bisx_done_sys_ff
1296 (.din (tcu_bisx_done ),
1297 .scan_in (tcu_bisx_done_sys_ff_scanin ),
1298 .scan_out(tcu_bisx_done_sys_ff_scanout),
1299 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1300 .l1clk (l1clk ),
1301 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
1302 .dout (tcu_bisx_done_cmp ),
1303 .siclk(siclk),
1304 .soclk(soclk));
1305//________________________________________________________________
1306
1307rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 tcu_test_protect_cmp0_ff
1308 (.din (tcu_test_protect_io ),
1309 .scan_in (tcu_test_protect_cmp0_ff_scanin ),
1310 .scan_out(tcu_test_protect_cmp0_ff_scanout),
1311 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1312 .l1clk (l1clk ),
1313 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
1314 .dout (tcu_test_protect_cmp0 ),
1315 .siclk(siclk),
1316 .soclk(soclk));
1317
1318rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 tcu_test_protect_cmp_ff
1319 (.din (tcu_test_protect_cmp0 ),
1320 .scan_in (tcu_test_protect_cmp_ff_scanin ),
1321 .scan_out(tcu_test_protect_cmp_ff_scanout),
1322 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1323 .l1clk (l1clk ),
1324 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
1325 .dout (tcu_test_protect_cmp ),
1326 .siclk(siclk),
1327 .soclk(soclk));
1328//________________________________________________________________
1329
1330rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 ccu_rst_change_cmp0_ff
1331 (.din (ccu_rst_change_io ),
1332// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Don't assert during WMR.
1333 .scan_in (ccu_rst_change_cmp0_ff_scanin ),
1334 .scan_out(ccu_rst_change_cmp0_ff_scanout),
1335 .l1clk (l1clk ),
1336 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
1337 .dout (ccu_rst_change_cmp0 ),
1338 .siclk(siclk),
1339 .soclk(soclk));
1340
1341rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 ccu_rst_change_cmp_ff
1342 (.din (ccu_rst_change_cmp0 ),
1343// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Don't assert during WMR.
1344 .scan_in (ccu_rst_change_cmp_ff_scanin ),
1345 .scan_out(ccu_rst_change_cmp_ff_scanout),
1346 .l1clk (l1clk ),
1347 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
1348 .dout (ccu_rst_change_cmp ),
1349 .siclk(siclk),
1350 .soclk(soclk));
1351//________________________________________________________________
1352
1353rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 ncu_rst_fatal_error_cmp0_ff
1354 (.din (ncu_rst_fatal_error_io ),
1355 .scan_in (ncu_rst_fatal_error_cmp0_ff_scanin ),
1356 .scan_out(ncu_rst_fatal_error_cmp0_ff_scanout),
1357 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1358 .l1clk (l1clk ),
1359 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
1360 .dout (ncu_rst_fatal_error_cmp0 ),
1361 .siclk(siclk),
1362 .soclk(soclk));
1363
1364assign ncu_rst_fatal_error_hold_din =
1365 ncu_rst_fatal_error_hold_dout ?
1366 (~ncu_rst_fatal_error_cmp | // Hold if pulse
1367 // has not yet crossed to sys
1368 ncu_rst_fatal_error_cmp0 ) : // or input is still high
1369 // (has not yet fallen).
1370 ncu_rst_fatal_error_cmp0 & // Assert when input asserts
1371 ~ncu_rst_fatal_error_cmp ; // and output has fallen.
1372
1373rst_cmp_ctl_msff_ctl_macro__clr__1__width_1 ncu_rst_fatal_error_hold_ff
1374 (.din (ncu_rst_fatal_error_hold_din ),
1375 .scan_in (ncu_rst_fatal_error_hold_ff_scanin ),
1376 .scan_out(ncu_rst_fatal_error_hold_ff_scanout),
1377 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1378 .l1clk (l1clk ),
1379 .dout (ncu_rst_fatal_error_hold_dout ),
1380 .siclk(siclk),
1381 .soclk(soclk));
1382
1383rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 ncu_rst_fatal_error_cmp_ff
1384 (.din (ncu_rst_fatal_error_hold_dout ),
1385 .scan_in (ncu_rst_fatal_error_cmp_ff_scanin ),
1386 .scan_out(ncu_rst_fatal_error_cmp_ff_scanout),
1387 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1388 .l1clk (l1clk ),
1389 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
1390 .dout (ncu_rst_fatal_error_cmp ),
1391 .siclk(siclk),
1392 .soclk(soclk));
1393//________________________________________________________________
1394
1395rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_8 l2ta_rst_fatal_error_cmp0_ff
1396 (.din (l2ta_rst_fatal_error_io[7:0] ),
1397 .scan_in (l2ta_rst_fatal_error_cmp0_ff_scanin ),
1398 .scan_out(l2ta_rst_fatal_error_cmp0_ff_scanout),
1399 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1400 .l1clk (l1clk ),
1401 .en (io_cmp_sync_en2 ),// Convert from io to cmp.
1402 .dout (l2ta_rst_fatal_error_cmp0[7:0] ),
1403 .siclk(siclk),
1404 .soclk(soclk));
1405
1406assign l2ta_rst_fatal_error_hold_din [7] =
1407 l2ta_rst_fatal_error_hold_dout[7] ?
1408 ~( l2ta_rst_fatal_error_cmp [7] & // Drop when pulse has
1409 // crossed to sys and
1410 ~l2ta_rst_fatal_error_cmp0 [7] ) :// input has fallen.
1411 l2ta_rst_fatal_error_cmp0 [7] & // Assert when input rises
1412 ~l2ta_rst_fatal_error_cmp [7] ;// and output has fallen.
1413
1414assign l2ta_rst_fatal_error_hold_din [6] =
1415 l2ta_rst_fatal_error_hold_dout[6] ?
1416 ~( l2ta_rst_fatal_error_cmp [6] & // Drop when pulse has
1417 // crossed to sys and
1418 ~l2ta_rst_fatal_error_cmp0 [6] ) :// input has fallen.
1419 l2ta_rst_fatal_error_cmp0 [6] & // Assert when input rises
1420 ~l2ta_rst_fatal_error_cmp [6] ;// and output has fallen.
1421
1422assign l2ta_rst_fatal_error_hold_din [5] =
1423 l2ta_rst_fatal_error_hold_dout[5] ?
1424 ~( l2ta_rst_fatal_error_cmp [5] & // Drop when pulse has
1425 // crossed to sys and
1426 ~l2ta_rst_fatal_error_cmp0 [5] ) :// input has fallen.
1427 l2ta_rst_fatal_error_cmp0 [5] & // Assert when input rises
1428 ~l2ta_rst_fatal_error_cmp [5] ;// and output has fallen.
1429
1430assign l2ta_rst_fatal_error_hold_din [4] =
1431 l2ta_rst_fatal_error_hold_dout[4] ?
1432 ~( l2ta_rst_fatal_error_cmp [4] & // Drop when pulse has
1433 // crossed to sys and
1434 ~l2ta_rst_fatal_error_cmp0 [4] ) :// input has fallen.
1435 l2ta_rst_fatal_error_cmp0 [4] & // Assert when input rises
1436 ~l2ta_rst_fatal_error_cmp [4] ;// and output has fallen.
1437
1438assign l2ta_rst_fatal_error_hold_din [3] =
1439 l2ta_rst_fatal_error_hold_dout[3] ?
1440 ~( l2ta_rst_fatal_error_cmp [3] & // Drop when pulse has
1441 // crossed to sys and
1442 ~l2ta_rst_fatal_error_cmp0 [3] ) :// input has fallen.
1443 l2ta_rst_fatal_error_cmp0 [3] & // Assert when input rises
1444 ~l2ta_rst_fatal_error_cmp [3] ;// and output has fallen.
1445
1446assign l2ta_rst_fatal_error_hold_din [2] =
1447 l2ta_rst_fatal_error_hold_dout[2] ?
1448 ~( l2ta_rst_fatal_error_cmp [2] & // Drop when pulse has
1449 // crossed to sys and
1450 ~l2ta_rst_fatal_error_cmp0 [2] ) :// input has fallen.
1451 l2ta_rst_fatal_error_cmp0 [2] & // Assert when input rises
1452 ~l2ta_rst_fatal_error_cmp [2] ;// and output has fallen.
1453
1454assign l2ta_rst_fatal_error_hold_din [1] =
1455 l2ta_rst_fatal_error_hold_dout[1] ?
1456 ~( l2ta_rst_fatal_error_cmp [1] & // Drop when pulse has
1457 // crossed to sys and
1458 ~l2ta_rst_fatal_error_cmp0 [1] ) :// input has fallen.
1459 l2ta_rst_fatal_error_cmp0 [1] & // Assert when input rises
1460 ~l2ta_rst_fatal_error_cmp [1] ;// and output has fallen.
1461
1462assign l2ta_rst_fatal_error_hold_din [0] =
1463 l2ta_rst_fatal_error_hold_dout[0] ?
1464 ~( l2ta_rst_fatal_error_cmp [0] & // Drop when pulse has
1465 // crossed to sys and
1466 ~l2ta_rst_fatal_error_cmp0 [0] ) :// input has fallen.
1467 l2ta_rst_fatal_error_cmp0 [0] & // Assert when input rises
1468 ~l2ta_rst_fatal_error_cmp [0] ;// and output has fallen.
1469
1470rst_cmp_ctl_msff_ctl_macro__clr__1__width_8 l2ta_rst_fatal_error_hold_ff
1471 (.din (l2ta_rst_fatal_error_hold_din[7:0] ),
1472 .scan_in (l2ta_rst_fatal_error_hold_ff_scanin ),
1473 .scan_out(l2ta_rst_fatal_error_hold_ff_scanout),
1474 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1475 .l1clk (l1clk ),
1476 .dout (l2ta_rst_fatal_error_hold_dout[7:0] ),
1477 .siclk(siclk),
1478 .soclk(soclk));
1479
1480rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_8 l2ta_rst_fatal_error_cmp_ff
1481 (.din (l2ta_rst_fatal_error_hold_dout[7:0]),
1482 .scan_in (l2ta_rst_fatal_error_cmp_ff_scanin ),
1483 .scan_out(l2ta_rst_fatal_error_cmp_ff_scanout),
1484 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1485 .l1clk (l1clk ),
1486 .en (ccu_cmp_sys_sync_en3 ),// Cross fr cmp to sys.
1487 .dout (l2ta_rst_fatal_error_cmp[7:0] ),
1488 .siclk(siclk),
1489 .soclk(soclk));
1490
1491assign {l2t7_rst_fatal_error_cmp ,
1492 l2t6_rst_fatal_error_cmp ,
1493 l2t5_rst_fatal_error_cmp ,
1494 l2t4_rst_fatal_error_cmp ,
1495 l2t3_rst_fatal_error_cmp ,
1496 l2t2_rst_fatal_error_cmp ,
1497 l2t1_rst_fatal_error_cmp ,
1498 l2t0_rst_fatal_error_cmp } =
1499 l2ta_rst_fatal_error_cmp[7:0] ; // l2t all in one array.
1500//________________________________________________________________
1501
1502rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 mio_rst_pb_rst_cmp_ff
1503 (.din (mio_rst_pb_rst_sys_ ),
1504 .scan_in (mio_rst_pb_rst_cmp_ff_scanin ),
1505 .scan_out(mio_rst_pb_rst_cmp_ff_scanout),
1506 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1507 .l1clk (l1clk ),
1508 .en (ccu_sys_cmp_sync_en3 ),// Convert fr sys to cmp.
1509 .dout (mio_rst_pb_rst_cmp_ ),
1510 .siclk(siclk),
1511 .soclk(soclk));
1512
1513rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 mio_rst_pb_rst_sys2_ff
1514 (.din (mio_rst_pb_rst_cmp_ ),
1515 .scan_in (mio_rst_pb_rst_sys2_ff_scanin ),
1516 .scan_out(mio_rst_pb_rst_sys2_ff_scanout),
1517 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1518 .l1clk (l1clk ),
1519 .en (ccu_cmp_sys_sync_en3 ),// Convert fr cmp to sys.
1520 .dout (mio_rst_pb_rst_sys2_ ),
1521 .siclk(siclk),
1522 .soclk(soclk));
1523//________________________________________________________________
1524
1525// //
1526// // Incoming from MIO, asynchronous
1527//
1528// cl_sc1_clksyncff_4x
1529// mio_rst_pwron_rst_cmp_ff
1530// (.si (mio_rst_pwron_rst_cmp_ff_scanin ), // Remember to re-link
1531// // into chain of assigns
1532// .so (mio_rst_pwron_rst_cmp_ff_scanout), // when rerunning fixscan.
1533// .l1clk (l1clk ),
1534// .d (ccu_rst_sync_stable ),
1535// .q (mio_rst_pwron_rst_cmp_ ));// Cross fr async to cmp.
1536// // Review Oct 24 '05:
1537// // .d (mio_rst_pwron_rst_l ), // This input will deassert
1538// // before the clock starts.
1539
1540rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 rst_cmp_ctl_wmr_cmp_ff
1541 (.din (rst_cmp_ctl_wmr_sys2_ ),
1542// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Avoid loop.
1543 .scan_in (rst_cmp_ctl_wmr_cmp_ff_scanin ),
1544 .scan_out(rst_cmp_ctl_wmr_cmp_ff_scanout),
1545 .l1clk (l1clk ),
1546 .en (ccu_sys_cmp_sync_en3 ),// Convert fr sys to cmp.
1547 .dout (rst_cmp_ctl_wmr_cmp_ ),
1548 .siclk(siclk),
1549 .soclk(soclk));
1550
1551//sign rst_cmp_ctl_wmr_cmp_ =
1552// rst_cmp_ctl_wmr_cmp_dout_ & // Sync deassert, and
1553// rst_cmp_ctl_wmr_sys2_ ; // async assert.
1554 // No need for
1555 // async assert since
1556 // only used for sync reset.
1557//________________________________________________________________
1558
1559rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_rst_por_cmp_ff
1560 (.din (rst_rst_por_sys2_ ),
1561 .scan_in (rst_rst_por_cmp_ff_scanin ),
1562 .scan_out(rst_rst_por_cmp_ff_scanout),
1563 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1564 .l1clk (l1clk ),
1565 .en (ccu_sys_cmp_sync_en3 ),// Convert fr sys to cmp.
1566 .dout (rst_rst_por_cmp_ ),
1567 .siclk(siclk),
1568 .soclk(soclk));
1569
1570rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_rst_por_io_ff
1571 (.din (rst_rst_por_cmp_ ),
1572 .scan_in (rst_rst_por_io_ff_scanin ),
1573 .scan_out(rst_rst_por_io_ff_scanout),
1574 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1575 .l1clk (l1clk ),
1576 .en (cmp_io_sync_en2 ),// Convert fr cmp to io.
1577 .dout (rst_rst_por_io0_ ),
1578 .siclk(siclk),
1579 .soclk(soclk));// One last flop to go, in _io_ctl.
1580
1581rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_rst_wmr_cmp_ff
1582 (.din (rst_rst_wmr_sys2_ ),
1583 .scan_in (rst_rst_wmr_cmp_ff_scanin ),
1584 .scan_out(rst_rst_wmr_cmp_ff_scanout),
1585 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1586 .l1clk (l1clk ),
1587 .en (ccu_sys_cmp_sync_en3 ),// Convert fr sys to cmp.
1588 .dout (rst_rst_wmr_cmp_ ),
1589 .siclk(siclk),
1590 .soclk(soclk));
1591
1592rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 rst_rst_wmr_io_ff
1593 (.din (rst_rst_wmr_cmp_ ),
1594 .scan_in (rst_rst_wmr_io_ff_scanin ),
1595 .scan_out(rst_rst_wmr_io_ff_scanout),
1596 .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1597 .l1clk (l1clk ),
1598 .en (cmp_io_sync_en2 ),// Convert fr cmp to io.
1599 .dout (rst_rst_wmr_io0_ ),
1600 .siclk(siclk),
1601 .soclk(soclk));// One last flop to go, in _io_ctl.
1602//________________________________________________________________
1603
1604 // "Note 2. In every cluster that uses domain crossing,
1605 // *_sync_en signals are to be flopped once, after the "cmp"
1606 // cluster header output." "Cluster Heder Usage, Niagara 2",
1607 // Version 1.41, Apr 29, 2005, Appendix B, "Cluster Header
1608 // Waveforms", page 16.
1609
1610rst_cmp_ctl_msff_ctl_macro__clr__0__en_0__width_1 cmp_io_sync_en2_ff
1611 (.din (cmp_io_sync_en ),
1612 .scan_in (cmp_io_sync_en2_ff_scanin ),
1613 .scan_out(cmp_io_sync_en2_ff_scanout),
1614// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Shift-in reset.
1615 .l1clk (l1clk ),
1616 .dout (cmp_io_sync_en2 ),
1617 .siclk(siclk),
1618 .soclk(soclk));
1619
1620rst_cmp_ctl_msff_ctl_macro__clr__0__en_0__width_1 io_cmp_sync_en2_ff
1621 (.din (io_cmp_sync_en ),
1622 .scan_in (io_cmp_sync_en2_ff_scanin ),
1623 .scan_out(io_cmp_sync_en2_ff_scanout),
1624// .clr_ (rst_cmp_ctl_wmr_cmp_ ),// Shift-in reset.
1625 .l1clk (l1clk ),
1626 .dout (io_cmp_sync_en2 ),
1627 .siclk(siclk),
1628 .soclk(soclk));
1629
1630 // Since the cmp-sys CDC sync_en signals are used directly,
1631 // without being buffered by a cluster header, we flop them
1632 // once upon arrival to the Reset Unit, and once more to allow
1633 // each leaf flop to drive approximately 15 loads.
1634
1635// assign ccu_cmp_sys_sync_en3 = ccu_cmp_sys_sync_en;// Until ccu adjusts.
1636// assign ccu_sys_cmp_sync_en3 = ccu_sys_cmp_sync_en;// Until ccu adjusts.
1637
1638rst_cmp_ctl_msff_ctl_macro__clr__0__en_0__width_1 ccu_cmp_sys_sync_en2_ff
1639 (.din (ccu_cmp_sys_sync_en ),
1640// .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1641 .scan_in (ccu_cmp_sys_sync_en2_ff_scanin ),
1642 .scan_out(ccu_cmp_sys_sync_en2_ff_scanout),
1643 .l1clk (l1clk_free_running ),
1644 .dout (ccu_cmp_sys_sync_en2 ),
1645 .siclk(siclk),
1646 .soclk(soclk));
1647
1648rst_cmp_ctl_msff_ctl_macro__clr__0__en_0__width_1 ccu_cmp_sys_sync_en3_ff
1649 (.din (ccu_cmp_sys_sync_en2 ),
1650// .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1651 .scan_in (ccu_cmp_sys_sync_en3_ff_scanin ),
1652 .scan_out(ccu_cmp_sys_sync_en3_ff_scanout),
1653 .l1clk (l1clk_free_running ),
1654 .dout (ccu_cmp_sys_sync_en3 ),
1655 .siclk(siclk),
1656 .soclk(soclk));
1657
1658rst_cmp_ctl_msff_ctl_macro__clr__0__en_0__width_1 ccu_sys_cmp_sync_en2_ff
1659 (.din (ccu_sys_cmp_sync_en ),
1660// .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1661 .scan_in (ccu_sys_cmp_sync_en2_ff_scanin ),
1662 .scan_out(ccu_sys_cmp_sync_en2_ff_scanout),
1663 .l1clk (l1clk_free_running ),
1664 .dout (ccu_sys_cmp_sync_en2 ),
1665 .siclk(siclk),
1666 .soclk(soclk));
1667
1668rst_cmp_ctl_msff_ctl_macro__clr__0__en_0__width_1 ccu_sys_cmp_sync_en3_ff
1669 (.din (ccu_sys_cmp_sync_en2 ),
1670// .clr_ (rst_cmp_ctl_wmr_cmp_ ),
1671 .scan_in (ccu_sys_cmp_sync_en3_ff_scanin ),
1672 .scan_out(ccu_sys_cmp_sync_en3_ff_scanout),
1673 .l1clk (l1clk_free_running ),
1674 .dout (ccu_sys_cmp_sync_en3 ),
1675 .siclk(siclk),
1676 .soclk(soclk));
1677//________________________________________________________________
1678
1679rst_cmp_ctl_l1clkhdr_ctl_macro clkgen (
1680 .l2clk (l2clk ),
1681 .l1en (1'b1 ),
1682 .pce_ov (tcu_pce_ov ), // (No assign needed.)
1683 .stop (tcu_clk_stop), // Qualified by assign stmt.
1684 .se (tcu_scan_en ), // Qualified by assign stmt.
1685 .l1clk (l1clk ));
1686
1687rst_cmp_ctl_l1clkhdr_ctl_macro rst_tcu_clk_stop_clkgen (
1688 .l2clk (l2clk ),
1689 .l1en (1'b1 ),
1690 .pce_ov (tcu_pce_ov ), // (No assign needed.)
1691 .stop (1'b0 ), // Need to keep going to deassert rst_tcu_clk_stop.
1692 .se (tcu_scan_en ), // Qualified by assign stmt.
1693 .l1clk (l1clk_free_running));
1694
1695// grep "Number of cells:" rst_*_l/*/scf/dc/rpt/syn_area.rpt
1696// Number of cells/450 = spare gate macros
1697// rst_cmp_l/rst_cmp_ctl/scf/dc/rpt/syn_area.rpt: Num: 22 /450=1
1698
1699rst_cmp_ctl_spare_ctl_macro__num_1 spares (
1700 .scan_in (spares_scanin ),
1701 .scan_out(spares_scanout),
1702 .l1clk (l1clk),
1703 .siclk(siclk),
1704 .soclk(soclk) );
1705//________________________________________________________________
1706
1707// No longer need to re-link the following: rst_cmp_ctl_wmr_cmp_ff has replaced
1708// mio_rst_pwron_rst_cmp_ff.
1709 // Remember to re-link
1710 // into chain of assign statments
1711 // when rerunning fixscan.
1712// assign mio_rst_pwron_rst_cmp_ff_scanin = io_cmp_sync_en2_ff_scanout ;
1713// assign spares_scanin = mio_rst_pwron_rst_cmp_ff_scanout;
1714
1715// But still do the following:
1716// After run fixscan, remember to comment out the line:
1717// assign scan_out = spares_scanout ;
1718// because elsewhere we have:
1719// assign scan_out
1720// = tcu_rst_scan_mode ? spares_scanout : 1'b0;
1721
1722//________________________________________________________________
1723
1724// fixscan start:
1725assign rst_tcu_pwron_rst_l_ff_scanin = scan_in ;
1726assign rst_rst_pwron_rst_l_io0_ff_scanin = rst_tcu_pwron_rst_l_ff_scanout;
1727assign rst_tcu_flush_init_req_ff_scanin = rst_rst_pwron_rst_l_io0_ff_scanout;
1728assign rst_tcu_flush_stop_req_ff_scanin = rst_tcu_flush_init_req_ff_scanout;
1729assign rst_tcu_asicflush_stop_req_ff_scanin = rst_tcu_flush_stop_req_ff_scanout;
1730assign rst_tcu_dbr_gen_ff_scanin = rst_tcu_asicflush_stop_req_ff_scanout;
1731assign tcu_rst_flush_init_ack_ff_scanin = rst_tcu_dbr_gen_ff_scanout;
1732assign tcu_rst_flush_stop_ack_ff_scanin = tcu_rst_flush_init_ack_ff_scanout;
1733assign tcu_rst_asicflush_stop_ack_ff_scanin = tcu_rst_flush_stop_ack_ff_scanout;
1734assign req_acpted_cmp_ff_scanin = tcu_rst_asicflush_stop_ack_ff_scanout;
1735assign req_acpted_cmp2_ff_scanin = req_acpted_cmp_ff_scanout;
1736assign rd_ack_vld_cmp_ff_scanin = req_acpted_cmp2_ff_scanout;
1737assign rd_ack_vld_cmp2_ff_scanin = rd_ack_vld_cmp_ff_scanout;
1738assign rd_nack_vld_cmp_ff_scanin = rd_ack_vld_cmp2_ff_scanout;
1739assign rd_nack_vld_cmp2_ff_scanin = rd_nack_vld_cmp_ff_scanout;
1740assign data_out_cmp_ff_scanin = rd_nack_vld_cmp2_ff_scanout;
1741assign data_out_cmp2_ff_scanin = data_out_cmp_ff_scanout ;
1742assign addr_in_cmp_ff_scanin = data_out_cmp2_ff_scanout ;
1743assign addr_in_sys_ff_scanin = addr_in_cmp_ff_scanout ;
1744assign data_in_cmp_ff_scanin = addr_in_sys_ff_scanout ;
1745assign data_in_sys_ff_scanin = data_in_cmp_ff_scanout ;
1746assign thr_id_in_cmp_ff_scanin = data_in_sys_ff_scanout ;
1747assign thr_id_in_sys_ff_scanin = thr_id_in_cmp_ff_scanout ;
1748assign buf_id_in_cmp_ff_scanin = thr_id_in_sys_ff_scanout ;
1749assign buf_id_in_sys_ff_scanin = buf_id_in_cmp_ff_scanout ;
1750assign ack_busy_cmp_ff_scanin = buf_id_in_sys_ff_scanout ;
1751assign ack_busy_sys_ff_scanin = ack_busy_cmp_ff_scanout ;
1752assign thr_id_out_cmp_ff_scanin = ack_busy_sys_ff_scanout ;
1753assign thr_id_out_cmp2_ff_scanin = thr_id_out_cmp_ff_scanout;
1754assign buf_id_out_cmp_ff_scanin = thr_id_out_cmp2_ff_scanout;
1755assign buf_id_out_cmp2_ff_scanin = buf_id_out_cmp_ff_scanout;
1756assign rd_req_vld_cmp_ff_scanin = buf_id_out_cmp2_ff_scanout;
1757assign rd_req_vld_cmp2_ff_scanin = rd_req_vld_cmp_ff_scanout;
1758assign wr_req_vld_cmp_ff_scanin = rd_req_vld_cmp2_ff_scanout;
1759assign wr_req_vld_cmp2_ff_scanin = wr_req_vld_cmp_ff_scanout;
1760assign rst_mcu_selfrsh_cmp_ff_scanin = wr_req_vld_cmp2_ff_scanout;
1761assign rst_mcu_selfrsh_cmp2_ff_scanin = rst_mcu_selfrsh_cmp_ff_scanout;
1762assign rst_l2_por_ff_scanin = rst_mcu_selfrsh_cmp2_ff_scanout;
1763assign rst_l2_wmr_ff_scanin = rst_l2_por_ff_scanout ;
1764assign rst_tcu_clk_stop_cmp_ff_scanin = rst_l2_wmr_ff_scanout ;
1765assign rst_tcu_clk_stop_io_ff_scanin = rst_tcu_clk_stop_cmp_ff_scanout;
1766assign rst_dmu_peu_por_ff_scanin = rst_tcu_clk_stop_io_ff_scanout;
1767assign rst_dmu_peu_wmr_ff_scanin = rst_dmu_peu_por_ff_scanout;
1768assign rst_niu_mac_ff_scanin = rst_dmu_peu_wmr_ff_scanout;
1769assign rst_niu_wmr_ff_scanin = rst_niu_mac_ff_scanout ;
1770assign rst_ncu_unpark_thread_cmp_ff_scanin = rst_niu_wmr_ff_scanout ;
1771assign rst_ncu_unpark_thread_cmp2_ff_scanin = rst_ncu_unpark_thread_cmp_ff_scanout;
1772assign rst_ncu_xir_cmp_ff_scanin = rst_ncu_unpark_thread_cmp2_ff_scanout;
1773assign rst_ncu_xir_cmp2_ff_scanin = rst_ncu_xir_cmp_ff_scanout;
1774assign ncu_rst_xir_done_cmp_ff_scanin = rst_ncu_xir_cmp2_ff_scanout;
1775assign ncu_rst_xir_done_sys_ff_scanin = ncu_rst_xir_done_cmp_ff_scanout;
1776assign tcu_rst_efu_done_sys_ff_scanin = ncu_rst_xir_done_sys_ff_scanout;
1777assign tcu_bisx_done_sys_ff_scanin = tcu_rst_efu_done_sys_ff_scanout;
1778assign tcu_test_protect_cmp0_ff_scanin = tcu_bisx_done_sys_ff_scanout;
1779assign tcu_test_protect_cmp_ff_scanin = tcu_test_protect_cmp0_ff_scanout;
1780assign ccu_rst_change_cmp0_ff_scanin = tcu_test_protect_cmp_ff_scanout;
1781assign ccu_rst_change_cmp_ff_scanin = ccu_rst_change_cmp0_ff_scanout;
1782assign ncu_rst_fatal_error_cmp0_ff_scanin = ccu_rst_change_cmp_ff_scanout;
1783assign ncu_rst_fatal_error_hold_ff_scanin = ncu_rst_fatal_error_cmp0_ff_scanout;
1784assign ncu_rst_fatal_error_cmp_ff_scanin = ncu_rst_fatal_error_hold_ff_scanout;
1785assign l2ta_rst_fatal_error_cmp0_ff_scanin = ncu_rst_fatal_error_cmp_ff_scanout;
1786assign l2ta_rst_fatal_error_hold_ff_scanin = l2ta_rst_fatal_error_cmp0_ff_scanout;
1787assign l2ta_rst_fatal_error_cmp_ff_scanin = l2ta_rst_fatal_error_hold_ff_scanout;
1788assign mio_rst_pb_rst_cmp_ff_scanin = l2ta_rst_fatal_error_cmp_ff_scanout;
1789assign mio_rst_pb_rst_sys2_ff_scanin = mio_rst_pb_rst_cmp_ff_scanout;
1790assign rst_cmp_ctl_wmr_cmp_ff_scanin = mio_rst_pb_rst_sys2_ff_scanout;
1791assign rst_rst_por_cmp_ff_scanin = rst_cmp_ctl_wmr_cmp_ff_scanout;
1792assign rst_rst_por_io_ff_scanin = rst_rst_por_cmp_ff_scanout;
1793assign rst_rst_wmr_cmp_ff_scanin = rst_rst_por_io_ff_scanout;
1794assign rst_rst_wmr_io_ff_scanin = rst_rst_wmr_cmp_ff_scanout;
1795assign cmp_io_sync_en2_ff_scanin = rst_rst_wmr_io_ff_scanout;
1796assign io_cmp_sync_en2_ff_scanin = cmp_io_sync_en2_ff_scanout;
1797assign ccu_cmp_sys_sync_en2_ff_scanin = io_cmp_sync_en2_ff_scanout;
1798assign ccu_cmp_sys_sync_en3_ff_scanin = ccu_cmp_sys_sync_en2_ff_scanout;
1799assign ccu_sys_cmp_sync_en2_ff_scanin = ccu_cmp_sys_sync_en3_ff_scanout;
1800assign ccu_sys_cmp_sync_en3_ff_scanin = ccu_sys_cmp_sync_en2_ff_scanout;
1801assign spares_scanin = ccu_sys_cmp_sync_en3_ff_scanout;
1802
1803// But still do the following:
1804// After run fixscan, remember to comment out the line:
1805// assign scan_out = spares_scanout ;
1806// because elsewhere we have:
1807// assign scan_out
1808// = tcu_rst_scan_mode ? spares_scanout : 1'b0;
1809
1810//sign scan_out = spares_scanout ;
1811// fixscan end:
1812endmodule // rst_cmp_ctl
1813
1814
1815
1816
1817
1818
1819// any PARAMS parms go into naming of macro
1820
1821module rst_cmp_ctl_msff_ctl_macro__clr__0__en_1__width_1 (
1822 din,
1823 en,
1824 l1clk,
1825 scan_in,
1826 siclk,
1827 soclk,
1828 dout,
1829 scan_out);
1830wire [0:0] fdin;
1831
1832 input [0:0] din;
1833 input en;
1834 input l1clk;
1835 input scan_in;
1836
1837
1838 input siclk;
1839 input soclk;
1840
1841 output [0:0] dout;
1842 output scan_out;
1843assign fdin[0:0] = (din[0:0] & {1{en}}) | (dout[0:0] & ~{1{en}});
1844
1845
1846
1847
1848
1849
1850dff #(1) d0_0 (
1851.l1clk(l1clk),
1852.siclk(siclk),
1853.soclk(soclk),
1854.d(fdin[0:0]),
1855.si(scan_in),
1856.so(scan_out),
1857.q(dout[0:0])
1858);
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871endmodule
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885// any PARAMS parms go into naming of macro
1886
1887module rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_1 (
1888 din,
1889 en,
1890 clr_,
1891 l1clk,
1892 scan_in,
1893 siclk,
1894 soclk,
1895 dout,
1896 scan_out);
1897wire [0:0] fdin;
1898
1899 input [0:0] din;
1900 input en;
1901 input clr_;
1902 input l1clk;
1903 input scan_in;
1904
1905
1906 input siclk;
1907 input soclk;
1908
1909 output [0:0] dout;
1910 output scan_out;
1911assign fdin[0:0] = (din[0:0] & {1{en}} & ~{1{(~clr_)}}) | (dout[0:0] & ~{1{en}} & ~{1{(~clr_)}});
1912
1913
1914
1915
1916
1917
1918dff #(1) d0_0 (
1919.l1clk(l1clk),
1920.siclk(siclk),
1921.soclk(soclk),
1922.d(fdin[0:0]),
1923.si(scan_in),
1924.so(scan_out),
1925.q(dout[0:0])
1926);
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939endmodule
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953// any PARAMS parms go into naming of macro
1954
1955module rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_16 (
1956 din,
1957 en,
1958 clr_,
1959 l1clk,
1960 scan_in,
1961 siclk,
1962 soclk,
1963 dout,
1964 scan_out);
1965wire [15:0] fdin;
1966wire [14:0] so;
1967
1968 input [15:0] din;
1969 input en;
1970 input clr_;
1971 input l1clk;
1972 input scan_in;
1973
1974
1975 input siclk;
1976 input soclk;
1977
1978 output [15:0] dout;
1979 output scan_out;
1980assign fdin[15:0] = (din[15:0] & {16{en}} & ~{16{(~clr_)}}) | (dout[15:0] & ~{16{en}} & ~{16{(~clr_)}});
1981
1982
1983
1984
1985
1986
1987dff #(16) d0_0 (
1988.l1clk(l1clk),
1989.siclk(siclk),
1990.soclk(soclk),
1991.d(fdin[15:0]),
1992.si({scan_in,so[14:0]}),
1993.so({so[14:0],scan_out}),
1994.q(dout[15:0])
1995);
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008endmodule
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022// any PARAMS parms go into naming of macro
2023
2024module rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_40 (
2025 din,
2026 en,
2027 clr_,
2028 l1clk,
2029 scan_in,
2030 siclk,
2031 soclk,
2032 dout,
2033 scan_out);
2034wire [39:0] fdin;
2035wire [38:0] so;
2036
2037 input [39:0] din;
2038 input en;
2039 input clr_;
2040 input l1clk;
2041 input scan_in;
2042
2043
2044 input siclk;
2045 input soclk;
2046
2047 output [39:0] dout;
2048 output scan_out;
2049assign fdin[39:0] = (din[39:0] & {40{en}} & ~{40{(~clr_)}}) | (dout[39:0] & ~{40{en}} & ~{40{(~clr_)}});
2050
2051
2052
2053
2054
2055
2056dff #(40) d0_0 (
2057.l1clk(l1clk),
2058.siclk(siclk),
2059.soclk(soclk),
2060.d(fdin[39:0]),
2061.si({scan_in,so[38:0]}),
2062.so({so[38:0],scan_out}),
2063.q(dout[39:0])
2064);
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077endmodule
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091// any PARAMS parms go into naming of macro
2092
2093module rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_6 (
2094 din,
2095 en,
2096 clr_,
2097 l1clk,
2098 scan_in,
2099 siclk,
2100 soclk,
2101 dout,
2102 scan_out);
2103wire [5:0] fdin;
2104wire [4:0] so;
2105
2106 input [5:0] din;
2107 input en;
2108 input clr_;
2109 input l1clk;
2110 input scan_in;
2111
2112
2113 input siclk;
2114 input soclk;
2115
2116 output [5:0] dout;
2117 output scan_out;
2118assign fdin[5:0] = (din[5:0] & {6{en}} & ~{6{(~clr_)}}) | (dout[5:0] & ~{6{en}} & ~{6{(~clr_)}});
2119
2120
2121
2122
2123
2124
2125dff #(6) d0_0 (
2126.l1clk(l1clk),
2127.siclk(siclk),
2128.soclk(soclk),
2129.d(fdin[5:0]),
2130.si({scan_in,so[4:0]}),
2131.so({so[4:0],scan_out}),
2132.q(dout[5:0])
2133);
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146endmodule
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160// any PARAMS parms go into naming of macro
2161
2162module rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_2 (
2163 din,
2164 en,
2165 clr_,
2166 l1clk,
2167 scan_in,
2168 siclk,
2169 soclk,
2170 dout,
2171 scan_out);
2172wire [1:0] fdin;
2173wire [0:0] so;
2174
2175 input [1:0] din;
2176 input en;
2177 input clr_;
2178 input l1clk;
2179 input scan_in;
2180
2181
2182 input siclk;
2183 input soclk;
2184
2185 output [1:0] dout;
2186 output scan_out;
2187assign fdin[1:0] = (din[1:0] & {2{en}} & ~{2{(~clr_)}}) | (dout[1:0] & ~{2{en}} & ~{2{(~clr_)}});
2188
2189
2190
2191
2192
2193
2194dff #(2) d0_0 (
2195.l1clk(l1clk),
2196.siclk(siclk),
2197.soclk(soclk),
2198.d(fdin[1:0]),
2199.si({scan_in,so[0:0]}),
2200.so({so[0:0],scan_out}),
2201.q(dout[1:0])
2202);
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215endmodule
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229// any PARAMS parms go into naming of macro
2230
2231module rst_cmp_ctl_msff_ctl_macro__clr__1__width_1 (
2232 din,
2233 clr_,
2234 l1clk,
2235 scan_in,
2236 siclk,
2237 soclk,
2238 dout,
2239 scan_out);
2240wire [0:0] fdin;
2241
2242 input [0:0] din;
2243 input clr_;
2244 input l1clk;
2245 input scan_in;
2246
2247
2248 input siclk;
2249 input soclk;
2250
2251 output [0:0] dout;
2252 output scan_out;
2253assign fdin[0:0] = din[0:0] & ~{1{(~clr_)}};
2254
2255
2256
2257
2258
2259
2260dff #(1) d0_0 (
2261.l1clk(l1clk),
2262.siclk(siclk),
2263.soclk(soclk),
2264.d(fdin[0:0]),
2265.si(scan_in),
2266.so(scan_out),
2267.q(dout[0:0])
2268);
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281endmodule
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295// any PARAMS parms go into naming of macro
2296
2297module rst_cmp_ctl_msff_ctl_macro__clr__1__en_1__width_8 (
2298 din,
2299 en,
2300 clr_,
2301 l1clk,
2302 scan_in,
2303 siclk,
2304 soclk,
2305 dout,
2306 scan_out);
2307wire [7:0] fdin;
2308wire [6:0] so;
2309
2310 input [7:0] din;
2311 input en;
2312 input clr_;
2313 input l1clk;
2314 input scan_in;
2315
2316
2317 input siclk;
2318 input soclk;
2319
2320 output [7:0] dout;
2321 output scan_out;
2322assign fdin[7:0] = (din[7:0] & {8{en}} & ~{8{(~clr_)}}) | (dout[7:0] & ~{8{en}} & ~{8{(~clr_)}});
2323
2324
2325
2326
2327
2328
2329dff #(8) d0_0 (
2330.l1clk(l1clk),
2331.siclk(siclk),
2332.soclk(soclk),
2333.d(fdin[7:0]),
2334.si({scan_in,so[6:0]}),
2335.so({so[6:0],scan_out}),
2336.q(dout[7:0])
2337);
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350endmodule
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364// any PARAMS parms go into naming of macro
2365
2366module rst_cmp_ctl_msff_ctl_macro__clr__1__width_8 (
2367 din,
2368 clr_,
2369 l1clk,
2370 scan_in,
2371 siclk,
2372 soclk,
2373 dout,
2374 scan_out);
2375wire [7:0] fdin;
2376wire [6:0] so;
2377
2378 input [7:0] din;
2379 input clr_;
2380 input l1clk;
2381 input scan_in;
2382
2383
2384 input siclk;
2385 input soclk;
2386
2387 output [7:0] dout;
2388 output scan_out;
2389assign fdin[7:0] = din[7:0] & ~{8{(~clr_)}};
2390
2391
2392
2393
2394
2395
2396dff #(8) d0_0 (
2397.l1clk(l1clk),
2398.siclk(siclk),
2399.soclk(soclk),
2400.d(fdin[7:0]),
2401.si({scan_in,so[6:0]}),
2402.so({so[6:0],scan_out}),
2403.q(dout[7:0])
2404);
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417endmodule
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431// any PARAMS parms go into naming of macro
2432
2433module rst_cmp_ctl_msff_ctl_macro__clr__0__en_0__width_1 (
2434 din,
2435 l1clk,
2436 scan_in,
2437 siclk,
2438 soclk,
2439 dout,
2440 scan_out);
2441wire [0:0] fdin;
2442
2443 input [0:0] din;
2444 input l1clk;
2445 input scan_in;
2446
2447
2448 input siclk;
2449 input soclk;
2450
2451 output [0:0] dout;
2452 output scan_out;
2453assign fdin[0:0] = din[0:0];
2454
2455
2456
2457
2458
2459
2460dff #(1) d0_0 (
2461.l1clk(l1clk),
2462.siclk(siclk),
2463.soclk(soclk),
2464.d(fdin[0:0]),
2465.si(scan_in),
2466.so(scan_out),
2467.q(dout[0:0])
2468);
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481endmodule
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495// any PARAMS parms go into naming of macro
2496
2497module rst_cmp_ctl_l1clkhdr_ctl_macro (
2498 l2clk,
2499 l1en,
2500 pce_ov,
2501 stop,
2502 se,
2503 l1clk);
2504
2505
2506 input l2clk;
2507 input l1en;
2508 input pce_ov;
2509 input stop;
2510 input se;
2511 output l1clk;
2512
2513
2514
2515
2516
2517cl_sc1_l1hdr_8x c_0 (
2518
2519
2520 .l2clk(l2clk),
2521 .pce(l1en),
2522 .l1clk(l1clk),
2523 .se(se),
2524 .pce_ov(pce_ov),
2525 .stop(stop)
2526);
2527
2528
2529
2530endmodule
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540// Description: Spare gate macro for control blocks
2541//
2542// Param num controls the number of times the macro is added
2543// flops=0 can be used to use only combination spare logic
2544
2545
2546module rst_cmp_ctl_spare_ctl_macro__num_1 (
2547 l1clk,
2548 scan_in,
2549 siclk,
2550 soclk,
2551 scan_out);
2552wire si_0;
2553wire so_0;
2554wire spare0_flop_unused;
2555wire spare0_buf_32x_unused;
2556wire spare0_nand3_8x_unused;
2557wire spare0_inv_8x_unused;
2558wire spare0_aoi22_4x_unused;
2559wire spare0_buf_8x_unused;
2560wire spare0_oai22_4x_unused;
2561wire spare0_inv_16x_unused;
2562wire spare0_nand2_16x_unused;
2563wire spare0_nor3_4x_unused;
2564wire spare0_nand2_8x_unused;
2565wire spare0_buf_16x_unused;
2566wire spare0_nor2_16x_unused;
2567wire spare0_inv_32x_unused;
2568
2569
2570input l1clk;
2571input scan_in;
2572input siclk;
2573input soclk;
2574output scan_out;
2575
2576cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
2577 .siclk(siclk),
2578 .soclk(soclk),
2579 .si(si_0),
2580 .so(so_0),
2581 .d(1'b0),
2582 .q(spare0_flop_unused));
2583assign si_0 = scan_in;
2584
2585cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
2586 .out(spare0_buf_32x_unused));
2587cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
2588 .in1(1'b1),
2589 .in2(1'b1),
2590 .out(spare0_nand3_8x_unused));
2591cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
2592 .out(spare0_inv_8x_unused));
2593cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
2594 .in01(1'b1),
2595 .in10(1'b1),
2596 .in11(1'b1),
2597 .out(spare0_aoi22_4x_unused));
2598cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
2599 .out(spare0_buf_8x_unused));
2600cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
2601 .in01(1'b1),
2602 .in10(1'b1),
2603 .in11(1'b1),
2604 .out(spare0_oai22_4x_unused));
2605cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
2606 .out(spare0_inv_16x_unused));
2607cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
2608 .in1(1'b1),
2609 .out(spare0_nand2_16x_unused));
2610cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
2611 .in1(1'b0),
2612 .in2(1'b0),
2613 .out(spare0_nor3_4x_unused));
2614cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
2615 .in1(1'b1),
2616 .out(spare0_nand2_8x_unused));
2617cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
2618 .out(spare0_buf_16x_unused));
2619cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
2620 .in1(1'b0),
2621 .out(spare0_nor2_16x_unused));
2622cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
2623 .out(spare0_inv_32x_unused));
2624assign scan_out = so_0;
2625
2626
2627
2628endmodule
2629