Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / spc / lsu / rtl / lsu_sec_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: lsu_sec_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 lsu_sec_ctl (
36 sed_c1_lo,
37 sed_c1_hi,
38 sed_c2_lo,
39 sed_c2_hi,
40 sed_c4_lo,
41 sed_c4_hi,
42 sed_c8_lo,
43 sed_c8_hi,
44 sed_c16_lo,
45 sed_c16_hi,
46 sed_cf_lo,
47 sed_cf_hi,
48 sed_c32_hi,
49 sed_c32_lo,
50 sbc_twocycle_inst_w,
51 stb_cparity_calc,
52 sbc_st_sz_m,
53 sbc_std_le_m,
54 sbc_st_le_if_ie_m,
55 sbc_st_le_not_ie_m,
56 sbc_spd_clken,
57 mbi_run,
58 mbi_wdata_b3,
59 cecc_err,
60 uecc_err,
61 corr_bit,
62 stb_cparity,
63 sec_st_sz_dw_std_le_b,
64 sec_st_sz_dw_le_not_ie_b,
65 sec_st_sz_dw_be_not_ie_b,
66 sec_st_sz_word_le_not_ie_b,
67 sec_st_sz_word_be_not_ie_b,
68 sec_st_sz_hw_le_not_ie_b,
69 sec_st_sz_hw_be_not_ie_b,
70 sec_st_sz_dw_le_if_ie_b,
71 sec_st_sz_dw_be_if_ie_b,
72 sec_st_sz_word_le_if_ie_b,
73 sec_st_sz_word_be_if_ie_b,
74 sec_st_sz_hw_le_if_ie_b,
75 sec_st_sz_hw_be_if_ie_b,
76 sec_st_sz_byte_b,
77 l2clk,
78 scan_in,
79 tcu_pce_ov,
80 tcu_scan_en,
81 spc_aclk,
82 spc_bclk,
83 scan_out);
84wire se;
85wire pce_ov;
86wire stop;
87wire siclk;
88wire soclk;
89wire [31:0] err_bith;
90wire [31:0] err_bitl;
91wire l1clk_pm1;
92wire parityl;
93wire c32l;
94wire c16l;
95wire c8l;
96wire c4l;
97wire c2l;
98wire c1l;
99wire cecc_errl;
100wire uecc_errl;
101wire parityh;
102wire c32h;
103wire c16h;
104wire c8h;
105wire c4h;
106wire c2h;
107wire c1h;
108wire cecc_errh;
109wire uecc_errh;
110wire stb_cparity_w;
111wire dff_cparity_scanin;
112wire dff_cparity_scanout;
113wire st_sz_dw_m;
114wire st_sz_word_m;
115wire st_sz_hw_m;
116wire st_sz_byte_m;
117wire st_sz_dw_std_le_m;
118wire st_sz_dw_le_not_ie_m;
119wire st_sz_dw_be_not_ie_m;
120wire st_sz_word_le_not_ie_m;
121wire st_sz_word_be_not_ie_m;
122wire st_sz_hw_le_not_ie_m;
123wire st_sz_hw_be_not_ie_m;
124wire st_sz_dw_le_if_ie_m;
125wire st_sz_dw_be_if_ie_m;
126wire st_sz_word_le_if_ie_m;
127wire st_sz_word_be_if_ie_m;
128wire st_sz_hw_le_if_ie_m;
129wire st_sz_hw_be_if_ie_m;
130wire dff_st_sz_scanin;
131wire dff_st_sz_scanout;
132wire spares_scanin;
133wire spares_scanout;
134
135
136input [1:0] sed_c1_lo;
137input [1:0] sed_c1_hi;
138input [1:0] sed_c2_lo;
139input [1:0] sed_c2_hi;
140input [1:0] sed_c4_lo;
141input [1:0] sed_c4_hi;
142input [1:0] sed_c8_lo;
143input [1:0] sed_c8_hi;
144input [1:0] sed_c16_lo;
145input [1:0] sed_c16_hi;
146input [2:0] sed_cf_lo;
147input [2:0] sed_cf_hi;
148input sed_c32_hi;
149input sed_c32_lo;
150
151input sbc_twocycle_inst_w;
152input stb_cparity_calc;
153input [1:0] sbc_st_sz_m;
154input sbc_std_le_m;
155input sbc_st_le_if_ie_m;
156input sbc_st_le_not_ie_m;
157input sbc_spd_clken;
158
159input mbi_run;
160input mbi_wdata_b3;
161
162output cecc_err;
163output uecc_err;
164output [63:0] corr_bit;
165output stb_cparity;
166
167output sec_st_sz_dw_std_le_b;
168output sec_st_sz_dw_le_not_ie_b;
169output sec_st_sz_dw_be_not_ie_b;
170output sec_st_sz_word_le_not_ie_b;
171output sec_st_sz_word_be_not_ie_b;
172output sec_st_sz_hw_le_not_ie_b;
173output sec_st_sz_hw_be_not_ie_b;
174output sec_st_sz_dw_le_if_ie_b;
175output sec_st_sz_dw_be_if_ie_b;
176output sec_st_sz_word_le_if_ie_b;
177output sec_st_sz_word_be_if_ie_b;
178output sec_st_sz_hw_le_if_ie_b;
179output sec_st_sz_hw_be_if_ie_b;
180output sec_st_sz_byte_b;
181
182input l2clk;
183input scan_in;
184input tcu_pce_ov; // scan signals
185input tcu_scan_en;
186input spc_aclk;
187input spc_bclk;
188output scan_out;
189
190// scan renames
191assign se = tcu_scan_en;
192assign pce_ov = tcu_pce_ov;
193assign stop = 1'b0;
194assign siclk = spc_aclk;
195assign soclk = spc_bclk;
196// end scan
197
198assign corr_bit[63:0] = {err_bith[31:0],err_bitl[31:0]};
199
200//////////////////////////////
201// Clock header
202//////////////////////////////
203lsu_sec_ctl_l1clkhdr_ctl_macro clkgen (
204 .l2clk (l2clk ),
205 .l1en (sbc_spd_clken ),
206 .l1clk (l1clk_pm1 ),
207 .pce_ov(pce_ov),
208 .stop(stop),
209 .se(se)
210);
211
212///////////////////////////////////////////////////////////////////////
213// Flop check bits, determine error, and generate correction vector
214
215assign parityl = sed_cf_lo[2] ^ sed_cf_lo[1] ^ sed_cf_lo[0];
216assign c32l = sed_c32_lo;
217assign c16l = sed_c16_lo[1] ^ sed_c16_lo[0];
218assign c8l = sed_c8_lo[1] ^ sed_c8_lo[0];
219assign c4l = sed_c4_lo[1] ^ sed_c4_lo[0];
220assign c2l = sed_c2_lo[1] ^ sed_c2_lo[0];
221assign c1l = sed_c1_lo[1] ^ sed_c1_lo[0];
222
223assign cecc_errl = |({c1l,c2l,c4l,c8l,c16l,c32l}) & parityl;
224assign uecc_errl = |({c1l,c2l,c4l,c8l,c16l,c32l}) & ~parityl;
225
226assign err_bitl[0] = ~c32l & ~c16l & ~c8l & ~c4l & c2l & c1l;
227assign err_bitl[1] = ~c32l & ~c16l & ~c8l & c4l & ~c2l & c1l;
228assign err_bitl[2] = ~c32l & ~c16l & ~c8l & c4l & c2l & ~c1l;
229assign err_bitl[3] = ~c32l & ~c16l & ~c8l & c4l & c2l & c1l;
230assign err_bitl[4] = ~c32l & ~c16l & c8l & ~c4l & ~c2l & c1l;
231assign err_bitl[5] = ~c32l & ~c16l & c8l & ~c4l & c2l & ~c1l;
232assign err_bitl[6] = ~c32l & ~c16l & c8l & ~c4l & c2l & c1l;
233assign err_bitl[7] = ~c32l & ~c16l & c8l & c4l & ~c2l & ~c1l;
234assign err_bitl[8] = ~c32l & ~c16l & c8l & c4l & ~c2l & c1l;
235assign err_bitl[9] = ~c32l & ~c16l & c8l & c4l & c2l & ~c1l;
236assign err_bitl[10] = ~c32l & ~c16l & c8l & c4l & c2l & c1l;
237assign err_bitl[11] = ~c32l & c16l & ~c8l & ~c4l & ~c2l & c1l;
238assign err_bitl[12] = ~c32l & c16l & ~c8l & ~c4l & c2l & ~c1l;
239assign err_bitl[13] = ~c32l & c16l & ~c8l & ~c4l & c2l & c1l;
240assign err_bitl[14] = ~c32l & c16l & ~c8l & c4l & ~c2l & ~c1l;
241assign err_bitl[15] = ~c32l & c16l & ~c8l & c4l & ~c2l & c1l;
242assign err_bitl[16] = ~c32l & c16l & ~c8l & c4l & c2l & ~c1l;
243assign err_bitl[17] = ~c32l & c16l & ~c8l & c4l & c2l & c1l;
244assign err_bitl[18] = ~c32l & c16l & c8l & ~c4l & ~c2l & ~c1l;
245assign err_bitl[19] = ~c32l & c16l & c8l & ~c4l & ~c2l & c1l;
246assign err_bitl[20] = ~c32l & c16l & c8l & ~c4l & c2l & ~c1l;
247assign err_bitl[21] = ~c32l & c16l & c8l & ~c4l & c2l & c1l;
248assign err_bitl[22] = ~c32l & c16l & c8l & c4l & ~c2l & ~c1l;
249assign err_bitl[23] = ~c32l & c16l & c8l & c4l & ~c2l & c1l;
250assign err_bitl[24] = ~c32l & c16l & c8l & c4l & c2l & ~c1l;
251assign err_bitl[25] = ~c32l & c16l & c8l & c4l & c2l & c1l;
252assign err_bitl[26] = c32l & ~c16l & ~c8l & ~c4l & ~c2l & c1l;
253assign err_bitl[27] = c32l & ~c16l & ~c8l & ~c4l & c2l & ~c1l;
254assign err_bitl[28] = c32l & ~c16l & ~c8l & ~c4l & c2l & c1l;
255assign err_bitl[29] = c32l & ~c16l & ~c8l & c4l & ~c2l & ~c1l;
256assign err_bitl[30] = c32l & ~c16l & ~c8l & c4l & ~c2l & c1l;
257assign err_bitl[31] = c32l & ~c16l & ~c8l & c4l & c2l & ~c1l;
258
259assign parityh = sed_cf_hi[2] ^ sed_cf_hi[1] ^ sed_cf_hi[0];
260assign c32h = sed_c32_hi;
261assign c16h = sed_c16_hi[1] ^ sed_c16_hi[0];
262assign c8h = sed_c8_hi[1] ^ sed_c8_hi[0];
263assign c4h = sed_c4_hi[1] ^ sed_c4_hi[0];
264assign c2h = sed_c2_hi[1] ^ sed_c2_hi[0];
265assign c1h = sed_c1_hi[1] ^ sed_c1_hi[0];
266
267assign cecc_errh = |({c1h,c2h,c4h,c8h,c16h,c32h}) & parityh;
268assign uecc_errh = |({c1h,c2h,c4h,c8h,c16h,c32h}) & ~parityh;
269
270assign err_bith[0] = ~c32h & ~c16h & ~c8h & ~c4h & c2h & c1h;
271assign err_bith[1] = ~c32h & ~c16h & ~c8h & c4h & ~c2h & c1h;
272assign err_bith[2] = ~c32h & ~c16h & ~c8h & c4h & c2h & ~c1h;
273assign err_bith[3] = ~c32h & ~c16h & ~c8h & c4h & c2h & c1h;
274assign err_bith[4] = ~c32h & ~c16h & c8h & ~c4h & ~c2h & c1h;
275assign err_bith[5] = ~c32h & ~c16h & c8h & ~c4h & c2h & ~c1h;
276assign err_bith[6] = ~c32h & ~c16h & c8h & ~c4h & c2h & c1h;
277assign err_bith[7] = ~c32h & ~c16h & c8h & c4h & ~c2h & ~c1h;
278assign err_bith[8] = ~c32h & ~c16h & c8h & c4h & ~c2h & c1h;
279assign err_bith[9] = ~c32h & ~c16h & c8h & c4h & c2h & ~c1h;
280assign err_bith[10] = ~c32h & ~c16h & c8h & c4h & c2h & c1h;
281assign err_bith[11] = ~c32h & c16h & ~c8h & ~c4h & ~c2h & c1h;
282assign err_bith[12] = ~c32h & c16h & ~c8h & ~c4h & c2h & ~c1h;
283assign err_bith[13] = ~c32h & c16h & ~c8h & ~c4h & c2h & c1h;
284assign err_bith[14] = ~c32h & c16h & ~c8h & c4h & ~c2h & ~c1h;
285assign err_bith[15] = ~c32h & c16h & ~c8h & c4h & ~c2h & c1h;
286assign err_bith[16] = ~c32h & c16h & ~c8h & c4h & c2h & ~c1h;
287assign err_bith[17] = ~c32h & c16h & ~c8h & c4h & c2h & c1h;
288assign err_bith[18] = ~c32h & c16h & c8h & ~c4h & ~c2h & ~c1h;
289assign err_bith[19] = ~c32h & c16h & c8h & ~c4h & ~c2h & c1h;
290assign err_bith[20] = ~c32h & c16h & c8h & ~c4h & c2h & ~c1h;
291assign err_bith[21] = ~c32h & c16h & c8h & ~c4h & c2h & c1h;
292assign err_bith[22] = ~c32h & c16h & c8h & c4h & ~c2h & ~c1h;
293assign err_bith[23] = ~c32h & c16h & c8h & c4h & ~c2h & c1h;
294assign err_bith[24] = ~c32h & c16h & c8h & c4h & c2h & ~c1h;
295assign err_bith[25] = ~c32h & c16h & c8h & c4h & c2h & c1h;
296assign err_bith[26] = c32h & ~c16h & ~c8h & ~c4h & ~c2h & c1h;
297assign err_bith[27] = c32h & ~c16h & ~c8h & ~c4h & c2h & ~c1h;
298assign err_bith[28] = c32h & ~c16h & ~c8h & ~c4h & c2h & c1h;
299assign err_bith[29] = c32h & ~c16h & ~c8h & c4h & ~c2h & ~c1h;
300assign err_bith[30] = c32h & ~c16h & ~c8h & c4h & ~c2h & c1h;
301assign err_bith[31] = c32h & ~c16h & ~c8h & c4h & c2h & ~c1h;
302
303assign cecc_err = cecc_errl | cecc_errh;
304assign uecc_err = uecc_errl | uecc_errh;
305
306assign stb_cparity = mbi_run ? mbi_wdata_b3 : (sbc_twocycle_inst_w ? stb_cparity_w : stb_cparity_calc);
307
308// Store cam parity for a cycle for the STD case
309lsu_sec_ctl_msff_ctl_macro__width_1 dff_cparity (
310 .scan_in(dff_cparity_scanin),
311 .scan_out(dff_cparity_scanout),
312 .l1clk (l1clk_pm1),
313 .din (stb_cparity_calc),
314 .dout (stb_cparity_w),
315 .siclk(siclk),
316 .soclk(soclk)
317);
318
319assign st_sz_dw_m = sbc_st_sz_m[1] & sbc_st_sz_m[0];
320assign st_sz_word_m = sbc_st_sz_m[1] & ~sbc_st_sz_m[0];
321assign st_sz_hw_m = ~sbc_st_sz_m[1] & sbc_st_sz_m[0];
322assign st_sz_byte_m = ~sbc_st_sz_m[1] & ~sbc_st_sz_m[0];
323
324assign st_sz_dw_std_le_m = st_sz_dw_m & sbc_std_le_m;
325assign st_sz_dw_le_not_ie_m = st_sz_dw_m & ~sbc_std_le_m & sbc_st_le_not_ie_m;
326assign st_sz_dw_be_not_ie_m = st_sz_dw_m & ~sbc_std_le_m & ~sbc_st_le_not_ie_m;
327assign st_sz_word_le_not_ie_m = st_sz_word_m & sbc_st_le_not_ie_m;
328assign st_sz_word_be_not_ie_m = st_sz_word_m & ~sbc_st_le_not_ie_m;
329assign st_sz_hw_le_not_ie_m = st_sz_hw_m & sbc_st_le_not_ie_m;
330assign st_sz_hw_be_not_ie_m = st_sz_hw_m & ~sbc_st_le_not_ie_m;
331assign st_sz_dw_le_if_ie_m = st_sz_dw_m & ~sbc_std_le_m & sbc_st_le_if_ie_m;
332assign st_sz_dw_be_if_ie_m = st_sz_dw_m & ~sbc_std_le_m & ~sbc_st_le_if_ie_m;
333assign st_sz_word_le_if_ie_m = st_sz_word_m & sbc_st_le_if_ie_m;
334assign st_sz_word_be_if_ie_m = st_sz_word_m & ~sbc_st_le_if_ie_m;
335assign st_sz_hw_le_if_ie_m = st_sz_hw_m & sbc_st_le_if_ie_m;
336assign st_sz_hw_be_if_ie_m = st_sz_hw_m & ~sbc_st_le_if_ie_m;
337
338lsu_sec_ctl_msff_ctl_macro__width_14 dff_st_sz (
339 .scan_in(dff_st_sz_scanin),
340 .scan_out(dff_st_sz_scanout),
341 .l1clk (l1clk_pm1),
342 .din ({ st_sz_dw_std_le_m, st_sz_dw_le_not_ie_m, st_sz_dw_be_not_ie_m,
343 st_sz_word_le_not_ie_m, st_sz_word_be_not_ie_m, st_sz_hw_le_not_ie_m,
344 st_sz_hw_be_not_ie_m, st_sz_dw_le_if_ie_m, st_sz_dw_be_if_ie_m,
345 st_sz_word_le_if_ie_m, st_sz_word_be_if_ie_m, st_sz_hw_le_if_ie_m,
346 st_sz_hw_be_if_ie_m, st_sz_byte_m}),
347 .dout ({sec_st_sz_dw_std_le_b, sec_st_sz_dw_le_not_ie_b, sec_st_sz_dw_be_not_ie_b,
348 sec_st_sz_word_le_not_ie_b,sec_st_sz_word_be_not_ie_b,sec_st_sz_hw_le_not_ie_b,
349 sec_st_sz_hw_be_not_ie_b, sec_st_sz_dw_le_if_ie_b, sec_st_sz_dw_be_if_ie_b,
350 sec_st_sz_word_le_if_ie_b, sec_st_sz_word_be_if_ie_b, sec_st_sz_hw_le_if_ie_b,
351 sec_st_sz_hw_be_if_ie_b, sec_st_sz_byte_b}),
352 .siclk(siclk),
353 .soclk(soclk)
354);
355
356
357lsu_sec_ctl_spare_ctl_macro__num_1 spares (
358 .scan_in(spares_scanin),
359 .scan_out(spares_scanout),
360 .l1clk (l1clk_pm1),
361 .siclk(siclk),
362 .soclk(soclk)
363);
364
365// fixscan start:
366assign dff_cparity_scanin = scan_in ;
367assign dff_st_sz_scanin = dff_cparity_scanout ;
368assign spares_scanin = dff_st_sz_scanout ;
369assign scan_out = spares_scanout ;
370// fixscan end:
371endmodule
372
373
374
375
376
377
378
379// any PARAMS parms go into naming of macro
380
381module lsu_sec_ctl_l1clkhdr_ctl_macro (
382 l2clk,
383 l1en,
384 pce_ov,
385 stop,
386 se,
387 l1clk);
388
389
390 input l2clk;
391 input l1en;
392 input pce_ov;
393 input stop;
394 input se;
395 output l1clk;
396
397
398
399
400
401cl_sc1_l1hdr_8x c_0 (
402
403
404 .l2clk(l2clk),
405 .pce(l1en),
406 .l1clk(l1clk),
407 .se(se),
408 .pce_ov(pce_ov),
409 .stop(stop)
410);
411
412
413
414endmodule
415
416
417
418
419
420
421
422
423
424
425
426
427
428// any PARAMS parms go into naming of macro
429
430module lsu_sec_ctl_msff_ctl_macro__width_1 (
431 din,
432 l1clk,
433 scan_in,
434 siclk,
435 soclk,
436 dout,
437 scan_out);
438wire [0:0] fdin;
439
440 input [0:0] din;
441 input l1clk;
442 input scan_in;
443
444
445 input siclk;
446 input soclk;
447
448 output [0:0] dout;
449 output scan_out;
450assign fdin[0:0] = din[0:0];
451
452
453
454
455
456
457dff #(1) d0_0 (
458.l1clk(l1clk),
459.siclk(siclk),
460.soclk(soclk),
461.d(fdin[0:0]),
462.si(scan_in),
463.so(scan_out),
464.q(dout[0:0])
465);
466
467
468
469
470
471
472
473
474
475
476
477
478endmodule
479
480
481
482
483
484
485
486
487
488
489
490
491
492// any PARAMS parms go into naming of macro
493
494module lsu_sec_ctl_msff_ctl_macro__width_14 (
495 din,
496 l1clk,
497 scan_in,
498 siclk,
499 soclk,
500 dout,
501 scan_out);
502wire [13:0] fdin;
503wire [12:0] so;
504
505 input [13:0] din;
506 input l1clk;
507 input scan_in;
508
509
510 input siclk;
511 input soclk;
512
513 output [13:0] dout;
514 output scan_out;
515assign fdin[13:0] = din[13:0];
516
517
518
519
520
521
522dff #(14) d0_0 (
523.l1clk(l1clk),
524.siclk(siclk),
525.soclk(soclk),
526.d(fdin[13:0]),
527.si({scan_in,so[12:0]}),
528.so({so[12:0],scan_out}),
529.q(dout[13:0])
530);
531
532
533
534
535
536
537
538
539
540
541
542
543endmodule
544
545
546
547
548
549
550
551
552
553// Description: Spare gate macro for control blocks
554//
555// Param num controls the number of times the macro is added
556// flops=0 can be used to use only combination spare logic
557
558
559module lsu_sec_ctl_spare_ctl_macro__num_1 (
560 l1clk,
561 scan_in,
562 siclk,
563 soclk,
564 scan_out);
565wire si_0;
566wire so_0;
567wire spare0_flop_unused;
568wire spare0_buf_32x_unused;
569wire spare0_nand3_8x_unused;
570wire spare0_inv_8x_unused;
571wire spare0_aoi22_4x_unused;
572wire spare0_buf_8x_unused;
573wire spare0_oai22_4x_unused;
574wire spare0_inv_16x_unused;
575wire spare0_nand2_16x_unused;
576wire spare0_nor3_4x_unused;
577wire spare0_nand2_8x_unused;
578wire spare0_buf_16x_unused;
579wire spare0_nor2_16x_unused;
580wire spare0_inv_32x_unused;
581
582
583input l1clk;
584input scan_in;
585input siclk;
586input soclk;
587output scan_out;
588
589cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
590 .siclk(siclk),
591 .soclk(soclk),
592 .si(si_0),
593 .so(so_0),
594 .d(1'b0),
595 .q(spare0_flop_unused));
596assign si_0 = scan_in;
597
598cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
599 .out(spare0_buf_32x_unused));
600cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
601 .in1(1'b1),
602 .in2(1'b1),
603 .out(spare0_nand3_8x_unused));
604cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
605 .out(spare0_inv_8x_unused));
606cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
607 .in01(1'b1),
608 .in10(1'b1),
609 .in11(1'b1),
610 .out(spare0_aoi22_4x_unused));
611cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
612 .out(spare0_buf_8x_unused));
613cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
614 .in01(1'b1),
615 .in10(1'b1),
616 .in11(1'b1),
617 .out(spare0_oai22_4x_unused));
618cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
619 .out(spare0_inv_16x_unused));
620cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
621 .in1(1'b1),
622 .out(spare0_nand2_16x_unused));
623cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
624 .in1(1'b0),
625 .in2(1'b0),
626 .out(spare0_nor3_4x_unused));
627cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
628 .in1(1'b1),
629 .out(spare0_nand2_8x_unused));
630cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
631 .out(spare0_buf_16x_unused));
632cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
633 .in1(1'b0),
634 .out(spare0_nor2_16x_unused));
635cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
636 .out(spare0_inv_32x_unused));
637assign scan_out = so_0;
638
639
640
641endmodule
642