Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / l2b / rtl / l2b_fillbf_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: l2b_fillbf_dp.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35module l2b_fillbf_dp (
36 l2clk,
37 l2t_l2b_fbrd_en_c3,
38 l2t_l2b_fbrd_wl_c3,
39 l2t_l2b_fbwr_wen_r2,
40 l2t_l2b_fbwr_wl_r2,
41 l2t_l2b_fbd_stdatasel_c3,
42 l2t_l2b_stdecc_c2,
43 mcu_l2b_data_r2,
44 mcu_l2b_ecc_r2,
45 tcu_aclk,
46 tcu_bclk,
47 tcu_scan_en,
48 tcu_pce_ov,
49 tcu_clk_stop,
50 scan_in,
51 mbist_addr,
52 mbist_run,
53 fb_rw_fail,
54 fb_mbist_data,
55 mbist_fb_array_rd_en,
56 mbist_fb_array_wr_en,
57 select_delay_mcu,
58 scan_out,
59 fillbf_l2t_l2b_fbrd_en_c3_v1,
60 fillbf_l2t_l2b_fbrd_en_c3_v2,
61 fillbf_l2t_l2b_fbrd_en_c3_v3,
62 fillbf_l2t_l2b_fbrd_en_c3_v4,
63 fillbf_l2t_l2b_fbrd_wl_c3_v1,
64 fillbf_l2t_l2b_fbrd_wl_c3_v2,
65 fillbf_l2t_l2b_fbrd_wl_c3_v3,
66 fillbf_l2t_l2b_fbrd_wl_c3_v4,
67 fillbf_l2t_l2b_fbwr_wen_r3,
68 fillbf_l2t_l2b_fbwr_wren_r3_v4,
69 fillbf_l2t_l2b_fbwr_wren_r3_v3,
70 fillbf_l2t_l2b_fbwr_wren_r3_v2,
71 fillbf_l2t_l2b_fbwr_wren_r3_v1,
72 fillbf_l2t_l2b_fbwr_wl_r3_v1,
73 fillbf_l2t_l2b_fbwr_wl_r3_v2,
74 fillbf_l2t_l2b_fbwr_wl_r3_v3,
75 fillbf_l2t_l2b_fbwr_wl_r3_v4,
76 fillbf_fb_array_din,
77 l2b_l2d_fbdecc_c4,
78 fbuf_mux_sel);
79wire pce_ov;
80wire stop;
81wire siclk;
82wire soclk;
83wire se;
84wire ff_mbist_run_scanin;
85wire ff_mbist_run_scanout;
86wire [7:0] fb_mbist_data_r2;
87wire [7:0] fb_mbist_data_r1;
88wire mbist_run_reg;
89wire [2:0] mbist_addr_reg;
90wire mbist_fb_array_rd_en_reg3;
91wire mbist_fb_array_rd_en_reg2;
92wire mbist_fb_array_rd_en_reg;
93wire mbist_fb_array_wr_en_reg;
94wire [15:0] fbuf_mux_sel_r1;
95wire [15:0] fbuf_mux_sel_r2;
96wire ff_mbist_v1_reg_scanin;
97wire ff_mbist_v1_reg_scanout;
98wire mbist_run_reg_v1;
99wire [2:0] mbist_addr_reg_v1;
100wire mbist_fb_array_rd_en_reg_v1;
101wire mbist_fb_array_wr_en_reg_v1;
102wire ff_mbist_v2_reg_scanin;
103wire ff_mbist_v2_reg_scanout;
104wire mbist_run_reg_v2;
105wire [2:0] mbist_addr_reg_v2;
106wire mbist_fb_array_rd_en_reg_v2;
107wire mbist_fb_array_wr_en_reg_v2;
108wire ff_mbist_v3_reg_scanin;
109wire ff_mbist_v3_reg_scanout;
110wire mbist_run_reg_v3;
111wire [2:0] mbist_addr_reg_v3;
112wire mbist_fb_array_rd_en_reg_v3;
113wire mbist_fb_array_wr_en_reg_v3;
114wire ff_mbist_v4_reg_scanin;
115wire ff_mbist_v4_reg_scanout;
116wire mbist_run_reg_v4;
117wire [2:0] mbist_addr_reg_v4;
118wire mbist_fb_array_rd_en_reg_v4;
119wire mbist_fb_array_wr_en_reg_v4;
120wire mbist_run_v1_n;
121wire mbist_run_v2_n;
122wire mbist_run_v3_n;
123wire mbist_run_v4_n;
124wire mbist_run_n;
125wire fillbf_l2t_l2b_fbrd_en_c3_v4_1;
126wire fillbf_l2t_l2b_fbrd_en_c3_v3_1;
127wire fillbf_l2t_l2b_fbrd_en_c3_v2_1;
128wire fillbf_l2t_l2b_fbrd_en_c3_v1_1;
129wire fillbf_l2t_l2b_fbrd_en_c3_v4_2;
130wire fillbf_l2t_l2b_fbrd_en_c3_v3_2;
131wire fillbf_l2t_l2b_fbrd_en_c3_v2_2;
132wire fillbf_l2t_l2b_fbrd_en_c3_v1_2;
133wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v4_1;
134wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v3_1;
135wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v2_1;
136wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v1_1;
137wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v4_2;
138wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v3_2;
139wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v2_2;
140wire [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v1_2;
141wire ff_fillbf_control_reg_slice_scanin;
142wire ff_fillbf_control_reg_slice_scanout;
143wire l2t_l2b_fbd_stdatasel_c4;
144wire ff_l2t_l2b_fbwr_wen_r3_bfr_4_scanin;
145wire ff_l2t_l2b_fbwr_wen_r3_bfr_4_scanout;
146wire [15:0] fillbf_l2t_l2b_fbwr_wen_r3_bfr;
147wire ff_l2t_l2b_fbwr_wen_r3_bfr_3_scanin;
148wire ff_l2t_l2b_fbwr_wen_r3_bfr_3_scanout;
149wire ff_l2t_l2b_fbwr_wen_r3_bfr_2_scanin;
150wire ff_l2t_l2b_fbwr_wen_r3_bfr_2_scanout;
151wire ff_l2t_l2b_fbwr_wen_r3_bfr_1_scanin;
152wire ff_l2t_l2b_fbwr_wen_r3_bfr_1_scanout;
153wire fnl_fillbf_l2t_l2b_fbwr_wren_r3_v4;
154wire fnl_fillbf_l2t_l2b_fbwr_wren_r3_v3;
155wire fnl_fillbf_l2t_l2b_fbwr_wren_r3_v2;
156wire fnl_fillbf_l2t_l2b_fbwr_wren_r3_v1;
157wire fillbf_l2t_l2b_fbwr_wren_r3_v4_1;
158wire fillbf_l2t_l2b_fbwr_wren_r3_v4_2;
159wire fillbf_l2t_l2b_fbwr_wren_r3_v3_1;
160wire fillbf_l2t_l2b_fbwr_wren_r3_v3_2;
161wire fillbf_l2t_l2b_fbwr_wren_r3_v2_1;
162wire fillbf_l2t_l2b_fbwr_wren_r3_v2_2;
163wire fillbf_l2t_l2b_fbwr_wren_r3_v1_2;
164wire fillbf_l2t_l2b_fbwr_wren_r3_v1_1;
165wire ff_l2t_l2d_stdecc_c4_10_scanin;
166wire ff_l2t_l2d_stdecc_c4_10_scanout;
167wire [77:0] l2t_l2b_stdecc_c3;
168wire ff_l2t_l2d_stdecc_c4_11_scanin;
169wire ff_l2t_l2d_stdecc_c4_11_scanout;
170wire ff_l2t_l2d_stdecc_c4_1_scanin;
171wire ff_l2t_l2d_stdecc_c4_1_scanout;
172wire ff_l2t_l2d_stdecc_c4_2_scanin;
173wire ff_l2t_l2d_stdecc_c4_2_scanout;
174wire [155:0] l2t_decc_in;
175wire [155:0] btu_l2b_decc_r2a;
176wire ff_btu_l2b_decc_r3_1a_scanin;
177wire ff_btu_l2b_decc_r3_1a_scanout;
178wire [155:0] btu_l2b_decc_r2b;
179wire ff_btu_l2b_decc_r3_2a_scanin;
180wire ff_btu_l2b_decc_r3_2a_scanout;
181wire ff_btu_l2b_decc_r3_3a_scanin;
182wire ff_btu_l2b_decc_r3_3a_scanout;
183wire ff_btu_l2b_decc_r3_4a_scanin;
184wire ff_btu_l2b_decc_r3_4a_scanout;
185wire select_delay_mcu_n;
186wire ff_btu_l2b_decc_r3_1_scanin;
187wire ff_btu_l2b_decc_r3_1_scanout;
188wire ff_btu_l2b_decc_r3_2_scanin;
189wire ff_btu_l2b_decc_r3_2_scanout;
190wire ff_btu_l2b_decc_r3_3_scanin;
191wire ff_btu_l2b_decc_r3_3_scanout;
192wire ff_btu_l2b_decc_r3_4_scanin;
193wire ff_btu_l2b_decc_r3_4_scanout;
194wire l2t_l2b_fbd_stdatasel_c4_n;
195wire [38:0] fill_mbist_dout_0;
196wire ff_fill_mbist_dout_reg_0_scanin;
197wire ff_fill_mbist_dout_reg_0_scanout;
198wire [38:0] fill_mbist_dout_0_reg;
199wire [38:0] fill_mbist_dout_1;
200wire ff_fill_mbist_dout_reg_1_scanin;
201wire ff_fill_mbist_dout_reg_1_scanout;
202wire [38:0] fill_mbist_dout_1_reg;
203wire [38:0] fill_mbist_dout_2;
204wire ff_fill_mbist_dout_reg_2_scanin;
205wire ff_fill_mbist_dout_reg_2_scanout;
206wire [38:0] fill_mbist_dout_2_reg;
207wire [38:0] fill_mbist_dout_3;
208wire ff_fill_mbist_dout_reg_3_scanin;
209wire ff_fill_mbist_dout_reg_3_scanout;
210wire [38:0] fill_mbist_dout_3_reg;
211wire select_mbist_10;
212wire select_mbist_1;
213wire select_mbist_20;
214wire select_mbist_2;
215wire select_mbist_30;
216wire select_mbist_3;
217wire select_mbist_40;
218wire select_mbist_4;
219wire [38:0] fill_mbist_dout;
220wire select_mbist_cmp_0;
221wire fbuf_mux_sel_r1_0_;
222wire fbuf_mux_sel_r1_4_;
223wire fbuf_mux_sel_r1_8_;
224wire fbuf_mux_sel_r1_12_;
225wire select_mbist_cmp_1;
226wire fbuf_mux_sel_r1_1_;
227wire fbuf_mux_sel_r1_5_;
228wire fbuf_mux_sel_r1_9_;
229wire fbuf_mux_sel_r1_13_;
230wire select_mbist_cmp_2;
231wire fbuf_mux_sel_r1_2_;
232wire fbuf_mux_sel_r1_6_;
233wire fbuf_mux_sel_r1_10_;
234wire fbuf_mux_sel_r1_14_;
235wire select_mbist_cmp_3;
236wire fbuf_mux_sel_r1_3_;
237wire fbuf_mux_sel_r1_7_;
238wire fbuf_mux_sel_r1_11_;
239wire fbuf_mux_sel_r1_15_;
240wire [155:0] fbuf_compare_data;
241wire [38:0] fill_mbist_cmp_dout;
242wire fb_rw_fail1;
243wire fb_rw_fail2;
244wire fb_rw_fail_unreg;
245wire mux_fb_rw_fail_unreg;
246wire mbist_fb_array_rd_en_reg4;
247wire ff_fb_rw_fail_scanin;
248wire ff_fb_rw_fail_scanout;
249
250
251input l2clk;
252input l2t_l2b_fbrd_en_c3;
253input [2:0] l2t_l2b_fbrd_wl_c3;
254input [15:0] l2t_l2b_fbwr_wen_r2; // mcu Fill or store in OFF mode.
255input [2:0] l2t_l2b_fbwr_wl_r2; // mcu Fill entry.
256input l2t_l2b_fbd_stdatasel_c3; // select store data in OFF mode
257input [77:0] l2t_l2b_stdecc_c2; // store data goes to l2b and l2d
258input [127:0] mcu_l2b_data_r2; // fill data.
259input [27:0] mcu_l2b_ecc_r2; // fill ecc
260
261
262input tcu_aclk;
263input tcu_bclk;
264input tcu_scan_en;
265input tcu_pce_ov;
266input tcu_clk_stop;
267input scan_in;
268// BIST
269input [2:0] mbist_addr;
270input mbist_run;
271output fb_rw_fail;
272input [7:0] fb_mbist_data;
273input mbist_fb_array_rd_en;
274input mbist_fb_array_wr_en;
275input select_delay_mcu;
276
277
278output scan_out;
279output fillbf_l2t_l2b_fbrd_en_c3_v1;
280output fillbf_l2t_l2b_fbrd_en_c3_v2;
281output fillbf_l2t_l2b_fbrd_en_c3_v3;
282output fillbf_l2t_l2b_fbrd_en_c3_v4;
283output [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v1;
284output [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v2;
285output [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v3;
286output [2:0] fillbf_l2t_l2b_fbrd_wl_c3_v4;
287
288output [15:0] fillbf_l2t_l2b_fbwr_wen_r3; // mcu Fill or store in OFF mode.
289output fillbf_l2t_l2b_fbwr_wren_r3_v4;
290output fillbf_l2t_l2b_fbwr_wren_r3_v3;
291output fillbf_l2t_l2b_fbwr_wren_r3_v2;
292output fillbf_l2t_l2b_fbwr_wren_r3_v1;
293output [2:0] fillbf_l2t_l2b_fbwr_wl_r3_v1; // mcu Fill entry.
294output [2:0] fillbf_l2t_l2b_fbwr_wl_r3_v2;
295output [2:0] fillbf_l2t_l2b_fbwr_wl_r3_v3;
296output [2:0] fillbf_l2t_l2b_fbwr_wl_r3_v4;
297output [623:0] fillbf_fb_array_din; // FB read data
298
299input [623:0] l2b_l2d_fbdecc_c4;
300input [15:0] fbuf_mux_sel;
301//output [77:0] fill_mbist_dout;
302
303
304////////////////////////////////////////////////////////////////////////////////
305// Wire decleration
306////////////////////////////////////////////////////////////////////////////////
307
308wire [ 77:0] l2t_l2d_stdecc_c4;
309wire [155:0] btu_l2b_decc_r2, btu_l2b_decc_r3;
310wire [623:0] ram_decc;
311wire [623:0] l2t_decc;
312wire [2:0] fillbf_l2t_l2b_fbwr_wl_r3;
313
314////////////////////////////////////////////////////////////////////////////////
315
316assign pce_ov = tcu_pce_ov;
317assign stop = tcu_clk_stop;
318assign siclk = tcu_aclk;
319assign soclk = tcu_bclk;
320assign se = tcu_scan_en;
321
322l2b_fillbf_dp_msff_macro__stack_56c__width_56 ff_mbist_run
323 (
324 .scan_in(ff_mbist_run_scanin),
325 .scan_out(ff_mbist_run_scanout),
326 .dout ({fb_mbist_data_r2[7:0],fb_mbist_data_r1[7:0],mbist_run_reg,mbist_addr_reg[2:0],
327 mbist_fb_array_rd_en_reg3,mbist_fb_array_rd_en_reg2,mbist_fb_array_rd_en_reg,mbist_fb_array_wr_en_reg,
328 fbuf_mux_sel_r1[15:0],fbuf_mux_sel_r2[15:0]}),
329 .din ({fb_mbist_data_r1[7:0],fb_mbist_data[7:0],mbist_run,mbist_addr[2:0],
330 mbist_fb_array_rd_en_reg2,mbist_fb_array_rd_en_reg,mbist_fb_array_rd_en,mbist_fb_array_wr_en,
331 fbuf_mux_sel[15:0],fbuf_mux_sel_r1[15:0]}),
332 .clk (l2clk),
333 .en (1'b1),
334 .se(se),
335 .siclk(siclk),
336 .soclk(soclk),
337 .pce_ov(pce_ov),
338 .stop(stop)
339 );
340
341
342l2b_fillbf_dp_msff_macro__stack_6c__width_6 ff_mbist_v1_reg
343 (
344 .scan_in(ff_mbist_v1_reg_scanin),
345 .scan_out(ff_mbist_v1_reg_scanout),
346 .dout ({mbist_run_reg_v1,mbist_addr_reg_v1[2:0],mbist_fb_array_rd_en_reg_v1,mbist_fb_array_wr_en_reg_v1}),
347 .din ({mbist_run,mbist_addr_reg[2:0],mbist_fb_array_rd_en_reg,mbist_fb_array_wr_en_reg}),
348 .clk (l2clk),
349 .en (1'b1),
350 .se(se),
351 .siclk(siclk),
352 .soclk(soclk),
353 .pce_ov(pce_ov),
354 .stop(stop)
355 );
356
357
358l2b_fillbf_dp_msff_macro__stack_6c__width_6 ff_mbist_v2_reg
359 (
360 .scan_in(ff_mbist_v2_reg_scanin),
361 .scan_out(ff_mbist_v2_reg_scanout),
362 .dout ({mbist_run_reg_v2,mbist_addr_reg_v2[2:0],mbist_fb_array_rd_en_reg_v2,mbist_fb_array_wr_en_reg_v2}),
363 .din ({mbist_run,mbist_addr_reg[2:0],mbist_fb_array_rd_en_reg,mbist_fb_array_wr_en_reg}),
364 .clk (l2clk),
365 .en (1'b1),
366 .se(se),
367 .siclk(siclk),
368 .soclk(soclk),
369 .pce_ov(pce_ov),
370 .stop(stop)
371 );
372
373
374l2b_fillbf_dp_msff_macro__stack_6c__width_6 ff_mbist_v3_reg
375 (
376 .scan_in(ff_mbist_v3_reg_scanin),
377 .scan_out(ff_mbist_v3_reg_scanout),
378 .dout ({mbist_run_reg_v3,mbist_addr_reg_v3[2:0],mbist_fb_array_rd_en_reg_v3,mbist_fb_array_wr_en_reg_v3}),
379 .din ({mbist_run,mbist_addr_reg[2:0],mbist_fb_array_rd_en_reg,mbist_fb_array_wr_en_reg}),
380 .clk (l2clk),
381 .en (1'b1),
382 .se(se),
383 .siclk(siclk),
384 .soclk(soclk),
385 .pce_ov(pce_ov),
386 .stop(stop)
387 );
388
389
390l2b_fillbf_dp_msff_macro__stack_6c__width_6 ff_mbist_v4_reg
391 (
392 .scan_in(ff_mbist_v4_reg_scanin),
393 .scan_out(ff_mbist_v4_reg_scanout),
394 .dout ({mbist_run_reg_v4,mbist_addr_reg_v4[2:0],mbist_fb_array_rd_en_reg_v4,mbist_fb_array_wr_en_reg_v4}),
395 .din ({mbist_run,mbist_addr_reg[2:0],mbist_fb_array_rd_en_reg,mbist_fb_array_wr_en_reg}),
396 .clk (l2clk),
397 .en (1'b1),
398 .se(se),
399 .siclk(siclk),
400 .soclk(soclk),
401 .pce_ov(pce_ov),
402 .stop(stop)
403 );
404
405
406l2b_fillbf_dp_inv_macro__width_1 inv_mbist_run_v1
407 (
408 .dout (mbist_run_v1_n),
409 .din (mbist_run_reg_v1)
410 );
411
412l2b_fillbf_dp_inv_macro__width_1 inv_mbist_run_v2
413 (
414 .dout (mbist_run_v2_n),
415 .din (mbist_run_reg_v2)
416 );
417
418l2b_fillbf_dp_inv_macro__width_1 inv_mbist_run_v3
419 (
420 .dout (mbist_run_v3_n),
421 .din (mbist_run_reg_v3)
422 );
423
424l2b_fillbf_dp_inv_macro__width_1 inv_mbist_run_v4
425 (
426 .dout (mbist_run_v4_n),
427 .din (mbist_run_reg_v4)
428 );
429
430l2b_fillbf_dp_inv_macro__width_1 inv_mbist_run
431 (
432 .dout (mbist_run_n),
433 .din (mbist_run_reg)
434 );
435
436//mux_macro l2t_l2b_fbrd_en_c3_v1_mux (width=1,mux=aonpe,ports=2,stack=2r)
437// (
438// .dout (fillbf_l2t_l2b_fbrd_en_c3_v1),
439// .din0 (l2t_l2b_fbrd_en_c3),
440// .din1 (mbist_fb_array_rd_en_reg_v1),
441// .sel0 (mbist_run_v1_n),
442// .sel1 (mbist_run_reg_v1)
443// );
444//
445//mux_macro l2t_l2b_fbrd_en_c3_v2_mux (width=1,mux=aonpe,ports=2,stack=2r)
446// (
447// .dout (fillbf_l2t_l2b_fbrd_en_c3_v2),
448// .din0 (l2t_l2b_fbrd_en_c3),
449// .din1 (mbist_fb_array_rd_en_reg_v2),
450// .sel0 (mbist_run_v2_n),
451// .sel1 (mbist_run_reg_v2)
452// );
453//
454//mux_macro l2t_l2b_fbrd_en_c3_v3_mux (width=1,mux=aonpe,ports=2,stack=2r)
455// (
456// .dout (fillbf_l2t_l2b_fbrd_en_c3_v3),
457// .din0 (l2t_l2b_fbrd_en_c3),
458// .din1 (mbist_fb_array_rd_en_reg_v3),
459// .sel0 (mbist_run_v3_n),
460// .sel1 (mbist_run_reg_v3)
461// );
462//
463//mux_macro l2t_l2b_fbrd_en_c3_v4_mux (width=1,mux=aonpe,ports=2,stack=2r)
464// (
465// .dout (fillbf_l2t_l2b_fbrd_en_c3_v4),
466// .din0 (l2t_l2b_fbrd_en_c3),
467// .din1 (mbist_fb_array_rd_en_reg_v4),
468// .sel0 (mbist_run_v4_n),
469// .sel1 (mbist_run_reg_v4)
470// );
471
472l2b_fillbf_dp_nand_macro__dnand_8x__ports_2__stack_4r__width_4 nand_l2t_l2b_fbrd_en_c3_a
473 (
474 .dout ({fillbf_l2t_l2b_fbrd_en_c3_v4_1,
475 fillbf_l2t_l2b_fbrd_en_c3_v3_1,
476 fillbf_l2t_l2b_fbrd_en_c3_v2_1,
477 fillbf_l2t_l2b_fbrd_en_c3_v1_1}),
478 .din0 ({4{l2t_l2b_fbrd_en_c3}}),
479 .din1 ({mbist_run_v4_n,mbist_run_v3_n,
480 mbist_run_v2_n,mbist_run_v1_n})
481 );
482
483l2b_fillbf_dp_nand_macro__dnand_8x__ports_2__stack_4r__width_4 nand_l2t_l2b_fbrd_en_c3_b
484 (
485 .dout ({fillbf_l2t_l2b_fbrd_en_c3_v4_2,
486 fillbf_l2t_l2b_fbrd_en_c3_v3_2,
487 fillbf_l2t_l2b_fbrd_en_c3_v2_2,
488 fillbf_l2t_l2b_fbrd_en_c3_v1_2}),
489 .din0 ({mbist_fb_array_rd_en_reg_v4,
490 mbist_fb_array_rd_en_reg_v3,
491 mbist_fb_array_rd_en_reg_v2,
492 mbist_fb_array_rd_en_reg_v1}),
493 .din1 ({mbist_run_reg_v4,mbist_run_reg_v3,mbist_run_reg_v2,mbist_run_reg_v1})
494 );
495
496l2b_fillbf_dp_nand_macro__dnand_32x__ports_2__stack_4r__width_4 nand_l2t_l2b_fbrd_en_c3
497 (
498 .dout ({fillbf_l2t_l2b_fbrd_en_c3_v4,
499 fillbf_l2t_l2b_fbrd_en_c3_v3,
500 fillbf_l2t_l2b_fbrd_en_c3_v2,
501 fillbf_l2t_l2b_fbrd_en_c3_v1}),
502 .din0 ({fillbf_l2t_l2b_fbrd_en_c3_v4_1,
503 fillbf_l2t_l2b_fbrd_en_c3_v3_1,
504 fillbf_l2t_l2b_fbrd_en_c3_v2_1,
505 fillbf_l2t_l2b_fbrd_en_c3_v1_1}),
506 .din1 ({fillbf_l2t_l2b_fbrd_en_c3_v4_2,
507 fillbf_l2t_l2b_fbrd_en_c3_v3_2,
508 fillbf_l2t_l2b_fbrd_en_c3_v2_2,
509 fillbf_l2t_l2b_fbrd_en_c3_v1_2})
510 );
511
512
513
514//mux_macro l2t_l2b_fbrd_wl_c3_v1_mux (width=3,mux=aonpe,ports=2,stack=4r)
515// (
516// .dout (fillbf_l2t_l2b_fbrd_wl_c3_v1[2:0]),
517// .din0 (l2t_l2b_fbrd_wl_c3[2:0]),
518// .din1 (mbist_addr_reg_v1[2:0]),
519// .sel0 (mbist_run_v1_n),
520// .sel1 (mbist_run_reg_v1)
521// );
522//
523//mux_macro l2t_l2b_fbrd_wl_c3_v2_mux (width=3,mux=aonpe,ports=2,stack=4r)
524// (
525// .dout (fillbf_l2t_l2b_fbrd_wl_c3_v2[2:0]),
526// .din0 (l2t_l2b_fbrd_wl_c3[2:0]),
527// .din1 (mbist_addr_reg_v2[2:0]),
528// .sel0 (mbist_run_v2_n),
529// .sel1 (mbist_run_reg_v2)
530// );
531//
532//mux_macro l2t_l2b_fbrd_wl_c3_v3_mux (width=3,mux=aonpe,ports=2,stack=4r)
533// (
534// .dout (fillbf_l2t_l2b_fbrd_wl_c3_v3[2:0]),
535// .din0 (l2t_l2b_fbrd_wl_c3[2:0]),
536// .din1 (mbist_addr_reg_v3[2:0]),
537// .sel0 (mbist_run_v3_n),
538// .sel1 (mbist_run_reg_v3)
539// );
540//
541//mux_macro l2t_l2b_fbrd_wl_c3_v4_mux (width=3,mux=aonpe,ports=2,stack=4r)
542// (
543// .dout (fillbf_l2t_l2b_fbrd_wl_c3_v4[2:0]),
544// .din0 (l2t_l2b_fbrd_wl_c3[2:0]),
545// .din1 (mbist_addr_reg_v4[2:0]),
546// .sel0 (mbist_run_v4_n),
547// .sel1 (mbist_run_reg_v4)
548// );
549
550l2b_fillbf_dp_nand_macro__dnand_8x__ports_2__stack_12r__width_12 nand_l2t_l2b_fbrd_wl_c3_a
551 (
552 .dout ({fillbf_l2t_l2b_fbrd_wl_c3_v4_1[2:0],
553 fillbf_l2t_l2b_fbrd_wl_c3_v3_1[2:0],
554 fillbf_l2t_l2b_fbrd_wl_c3_v2_1[2:0],
555 fillbf_l2t_l2b_fbrd_wl_c3_v1_1[2:0]}),
556 .din0 ({ mbist_addr_reg_v4[2:0],
557 mbist_addr_reg_v3[2:0],
558 mbist_addr_reg_v2[2:0],
559 mbist_addr_reg_v1[2:0]}),
560 .din1 ({{3{mbist_run_reg_v4}},
561 {3{mbist_run_reg_v3}},
562 {3{mbist_run_reg_v2}},
563 {3{mbist_run_reg_v1}}})
564 );
565
566l2b_fillbf_dp_nand_macro__dnand_8x__ports_2__stack_12r__width_12 nand_l2t_l2b_fbrd_wl_c3_b
567 (
568 .dout ({fillbf_l2t_l2b_fbrd_wl_c3_v4_2[2:0],
569 fillbf_l2t_l2b_fbrd_wl_c3_v3_2[2:0],
570 fillbf_l2t_l2b_fbrd_wl_c3_v2_2[2:0],
571 fillbf_l2t_l2b_fbrd_wl_c3_v1_2[2:0]}),
572 .din0 ({4{l2t_l2b_fbrd_wl_c3[2:0]}}),
573 .din1 ({{3{mbist_run_v4_n}},
574 {3{mbist_run_v3_n}},
575 {3{mbist_run_v2_n}},
576 {3{mbist_run_v1_n}}})
577 );
578
579l2b_fillbf_dp_nand_macro__dnand_32x__ports_2__stack_12r__width_12 nand_l2t_l2b_fbrd_wl_c3
580 (
581 .dout ({fillbf_l2t_l2b_fbrd_wl_c3_v4[2:0],
582 fillbf_l2t_l2b_fbrd_wl_c3_v3[2:0],
583 fillbf_l2t_l2b_fbrd_wl_c3_v2[2:0],
584 fillbf_l2t_l2b_fbrd_wl_c3_v1[2:0]}),
585 .din0 ({fillbf_l2t_l2b_fbrd_wl_c3_v4_2[2:0],
586 fillbf_l2t_l2b_fbrd_wl_c3_v3_2[2:0],
587 fillbf_l2t_l2b_fbrd_wl_c3_v2_2[2:0],
588 fillbf_l2t_l2b_fbrd_wl_c3_v1_2[2:0]}),
589 .din1 ({fillbf_l2t_l2b_fbrd_wl_c3_v4_1[2:0],
590 fillbf_l2t_l2b_fbrd_wl_c3_v3_1[2:0],
591 fillbf_l2t_l2b_fbrd_wl_c3_v2_1[2:0],
592 fillbf_l2t_l2b_fbrd_wl_c3_v1_1[2:0]})
593 );
594
595
596
597
598
599
600
601
602// assign fillbf_l2t_l2b_fbrd_en_c3_v1 = l2t_l2b_fbrd_en_c3_fnl;
603// assign fillbf_l2t_l2b_fbrd_en_c3_v2 = l2t_l2b_fbrd_en_c3_fnl;
604// assign fillbf_l2t_l2b_fbrd_en_c3_v3 = l2t_l2b_fbrd_en_c3_fnl;
605// assign fillbf_l2t_l2b_fbrd_en_c3_v4 = l2t_l2b_fbrd_en_c3_fnl;
606
607// assign fillbf_l2t_l2b_fbrd_wl_c3_v1[2:0] = l2t_l2b_fbrd_wl_c3_fnl[2:0];
608// assign fillbf_l2t_l2b_fbrd_wl_c3_v2[2:0] = l2t_l2b_fbrd_wl_c3_fnl[2:0];
609// assign fillbf_l2t_l2b_fbrd_wl_c3_v3[2:0] = l2t_l2b_fbrd_wl_c3_fnl[2:0];
610// assign fillbf_l2t_l2b_fbrd_wl_c3_v4[2:0] = l2t_l2b_fbrd_wl_c3_fnl[2:0];
611
612
613l2b_fillbf_dp_msff_macro__stack_4r__width_4 ff_fillbf_control_reg_slice
614 (
615 .scan_in(ff_fillbf_control_reg_slice_scanin),
616 .scan_out(ff_fillbf_control_reg_slice_scanout),
617 .dout ({l2t_l2b_fbd_stdatasel_c4,fillbf_l2t_l2b_fbwr_wl_r3[2:0]}),
618 .din ({l2t_l2b_fbd_stdatasel_c3, l2t_l2b_fbwr_wl_r2[2:0]}),
619 .clk (l2clk),
620 .en (1'b1),
621 .se(se),
622 .siclk(siclk),
623 .soclk(soclk),
624 .pce_ov(pce_ov),
625 .stop(stop)
626 ) ;
627
628l2b_fillbf_dp_msff_macro__stack_4r__width_4 ff_l2t_l2b_fbwr_wen_r3_bfr_4
629 (
630 .scan_in(ff_l2t_l2b_fbwr_wen_r3_bfr_4_scanin),
631 .scan_out(ff_l2t_l2b_fbwr_wen_r3_bfr_4_scanout),
632 .dout ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[6],
633 fillbf_l2t_l2b_fbwr_wen_r3_bfr[4],
634 fillbf_l2t_l2b_fbwr_wen_r3_bfr[2],
635 fillbf_l2t_l2b_fbwr_wen_r3_bfr[0]}),
636 .din ({ l2t_l2b_fbwr_wen_r2[6],
637 l2t_l2b_fbwr_wen_r2[4],
638 l2t_l2b_fbwr_wen_r2[2],
639 l2t_l2b_fbwr_wen_r2[0]}),
640 .clk (l2clk),
641 .en (1'b1),
642 .se(se),
643 .siclk(siclk),
644 .soclk(soclk),
645 .pce_ov(pce_ov),
646 .stop(stop)
647 ) ;
648
649l2b_fillbf_dp_msff_macro__stack_4r__width_4 ff_l2t_l2b_fbwr_wen_r3_bfr_3
650 (
651 .scan_in(ff_l2t_l2b_fbwr_wen_r3_bfr_3_scanin),
652 .scan_out(ff_l2t_l2b_fbwr_wen_r3_bfr_3_scanout),
653 .dout ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[7],
654 fillbf_l2t_l2b_fbwr_wen_r3_bfr[5],
655 fillbf_l2t_l2b_fbwr_wen_r3_bfr[3],
656 fillbf_l2t_l2b_fbwr_wen_r3_bfr[1]}),
657 .din ({ l2t_l2b_fbwr_wen_r2[7],
658 l2t_l2b_fbwr_wen_r2[5],
659 l2t_l2b_fbwr_wen_r2[3],
660 l2t_l2b_fbwr_wen_r2[1]}),
661 .clk (l2clk),
662 .en (1'b1),
663 .se(se),
664 .siclk(siclk),
665 .soclk(soclk),
666 .pce_ov(pce_ov),
667 .stop(stop)
668 ) ;
669
670l2b_fillbf_dp_msff_macro__stack_4r__width_4 ff_l2t_l2b_fbwr_wen_r3_bfr_2
671 (
672 .scan_in(ff_l2t_l2b_fbwr_wen_r3_bfr_2_scanin),
673 .scan_out(ff_l2t_l2b_fbwr_wen_r3_bfr_2_scanout),
674 .dout ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[14],
675 fillbf_l2t_l2b_fbwr_wen_r3_bfr[12],
676 fillbf_l2t_l2b_fbwr_wen_r3_bfr[10],
677 fillbf_l2t_l2b_fbwr_wen_r3_bfr[8]}),
678 .din ({ l2t_l2b_fbwr_wen_r2[14],
679 l2t_l2b_fbwr_wen_r2[12],
680 l2t_l2b_fbwr_wen_r2[10],
681 l2t_l2b_fbwr_wen_r2[8]}),
682 .clk (l2clk),
683 .en (1'b1),
684 .se(se),
685 .siclk(siclk),
686 .soclk(soclk),
687 .pce_ov(pce_ov),
688 .stop(stop)
689 ) ;
690
691l2b_fillbf_dp_msff_macro__stack_4r__width_4 ff_l2t_l2b_fbwr_wen_r3_bfr_1
692 (
693 .scan_in(ff_l2t_l2b_fbwr_wen_r3_bfr_1_scanin),
694 .scan_out(ff_l2t_l2b_fbwr_wen_r3_bfr_1_scanout),
695 .dout ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[15],
696 fillbf_l2t_l2b_fbwr_wen_r3_bfr[13],
697 fillbf_l2t_l2b_fbwr_wen_r3_bfr[11],
698 fillbf_l2t_l2b_fbwr_wen_r3_bfr[9]}),
699 .din ({ l2t_l2b_fbwr_wen_r2[15],
700 l2t_l2b_fbwr_wen_r2[13],
701 l2t_l2b_fbwr_wen_r2[11],
702 l2t_l2b_fbwr_wen_r2[9]}),
703 .clk (l2clk),
704 .en (1'b1),
705 .se(se),
706 .siclk(siclk),
707 .soclk(soclk),
708 .pce_ov(pce_ov),
709 .stop(stop)
710 ) ;
711
712// mux_macro mux_fb_fnl_wordaddr (width=16,mux=aonpe,ports=2,stack=16r)
713// (
714// .dout (fillbf_l2t_l2b_fbwr_wen_r3[15:0]),
715// .din0 (fillbf_l2t_l2b_fbwr_wen_r3_bfr[15:0]),
716// .din1 ({16{mbist_fb_array_wr_en_reg}}),
717// .sel0 (mbist_run_n),
718// .sel1 (mbist_run_reg)
719// );
720
721l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_6r__width_5 l2t_l2b_fbwr_wen_r3_v4_mux
722 (
723 .dout ({fillbf_l2t_l2b_fbwr_wen_r3[6],
724 fillbf_l2t_l2b_fbwr_wen_r3[4],
725 fillbf_l2t_l2b_fbwr_wen_r3[2],
726 fillbf_l2t_l2b_fbwr_wen_r3[0],fillbf_l2t_l2b_fbwr_wren_r3_v4}),
727 .din0 ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[6],
728 fillbf_l2t_l2b_fbwr_wen_r3_bfr[4],
729 fillbf_l2t_l2b_fbwr_wen_r3_bfr[2],
730 fillbf_l2t_l2b_fbwr_wen_r3_bfr[0],fnl_fillbf_l2t_l2b_fbwr_wren_r3_v4}),
731 .din1 ({{4{mbist_fb_array_wr_en_reg_v1}},mbist_fb_array_wr_en_reg_v4}),
732 .sel0 (mbist_run_v4_n),
733 .sel1 (mbist_run_reg_v4)
734 );
735
736l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_6r__width_5 l2t_l2b_fbwr_wen_r3_v3_mux
737 (
738 .dout ({fillbf_l2t_l2b_fbwr_wen_r3[7],
739 fillbf_l2t_l2b_fbwr_wen_r3[5],
740 fillbf_l2t_l2b_fbwr_wen_r3[3],
741 fillbf_l2t_l2b_fbwr_wen_r3[1],fillbf_l2t_l2b_fbwr_wren_r3_v3}),
742 .din0 ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[7],
743 fillbf_l2t_l2b_fbwr_wen_r3_bfr[5],
744 fillbf_l2t_l2b_fbwr_wen_r3_bfr[3],
745 fillbf_l2t_l2b_fbwr_wen_r3_bfr[1],fnl_fillbf_l2t_l2b_fbwr_wren_r3_v3}),
746 .din1 ({{4{mbist_fb_array_wr_en_reg_v3}},mbist_fb_array_wr_en_reg_v3}),
747 .sel0 (mbist_run_v3_n),
748 .sel1 (mbist_run_reg_v3)
749 );
750
751l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_6r__width_5 l2t_l2b_fbwr_wen_r3_v2_mux
752 (
753 .dout ({fillbf_l2t_l2b_fbwr_wen_r3[14],
754 fillbf_l2t_l2b_fbwr_wen_r3[12],
755 fillbf_l2t_l2b_fbwr_wen_r3[10],
756 fillbf_l2t_l2b_fbwr_wen_r3[8],fillbf_l2t_l2b_fbwr_wren_r3_v2}),
757 .din0 ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[14],
758 fillbf_l2t_l2b_fbwr_wen_r3_bfr[12],
759 fillbf_l2t_l2b_fbwr_wen_r3_bfr[10],
760 fillbf_l2t_l2b_fbwr_wen_r3_bfr[8],fnl_fillbf_l2t_l2b_fbwr_wren_r3_v2}),
761 .din1 ({{4{mbist_fb_array_wr_en_reg_v2}},mbist_fb_array_wr_en_reg_v2}),
762 .sel0 (mbist_run_v2_n),
763 .sel1 (mbist_run_reg_v2)
764 );
765
766l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_6r__width_5 l2t_l2b_fbwr_wen_r3_v1_mux
767 (
768 .dout ({fillbf_l2t_l2b_fbwr_wen_r3[15],
769 fillbf_l2t_l2b_fbwr_wen_r3[13],
770 fillbf_l2t_l2b_fbwr_wen_r3[11],
771 fillbf_l2t_l2b_fbwr_wen_r3[9], fillbf_l2t_l2b_fbwr_wren_r3_v1}),
772 .din0 ({fillbf_l2t_l2b_fbwr_wen_r3_bfr[15],
773 fillbf_l2t_l2b_fbwr_wen_r3_bfr[13],
774 fillbf_l2t_l2b_fbwr_wen_r3_bfr[11],
775 fillbf_l2t_l2b_fbwr_wen_r3_bfr[9],fnl_fillbf_l2t_l2b_fbwr_wren_r3_v1}),
776 .din1 ({{4{mbist_fb_array_wr_en_reg_v1}},mbist_fb_array_wr_en_reg_v1}),
777 .sel0 (mbist_run_v1_n),
778 .sel1 (mbist_run_reg_v1)
779 );
780
781
782
783l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v4_slice1
784 (
785 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v4_1),
786 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[6]),
787 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[4])
788 );
789
790l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v4_slice2
791 (
792 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v4_2),
793 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[2]),
794 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[0])
795 );
796
797l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v4_slice3
798 (
799 .dout (fnl_fillbf_l2t_l2b_fbwr_wren_r3_v4),
800 .din0 (fillbf_l2t_l2b_fbwr_wren_r3_v4_1),
801 .din1 (fillbf_l2t_l2b_fbwr_wren_r3_v4_2)
802 );
803///
804l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v3_slice1
805 (
806 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v3_1),
807 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[7]),
808 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[5])
809 );
810
811l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v3_slice2
812 (
813 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v3_2),
814 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[3]),
815 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[1])
816 );
817
818l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v3_slice3
819 (
820 .dout (fnl_fillbf_l2t_l2b_fbwr_wren_r3_v3),
821 .din0 (fillbf_l2t_l2b_fbwr_wren_r3_v3_1),
822 .din1 (fillbf_l2t_l2b_fbwr_wren_r3_v3_2)
823 );
824
825///
826l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v2_slice1
827 (
828 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v2_1),
829 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[14]),
830 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[12])
831 );
832
833l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v2_slice2
834 (
835 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v2_2),
836 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[10]),
837 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[8])
838 );
839l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v2_slice3
840 (
841 .dout (fnl_fillbf_l2t_l2b_fbwr_wren_r3_v2),
842 .din0 (fillbf_l2t_l2b_fbwr_wren_r3_v2_1),
843 .din1 (fillbf_l2t_l2b_fbwr_wren_r3_v2_2)
844 );
845
846///
847
848l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v1_slice1
849 (
850 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v1_2),
851 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[15]),
852 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[13])
853 );
854
855l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v1_slice2
856 (
857 .dout (fillbf_l2t_l2b_fbwr_wren_r3_v1_1),
858 .din0 (fillbf_l2t_l2b_fbwr_wen_r3[11]),
859 .din1 (fillbf_l2t_l2b_fbwr_wen_r3[9])
860 );
861
862l2b_fillbf_dp_or_macro__width_1 fillbf_l2t_l2b_fbwr_wren_r3_v1_slice3
863 (
864 .dout (fnl_fillbf_l2t_l2b_fbwr_wren_r3_v1),
865 .din0 (fillbf_l2t_l2b_fbwr_wren_r3_v1_1),
866 .din1 (fillbf_l2t_l2b_fbwr_wren_r3_v1_2)
867 );
868
869/// CHANGE
870
871//msff_macro ff_fbwr_wl_r3 (width=3)
872// (
873// .dout (fillbf_l2t_l2b_fbwr_wl_r3[2:0]),
874// .din (l2t_l2b_fbwr_wl_r2[2:0]),
875// .clk (l2clk),
876// .en (1'b1),
877// .scan_in (),
878// .scan_out ()
879// ) ;
880
881
882l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_4r__width_3 l2t_l2b_fbwr_wl_r3_v1_mux
883 (
884 .dout (fillbf_l2t_l2b_fbwr_wl_r3_v1[2:0]),
885 .din0 (fillbf_l2t_l2b_fbwr_wl_r3[2:0]),
886 .din1 (mbist_addr_reg_v1[2:0]),
887 .sel0 (mbist_run_n),
888 .sel1 (mbist_run_reg)
889 );
890
891
892l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_4r__width_3 l2t_l2b_fbwr_wl_r3_v2_mux
893 (
894 .dout (fillbf_l2t_l2b_fbwr_wl_r3_v2[2:0]),
895 .din0 (fillbf_l2t_l2b_fbwr_wl_r3[2:0]),
896 .din1 (mbist_addr_reg_v2[2:0]),
897 .sel0 (mbist_run_n),
898 .sel1 (mbist_run_reg)
899 );
900
901l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_4r__width_3 l2t_l2b_fbwr_wl_r3_v3_mux
902 (
903 .dout (fillbf_l2t_l2b_fbwr_wl_r3_v3[2:0]),
904 .din0 (fillbf_l2t_l2b_fbwr_wl_r3[2:0]),
905 .din1 (mbist_addr_reg_v3[2:0]),
906 .sel0 (mbist_run_n),
907 .sel1 (mbist_run_reg)
908 );
909
910
911l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_4r__width_3 l2t_l2b_fbwr_wl_r3_v4_mux
912 (
913 .dout (fillbf_l2t_l2b_fbwr_wl_r3_v4[2:0]),
914 .din0 (fillbf_l2t_l2b_fbwr_wl_r3[2:0]),
915 .din1 (mbist_addr_reg_v4[2:0]),
916 .sel0 (mbist_run_n),
917 .sel1 (mbist_run_reg)
918 );
919
920// assign fillbf_l2t_l2b_fbwr_wl_r3_v1[2:0] = fillbf_l2t_l2b_fbwr_wl_r3_fnl[2:0] ;
921// assign fillbf_l2t_l2b_fbwr_wl_r3_v2[2:0] = fillbf_l2t_l2b_fbwr_wl_r3_fnl[2:0] ;
922// assign fillbf_l2t_l2b_fbwr_wl_r3_v3[2:0] = fillbf_l2t_l2b_fbwr_wl_r3_fnl[2:0] ;
923// assign fillbf_l2t_l2b_fbwr_wl_r3_v4[2:0] = fillbf_l2t_l2b_fbwr_wl_r3_fnl[2:0] ;
924
925
926l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_l2t_l2d_stdecc_c4_10
927 (
928 .scan_in(ff_l2t_l2d_stdecc_c4_10_scanin),
929 .scan_out(ff_l2t_l2d_stdecc_c4_10_scanout),
930 .dout (l2t_l2b_stdecc_c3[38:0]),
931 .din (l2t_l2b_stdecc_c2[38:0]),
932 .clk (l2clk),
933 .en (1'b1),
934 .se(se),
935 .siclk(siclk),
936 .soclk(soclk),
937 .pce_ov(pce_ov),
938 .stop(stop)
939 ) ;
940
941
942l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_l2t_l2d_stdecc_c4_11
943 (
944 .scan_in(ff_l2t_l2d_stdecc_c4_11_scanin),
945 .scan_out(ff_l2t_l2d_stdecc_c4_11_scanout),
946 .dout (l2t_l2b_stdecc_c3[77:39]),
947 .din (l2t_l2b_stdecc_c2[77:39]),
948 .clk (l2clk),
949 .en (1'b1),
950 .se(se),
951 .siclk(siclk),
952 .soclk(soclk),
953 .pce_ov(pce_ov),
954 .stop(stop)
955 ) ;
956
957
958
959l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_l2t_l2d_stdecc_c4_1
960 (
961 .scan_in(ff_l2t_l2d_stdecc_c4_1_scanin),
962 .scan_out(ff_l2t_l2d_stdecc_c4_1_scanout),
963 .dout (l2t_l2d_stdecc_c4[38:0]),
964 .din (l2t_l2b_stdecc_c3[38:0]),
965 .clk (l2clk),
966 .en (1'b1),
967 .se(se),
968 .siclk(siclk),
969 .soclk(soclk),
970 .pce_ov(pce_ov),
971 .stop(stop)
972 ) ;
973
974l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_l2t_l2d_stdecc_c4_2
975 (
976 .scan_in(ff_l2t_l2d_stdecc_c4_2_scanin),
977 .scan_out(ff_l2t_l2d_stdecc_c4_2_scanout),
978 .dout (l2t_l2d_stdecc_c4[77:39]),
979 .din (l2t_l2b_stdecc_c3[77:39]),
980 .clk (l2clk),
981 .en (1'b1),
982 .se(se),
983 .siclk(siclk),
984 .soclk(soclk),
985 .pce_ov(pce_ov),
986 .stop(stop)
987 ) ;
988
989
990l2b_fillbf_dp_buff_macro__stack_40r__width_39 buff_l2t_l2d_stdecc_c4_1
991 (
992 .dout (l2t_decc_in[38:0]),
993 .din (l2t_l2d_stdecc_c4[38:0])
994 );
995
996l2b_fillbf_dp_buff_macro__stack_40r__width_39 buff_l2t_l2d_stdecc_c4_2
997 (
998 .dout (l2t_decc_in[77:39]),
999 .din (l2t_l2d_stdecc_c4[77:39])
1000 );
1001
1002
1003l2b_fillbf_dp_buff_macro__stack_40r__width_39 buff_l2t_l2d_stdecc_c4_3
1004 (
1005 .dout (l2t_decc_in[116:78]),
1006 .din (l2t_l2d_stdecc_c4[38:0])
1007 );
1008
1009l2b_fillbf_dp_buff_macro__stack_40r__width_39 buff_l2t_l2d_stdecc_c4_4
1010 (
1011 .dout (l2t_decc_in[155:117]),
1012 .din (l2t_l2d_stdecc_c4[77:39])
1013 );
1014
1015
1016// assign l2t_decc = {8{l2t_l2d_stdecc_c4[77:0]}};
1017assign l2t_decc = {4{l2t_decc_in[155:0]}} ;
1018
1019assign btu_l2b_decc_r2a[155:0] = {mcu_l2b_data_r2[127:96], mcu_l2b_ecc_r2[27:21],
1020 mcu_l2b_data_r2[ 95:64], mcu_l2b_ecc_r2[20:14],
1021 mcu_l2b_data_r2[ 63:32], mcu_l2b_ecc_r2[13: 7],
1022 mcu_l2b_data_r2[ 31: 0], mcu_l2b_ecc_r2[ 6: 0]} ;
1023
1024
1025l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_1a
1026 (
1027 .scan_in(ff_btu_l2b_decc_r3_1a_scanin),
1028 .scan_out(ff_btu_l2b_decc_r3_1a_scanout),
1029 .dout (btu_l2b_decc_r2b[38:0]),
1030 .din (btu_l2b_decc_r2a[38:0]),
1031 .clk (l2clk),
1032 .en (1'b1),
1033 .se(se),
1034 .siclk(siclk),
1035 .soclk(soclk),
1036 .pce_ov(pce_ov),
1037 .stop(stop)
1038 ) ;
1039
1040l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_2a
1041 (
1042 .scan_in(ff_btu_l2b_decc_r3_2a_scanin),
1043 .scan_out(ff_btu_l2b_decc_r3_2a_scanout),
1044 .dout (btu_l2b_decc_r2b[77:39]),
1045 .din (btu_l2b_decc_r2a[77:39]),
1046 .clk (l2clk),
1047 .en (1'b1),
1048 .se(se),
1049 .siclk(siclk),
1050 .soclk(soclk),
1051 .pce_ov(pce_ov),
1052 .stop(stop)
1053 ) ;
1054
1055l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_3a
1056 (
1057 .scan_in(ff_btu_l2b_decc_r3_3a_scanin),
1058 .scan_out(ff_btu_l2b_decc_r3_3a_scanout),
1059 .dout (btu_l2b_decc_r2b[116:78]),
1060 .din (btu_l2b_decc_r2a[116:78]),
1061 .clk (l2clk),
1062 .en (1'b1),
1063 .se(se),
1064 .siclk(siclk),
1065 .soclk(soclk),
1066 .pce_ov(pce_ov),
1067 .stop(stop)
1068 ) ;
1069
1070l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_4a
1071 (
1072 .scan_in(ff_btu_l2b_decc_r3_4a_scanin),
1073 .scan_out(ff_btu_l2b_decc_r3_4a_scanout),
1074 .dout (btu_l2b_decc_r2b[155:117]),
1075 .din (btu_l2b_decc_r2a[155:117]),
1076 .clk (l2clk),
1077 .en (1'b1),
1078 .se(se),
1079 .siclk(siclk),
1080 .soclk(soclk),
1081 .pce_ov(pce_ov),
1082 .stop(stop)
1083 ) ;
1084
1085
1086l2b_fillbf_dp_inv_macro__width_1 inv_select_delay_mcu
1087 (
1088 .dout (select_delay_mcu_n),
1089 .din (select_delay_mcu)
1090 );
1091
1092l2b_fillbf_dp_mux_macro__dmux_8x__mux_aonpe__stack_40r__width_39 mux_btu_l2b_decc_r2_1
1093 (
1094 .dout (btu_l2b_decc_r2[155:117]),
1095 .din0 (btu_l2b_decc_r2b[155:117]),
1096 .din1 (btu_l2b_decc_r2a[155:117]),
1097 .sel0 (select_delay_mcu),
1098 .sel1 (select_delay_mcu_n)
1099 );
1100
1101l2b_fillbf_dp_mux_macro__dmux_8x__mux_aonpe__stack_40r__width_39 mux_btu_l2b_decc_r2_2
1102 (
1103 .dout (btu_l2b_decc_r2[116:78]),
1104 .din0 (btu_l2b_decc_r2b[116:78]),
1105 .din1 (btu_l2b_decc_r2a[116:78]),
1106 .sel0 (select_delay_mcu),
1107 .sel1 (select_delay_mcu_n)
1108 );
1109
1110l2b_fillbf_dp_mux_macro__dmux_8x__mux_aonpe__stack_40r__width_39 mux_btu_l2b_decc_r2_3
1111 (
1112 .dout (btu_l2b_decc_r2[77:39]),
1113 .din0 (btu_l2b_decc_r2b[77:39]),
1114 .din1 (btu_l2b_decc_r2a[77:39]),
1115 .sel0 (select_delay_mcu),
1116 .sel1 (select_delay_mcu_n)
1117 );
1118
1119l2b_fillbf_dp_mux_macro__dmux_8x__mux_aonpe__stack_40r__width_39 mux_btu_l2b_decc_r2_4
1120 (
1121 .dout (btu_l2b_decc_r2[38:0]),
1122 .din0 (btu_l2b_decc_r2b[38:0]),
1123 .din1 (btu_l2b_decc_r2a[38:0]),
1124 .sel0 (select_delay_mcu),
1125 .sel1 (select_delay_mcu_n)
1126 );
1127
1128//assign btu_l2b_decc_r2 = {mcu_l2b_data_r2[127:96], mcu_l2b_ecc_r2[27:21],
1129// mcu_l2b_data_r2[ 95:64], mcu_l2b_ecc_r2[20:14],
1130// mcu_l2b_data_r2[ 63:32], mcu_l2b_ecc_r2[13: 7],
1131// mcu_l2b_data_r2[ 31: 0], mcu_l2b_ecc_r2[ 6: 0]} ;
1132//
1133
1134l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_1
1135 (
1136 .scan_in(ff_btu_l2b_decc_r3_1_scanin),
1137 .scan_out(ff_btu_l2b_decc_r3_1_scanout),
1138 .dout (btu_l2b_decc_r3[38:0]),
1139 .din (btu_l2b_decc_r2[38:0]),
1140 .clk (l2clk),
1141 .en (1'b1),
1142 .se(se),
1143 .siclk(siclk),
1144 .soclk(soclk),
1145 .pce_ov(pce_ov),
1146 .stop(stop)
1147 ) ;
1148
1149l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_2
1150 (
1151 .scan_in(ff_btu_l2b_decc_r3_2_scanin),
1152 .scan_out(ff_btu_l2b_decc_r3_2_scanout),
1153 .dout (btu_l2b_decc_r3[77:39]),
1154 .din (btu_l2b_decc_r2[77:39]),
1155 .clk (l2clk),
1156 .en (1'b1),
1157 .se(se),
1158 .siclk(siclk),
1159 .soclk(soclk),
1160 .pce_ov(pce_ov),
1161 .stop(stop)
1162 ) ;
1163
1164l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_3
1165 (
1166 .scan_in(ff_btu_l2b_decc_r3_3_scanin),
1167 .scan_out(ff_btu_l2b_decc_r3_3_scanout),
1168 .dout (btu_l2b_decc_r3[116:78]),
1169 .din (btu_l2b_decc_r2[116:78]),
1170 .clk (l2clk),
1171 .en (1'b1),
1172 .se(se),
1173 .siclk(siclk),
1174 .soclk(soclk),
1175 .pce_ov(pce_ov),
1176 .stop(stop)
1177 ) ;
1178
1179l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_btu_l2b_decc_r3_4
1180 (
1181 .scan_in(ff_btu_l2b_decc_r3_4_scanin),
1182 .scan_out(ff_btu_l2b_decc_r3_4_scanout),
1183 .dout (btu_l2b_decc_r3[155:117]),
1184 .din (btu_l2b_decc_r2[155:117]),
1185 .clk (l2clk),
1186 .en (1'b1),
1187 .se(se),
1188 .siclk(siclk),
1189 .soclk(soclk),
1190 .pce_ov(pce_ov),
1191 .stop(stop)
1192 ) ;
1193
1194
1195
1196
1197assign ram_decc = {4{btu_l2b_decc_r3[155:0]}} ;
1198
1199
1200//msff_macro ff_fbd_stdatasel_c4 (width=1)
1201// (
1202// .dout (l2t_l2b_fbd_stdatasel_c4),
1203// .din (l2t_l2b_fbd_stdatasel_c3),
1204// .clk (l2clk),
1205// .en (1'b1),
1206// .scan_in (),
1207// .scan_out ()
1208// ) ;
1209
1210
1211l2b_fillbf_dp_inv_macro__width_1 sel1_fillbf_fb_array_din_mux
1212 (
1213 .dout (l2t_l2b_fbd_stdatasel_c4_n),
1214 .din (l2t_l2b_fbd_stdatasel_c4)
1215 );
1216
1217l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_1
1218 (
1219 .dout (fillbf_fb_array_din[38:0]),
1220 .din0 (ram_decc[38:0]),
1221 .din1 (l2t_decc[38:0]),
1222 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1223 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1224 );
1225l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_2
1226 (
1227 .dout (fillbf_fb_array_din[77:39]),
1228 .din0 (ram_decc[77:39]),
1229 .din1 (l2t_decc[77:39]),
1230 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1231 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1232 );
1233l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_3
1234 (
1235 .dout (fillbf_fb_array_din[116:78]),
1236 .din0 (ram_decc[116:78]),
1237 .din1 (l2t_decc[116:78]),
1238 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1239 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1240 );
1241
1242l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_4
1243 (
1244 .dout (fillbf_fb_array_din[155:117]),
1245 .din0 (ram_decc[155:117]),
1246 .din1 (l2t_decc[155:117]),
1247 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1248 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1249 );
1250l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_5
1251 (
1252 .dout (fillbf_fb_array_din[194:156]),
1253 .din0 (ram_decc[194:156]),
1254 .din1 (l2t_decc[194:156]),
1255 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1256 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1257 );
1258l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_6
1259 (
1260 .dout (fillbf_fb_array_din[233:195]),
1261 .din0 (ram_decc[233:195]),
1262 .din1 (l2t_decc[233:195]),
1263 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1264 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1265 );
1266l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_7
1267 (
1268 .dout (fillbf_fb_array_din[272:234]),
1269 .din0 (ram_decc[272:234]),
1270 .din1 (l2t_decc[272:234]),
1271 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1272 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1273 );
1274l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_8
1275 (
1276 .dout (fillbf_fb_array_din[311:273]),
1277 .din0 (ram_decc[311:273]),
1278 .din1 (l2t_decc[311:273]),
1279 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1280 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1281 );
1282l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_9
1283 (
1284 .dout (fillbf_fb_array_din[350:312]),
1285 .din0 (ram_decc[350:312]),
1286 .din1 (l2t_decc[350:312]),
1287 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1288 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1289 );
1290l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_10
1291 (
1292 .dout (fillbf_fb_array_din[389:351]),
1293 .din0 (ram_decc[389:351]),
1294 .din1 (l2t_decc[389:351]),
1295 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1296 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1297 );
1298l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_11
1299 (
1300 .dout (fillbf_fb_array_din[428:390]),
1301 .din0 (ram_decc[428:390]),
1302 .din1 (l2t_decc[428:390]),
1303 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1304 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1305 );
1306l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_12
1307 (
1308 .dout (fillbf_fb_array_din[467:429]),
1309 .din0 (ram_decc[467:429]),
1310 .din1 (l2t_decc[467:429]),
1311 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1312 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1313 );
1314l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_13
1315 (
1316 .dout (fillbf_fb_array_din[506:468]),
1317 .din0 (ram_decc[506:468]),
1318 .din1 (l2t_decc[506:468]),
1319 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1320 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1321 );
1322l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_14
1323 (
1324 .dout (fillbf_fb_array_din[545:507]),
1325 .din0 (ram_decc[545:507]),
1326 .din1 (l2t_decc[545:507]),
1327 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1328 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1329 );
1330l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_15
1331 (
1332 .dout (fillbf_fb_array_din[584:546]),
1333 .din0 (ram_decc[584:546]),
1334 .din1 (l2t_decc[584:546]),
1335 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1336 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1337 );
1338
1339l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 mux_fillbf_fb_array_din_16
1340 (
1341 .dout (fillbf_fb_array_din[623:585]),
1342 .din0 (ram_decc[623:585]),
1343 .din1 (l2t_decc[623:585]),
1344 .sel0 (l2t_l2b_fbd_stdatasel_c4_n),
1345 .sel1 (l2t_l2b_fbd_stdatasel_c4)
1346 );
1347
1348/////////////////// new 8:1 mux for mbist//////////////////
1349// input [623:0] l2b_l2d_fbdecc_c4;
1350// output [77:0] fill_mbist_dout;
1351
1352
1353l2b_fillbf_dp_mux_macro__mux_aonpe__ports_4__stack_40r__width_39 mux_fbuf_slice0
1354 (
1355 .dout (fill_mbist_dout_0[38:0]),
1356 .din0 (l2b_l2d_fbdecc_c4[38:0]),
1357 .din1 (l2b_l2d_fbdecc_c4[77:39]),
1358 .din2 (l2b_l2d_fbdecc_c4[116:78]),
1359 .din3 (l2b_l2d_fbdecc_c4[155:117]),
1360 .sel0 (fbuf_mux_sel_r1[0]),
1361 .sel1 (fbuf_mux_sel_r1[1]),
1362 .sel2 (fbuf_mux_sel_r1[2]),
1363 .sel3 (fbuf_mux_sel_r1[3])
1364 );
1365
1366l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_fill_mbist_dout_reg_0
1367 (
1368 .scan_in(ff_fill_mbist_dout_reg_0_scanin),
1369 .scan_out(ff_fill_mbist_dout_reg_0_scanout),
1370 .din (fill_mbist_dout_0[38:0]),
1371 .dout (fill_mbist_dout_0_reg[38:0]),
1372 .clk (l2clk),
1373 .en (1'b1),
1374 .se(se),
1375 .siclk(siclk),
1376 .soclk(soclk),
1377 .pce_ov(pce_ov),
1378 .stop(stop)
1379 );
1380
1381l2b_fillbf_dp_mux_macro__mux_aonpe__ports_4__stack_40r__width_39 mux_fbuf_slice1
1382 (
1383 .dout (fill_mbist_dout_1[38:0]),
1384 .din0 (l2b_l2d_fbdecc_c4[194:156]),
1385 .din1 (l2b_l2d_fbdecc_c4[233:195]),
1386 .din2 (l2b_l2d_fbdecc_c4[272:234]),
1387 .din3 (l2b_l2d_fbdecc_c4[311:273]),
1388 .sel0 (fbuf_mux_sel_r1[4]),
1389 .sel1 (fbuf_mux_sel_r1[5]),
1390 .sel2 (fbuf_mux_sel_r1[6]),
1391 .sel3 (fbuf_mux_sel_r1[7])
1392 );
1393
1394l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_fill_mbist_dout_reg_1
1395 (
1396 .scan_in(ff_fill_mbist_dout_reg_1_scanin),
1397 .scan_out(ff_fill_mbist_dout_reg_1_scanout),
1398 .din (fill_mbist_dout_1[38:0]),
1399 .dout (fill_mbist_dout_1_reg[38:0]),
1400 .clk (l2clk),
1401 .en (1'b1),
1402 .se(se),
1403 .siclk(siclk),
1404 .soclk(soclk),
1405 .pce_ov(pce_ov),
1406 .stop(stop)
1407 );
1408
1409l2b_fillbf_dp_mux_macro__mux_aonpe__ports_4__stack_40r__width_39 mux_fbuf_slice3
1410 (
1411 .dout (fill_mbist_dout_2[38:0]),
1412 .din0 (l2b_l2d_fbdecc_c4[350:312]),
1413 .din1 (l2b_l2d_fbdecc_c4[389:351]),
1414 .din2 (l2b_l2d_fbdecc_c4[428:390]),
1415 .din3 (l2b_l2d_fbdecc_c4[467:429]),
1416 .sel0 (fbuf_mux_sel_r1[8]),
1417 .sel1 (fbuf_mux_sel_r1[9]),
1418 .sel2 (fbuf_mux_sel_r1[10]),
1419 .sel3 (fbuf_mux_sel_r1[11])
1420 );
1421
1422l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_fill_mbist_dout_reg_2
1423 (
1424 .scan_in(ff_fill_mbist_dout_reg_2_scanin),
1425 .scan_out(ff_fill_mbist_dout_reg_2_scanout),
1426 .din (fill_mbist_dout_2[38:0]),
1427 .dout (fill_mbist_dout_2_reg[38:0]),
1428 .clk (l2clk),
1429 .en (1'b1),
1430 .se(se),
1431 .siclk(siclk),
1432 .soclk(soclk),
1433 .pce_ov(pce_ov),
1434 .stop(stop)
1435 );
1436
1437l2b_fillbf_dp_mux_macro__mux_aonpe__ports_4__stack_40r__width_39 mux_fbuf_slice4
1438 (
1439 .dout (fill_mbist_dout_3[38:0]),
1440 .din0 (l2b_l2d_fbdecc_c4[506:468]),
1441 .din1 (l2b_l2d_fbdecc_c4[545:507]),
1442 .din2 (l2b_l2d_fbdecc_c4[584:546]),
1443 .din3 (l2b_l2d_fbdecc_c4[623:585]),
1444 .sel0 (fbuf_mux_sel_r1[12]),
1445 .sel1 (fbuf_mux_sel_r1[13]),
1446 .sel2 (fbuf_mux_sel_r1[14]),
1447 .sel3 (fbuf_mux_sel_r1[15])
1448 );
1449
1450l2b_fillbf_dp_msff_macro__stack_40r__width_39 ff_fill_mbist_dout_reg_3
1451 (
1452 .scan_in(ff_fill_mbist_dout_reg_3_scanin),
1453 .scan_out(ff_fill_mbist_dout_reg_3_scanout),
1454 .din (fill_mbist_dout_3[38:0]),
1455 .dout (fill_mbist_dout_3_reg[38:0]),
1456 .clk (l2clk),
1457 .en (1'b1),
1458 .se(se),
1459 .siclk(siclk),
1460 .soclk(soclk),
1461 .pce_ov(pce_ov),
1462 .stop(stop)
1463 );
1464
1465
1466
1467l2b_fillbf_dp_or_macro__ports_3__width_1 or_select_mbist_10
1468 (
1469 .dout (select_mbist_10),
1470 .din0 (fbuf_mux_sel_r2[0]),
1471 .din1 (fbuf_mux_sel_r2[1]),
1472 .din2 (fbuf_mux_sel_r2[2])
1473 );
1474
1475l2b_fillbf_dp_or_macro__ports_2__width_1 or_select_mbist_11
1476 (
1477 .dout (select_mbist_1),
1478 .din0 (select_mbist_10),
1479 .din1 (fbuf_mux_sel_r2[3])
1480 );
1481
1482
1483l2b_fillbf_dp_or_macro__ports_3__width_1 or_select_mbist_20
1484 (
1485 .dout (select_mbist_20),
1486 .din0 (fbuf_mux_sel_r2[4]),
1487 .din1 (fbuf_mux_sel_r2[5]),
1488 .din2 (fbuf_mux_sel_r2[6])
1489 );
1490
1491l2b_fillbf_dp_or_macro__ports_2__width_1 or_select_mbist_21
1492 (
1493 .dout (select_mbist_2),
1494 .din0 (select_mbist_20),
1495 .din1 (fbuf_mux_sel_r2[7])
1496 );
1497
1498l2b_fillbf_dp_or_macro__ports_3__width_1 or_select_mbist_30
1499 (
1500 .dout (select_mbist_30),
1501 .din0 (fbuf_mux_sel_r2[8]),
1502 .din1 (fbuf_mux_sel_r2[9]),
1503 .din2 (fbuf_mux_sel_r2[10])
1504 );
1505
1506l2b_fillbf_dp_or_macro__ports_2__width_1 or_select_mbist_31
1507 (
1508 .dout (select_mbist_3),
1509 .din0 (select_mbist_30),
1510 .din1 (fbuf_mux_sel_r2[11])
1511 );
1512
1513l2b_fillbf_dp_or_macro__ports_3__width_1 or_select_mbist_40
1514 (
1515 .dout (select_mbist_40),
1516 .din0 (fbuf_mux_sel_r2[12]),
1517 .din1 (fbuf_mux_sel_r2[13]),
1518 .din2 (fbuf_mux_sel_r2[14])
1519 );
1520
1521l2b_fillbf_dp_or_macro__ports_2__width_1 or_select_mbist_41
1522 (
1523 .dout (select_mbist_4),
1524 .din0 (select_mbist_40),
1525 .din1 (fbuf_mux_sel_r2[15])
1526 );
1527
1528l2b_fillbf_dp_mux_macro__mux_aonpe__ports_4__stack_40r__width_39 mux_fbuf_slice10
1529 (
1530 .dout (fill_mbist_dout[38:0]),
1531 .din0 (fill_mbist_dout_0_reg[38:0]),
1532 .din1 (fill_mbist_dout_1_reg[38:0]),
1533 .din2 (fill_mbist_dout_2_reg[38:0]),
1534 .din3 (fill_mbist_dout_3_reg[38:0]),
1535 .sel0 (select_mbist_1),
1536 .sel1 (select_mbist_2),
1537 .sel2 (select_mbist_3),
1538 .sel3 (select_mbist_4)
1539 );
1540
1541
1542// or_macro or_select_mbist_cmp_10 (width=1,ports=3)
1543// (
1544// .dout (select_mbist_cmp_10),
1545// .din0 (fbuf_mux_sel_r1[0]),
1546// .din1 (fbuf_mux_sel_r1[4]),
1547// .din2 (fbuf_mux_sel_r1[8])
1548// );
1549
1550// or_macro or_select_mbist_cmp_11 (width=1,ports=2)
1551// (
1552// .dout (select_mbist_cmp_0),
1553// .din0 (select_mbist_cmp_10),
1554// .din1 (fbuf_mux_sel_r1[12])
1555// );
1556
1557// or_macro or_select_mbist_cmp_20 (width=1,ports=3)
1558// (
1559// .dout (select_mbist_cmp_20),
1560// .din0 (fbuf_mux_sel_r1[1]),
1561// .din1 (fbuf_mux_sel_r1[5]),
1562// .din2 (fbuf_mux_sel_r1[9])
1563// );
1564
1565// or_macro or_select_mbist_cmp_21 (width=1,ports=2)
1566// (
1567// .dout (select_mbist_cmp_1),
1568// .din0 (select_mbist_cmp_20),
1569// .din1 (fbuf_mux_sel_r1[13])
1570// );
1571
1572l2b_fillbf_dp_nand_macro__ports_4__width_1 nand_select_mbist_cmp_10
1573 (
1574 .dout (select_mbist_cmp_0),
1575 .din0 (fbuf_mux_sel_r1_0_),
1576 .din1 (fbuf_mux_sel_r1_4_),
1577 .din2 (fbuf_mux_sel_r1_8_),
1578 .din3 (fbuf_mux_sel_r1_12_)
1579 );
1580
1581l2b_fillbf_dp_inv_macro__width_4 inv_select_mbist_cmp_10
1582 (
1583 .dout ({fbuf_mux_sel_r1_0_, fbuf_mux_sel_r1_4_, fbuf_mux_sel_r1_8_, fbuf_mux_sel_r1_12_}),
1584 .din ({fbuf_mux_sel_r1[0], fbuf_mux_sel_r1[4], fbuf_mux_sel_r1[8], fbuf_mux_sel_r1[12]})
1585 );
1586
1587
1588l2b_fillbf_dp_nand_macro__ports_4__width_1 nand_select_mbist_cmp_20
1589 (
1590 .dout (select_mbist_cmp_1),
1591 .din0 (fbuf_mux_sel_r1_1_),
1592 .din1 (fbuf_mux_sel_r1_5_),
1593 .din2 (fbuf_mux_sel_r1_9_),
1594 .din3 (fbuf_mux_sel_r1_13_)
1595 );
1596
1597l2b_fillbf_dp_inv_macro__width_4 inv_select_mbist_cmp_20
1598 (
1599 .dout ({fbuf_mux_sel_r1_1_, fbuf_mux_sel_r1_5_, fbuf_mux_sel_r1_9_, fbuf_mux_sel_r1_13_}),
1600 .din ({fbuf_mux_sel_r1[1], fbuf_mux_sel_r1[5], fbuf_mux_sel_r1[9], fbuf_mux_sel_r1[13]})
1601 );
1602
1603
1604l2b_fillbf_dp_nand_macro__ports_4__width_1 nand_select_mbist_cmp_30
1605 (
1606 .dout (select_mbist_cmp_2),
1607 .din0 (fbuf_mux_sel_r1_2_),
1608 .din1 (fbuf_mux_sel_r1_6_),
1609 .din2 (fbuf_mux_sel_r1_10_),
1610 .din3 (fbuf_mux_sel_r1_14_)
1611 );
1612
1613l2b_fillbf_dp_inv_macro__width_4 inv_select_mbist_cmp_30
1614 (
1615 .dout ({fbuf_mux_sel_r1_2_, fbuf_mux_sel_r1_6_, fbuf_mux_sel_r1_10_, fbuf_mux_sel_r1_14_}),
1616 .din ({fbuf_mux_sel_r1[2], fbuf_mux_sel_r1[6], fbuf_mux_sel_r1[10], fbuf_mux_sel_r1[14]})
1617 );
1618
1619l2b_fillbf_dp_nand_macro__ports_4__width_1 nand_select_mbist_cmp_40
1620 (
1621 .dout (select_mbist_cmp_3),
1622 .din0 (fbuf_mux_sel_r1_3_),
1623 .din1 (fbuf_mux_sel_r1_7_),
1624 .din2 (fbuf_mux_sel_r1_11_),
1625 .din3 (fbuf_mux_sel_r1_15_)
1626 );
1627
1628l2b_fillbf_dp_inv_macro__width_4 inv_select_mbist_cmp_40
1629 (
1630 .dout ({fbuf_mux_sel_r1_3_, fbuf_mux_sel_r1_7_, fbuf_mux_sel_r1_11_, fbuf_mux_sel_r1_15_}),
1631 .din ({fbuf_mux_sel_r1[3], fbuf_mux_sel_r1[7], fbuf_mux_sel_r1[11], fbuf_mux_sel_r1[15]})
1632 );
1633
1634// or_macro or_select_mbist_cmp_31 (width=1,ports=2)
1635// (
1636// .dout (select_mbist_cmp_2),
1637// .din0 (select_mbist_cmp_30),
1638// .din1 (fbuf_mux_sel_r1[14])
1639// );
1640
1641// or_macro or_select_mbist_cmp_40 (width=1,ports=3)
1642// (
1643// .dout (select_mbist_cmp_40),
1644// .din0 (fbuf_mux_sel_r1[3]),
1645// .din1 (fbuf_mux_sel_r1[7]),
1646// .din2 (fbuf_mux_sel_r1[11])
1647// );
1648
1649// or_macro or_select_mbist_cmp_41 (width=1,ports=2)
1650// (
1651// .dout (select_mbist_cmp_3),
1652// .din0 (select_mbist_cmp_40),
1653// .din1 (fbuf_mux_sel_r1[15])
1654// );
1655
1656//assign select_mbist_cmp_0 = fbuf_mux_sel_r1[0] | fbuf_mux_sel_r1[4] | fbuf_mux_sel_r1[8] | fbuf_mux_sel_r1[12] ;
1657//assign select_mbist_cmp_1 = fbuf_mux_sel_r1[1] | fbuf_mux_sel_r1[5] | fbuf_mux_sel_r1[9] | fbuf_mux_sel_r1[13] ;
1658//assign select_mbist_cmp_2 = fbuf_mux_sel_r1[2] | fbuf_mux_sel_r1[6] | fbuf_mux_sel_r1[10] | fbuf_mux_sel_r1[14];
1659//assign select_mbist_cmp_3 = fbuf_mux_sel_r1[3] | fbuf_mux_sel_r1[7] | fbuf_mux_sel_r1[11] | fbuf_mux_sel_r1[15];
1660
1661assign fbuf_compare_data[155:0] = ({fb_mbist_data_r2[3:0],{19{fb_mbist_data_r2[7:0]}}});
1662
1663l2b_fillbf_dp_mux_macro__mux_aonpe__ports_4__stack_40r__width_39 mux_fbuf_slice11
1664 (
1665 .dout (fill_mbist_cmp_dout[38:0]),
1666 .din0 (fbuf_compare_data[38:0]),
1667 .din1 (fbuf_compare_data[77:39]),
1668 .din2 (fbuf_compare_data[116:78]),
1669 .din3 (fbuf_compare_data[155:117]),
1670 .sel0 (select_mbist_cmp_0),
1671 .sel1 (select_mbist_cmp_1),
1672 .sel2 (select_mbist_cmp_2),
1673 .sel3 (select_mbist_cmp_3)
1674 );
1675
1676
1677
1678l2b_fillbf_dp_cmp_macro__width_32 ff_mbist_compare0
1679 (
1680 .dout (fb_rw_fail1),
1681 .din0 (fill_mbist_dout[31:0]),
1682 .din1 (fill_mbist_cmp_dout[31:0])
1683 );
1684
1685
1686l2b_fillbf_dp_cmp_macro__width_8 ff_mbist_compare1
1687 (
1688 .dout (fb_rw_fail2),
1689 .din0 ({1'b0,fill_mbist_dout[38:32]}),
1690 .din1 ({1'b0,fill_mbist_cmp_dout[38:32]})
1691 //.din1 ({1'b0,fb_mbist_data_r3[6:0]}),
1692 );
1693
1694l2b_fillbf_dp_nand_macro__width_1 or_wb_or_rdma_rw_fail
1695 (
1696 .dout (fb_rw_fail_unreg),
1697 .din0 (fb_rw_fail1),
1698 .din1 (fb_rw_fail2)
1699 );
1700
1701
1702l2b_fillbf_dp_nand_macro__width_1 nand_rdma_rw_fail_qual
1703 (
1704 .dout (mux_fb_rw_fail_unreg),
1705 .din0 (fb_rw_fail_unreg),
1706 .din1 (mbist_fb_array_rd_en_reg4)
1707 );
1708
1709
1710// inv_macro inv_mbist_fb_array_rd_en_reg4 (width=1,stack=2c)
1711// (
1712// .dout (mbist_fb_array_rd_en_reg4_n),
1713// .din (mbist_fb_array_rd_en_reg4)
1714// );
1715
1716// mux_macro mux_wb_or_rdma_rw_fail_unreg (width=1,mux=aonpe,ports=2,stack=2c)
1717// (
1718// .dout (mux_fb_rw_fail_unreg),
1719// .din0 (fb_rw_fail_unreg),
1720// .din1 (1'b1),
1721// .sel0 (mbist_fb_array_rd_en_reg4),
1722// .sel1 (mbist_fb_array_rd_en_reg4_n)
1723// );
1724
1725
1726
1727l2b_fillbf_dp_msff_macro__stack_2c__width_2 ff_fb_rw_fail
1728 (
1729 .scan_in(ff_fb_rw_fail_scanin),
1730 .scan_out(ff_fb_rw_fail_scanout),
1731 .dout ({fb_rw_fail,mbist_fb_array_rd_en_reg4}),
1732 .din ({mux_fb_rw_fail_unreg,mbist_fb_array_rd_en_reg3}),
1733 .clk (l2clk),
1734 .en (1'b1),
1735 .se(se),
1736 .siclk(siclk),
1737 .soclk(soclk),
1738 .pce_ov(pce_ov),
1739 .stop(stop)
1740 );
1741
1742
1743
1744
1745// fixscan start:
1746assign ff_mbist_run_scanin = scan_in ;
1747assign ff_mbist_v1_reg_scanin = ff_mbist_run_scanout ;
1748assign ff_mbist_v2_reg_scanin = ff_mbist_v1_reg_scanout ;
1749assign ff_mbist_v3_reg_scanin = ff_mbist_v2_reg_scanout ;
1750assign ff_mbist_v4_reg_scanin = ff_mbist_v3_reg_scanout ;
1751assign ff_fillbf_control_reg_slice_scanin = ff_mbist_v4_reg_scanout ;
1752assign ff_l2t_l2b_fbwr_wen_r3_bfr_4_scanin = ff_fillbf_control_reg_slice_scanout;
1753assign ff_l2t_l2b_fbwr_wen_r3_bfr_3_scanin = ff_l2t_l2b_fbwr_wen_r3_bfr_4_scanout;
1754assign ff_l2t_l2b_fbwr_wen_r3_bfr_2_scanin = ff_l2t_l2b_fbwr_wen_r3_bfr_3_scanout;
1755assign ff_l2t_l2b_fbwr_wen_r3_bfr_1_scanin = ff_l2t_l2b_fbwr_wen_r3_bfr_2_scanout;
1756assign ff_l2t_l2d_stdecc_c4_10_scanin = ff_l2t_l2b_fbwr_wen_r3_bfr_1_scanout;
1757assign ff_l2t_l2d_stdecc_c4_11_scanin = ff_l2t_l2d_stdecc_c4_10_scanout;
1758assign ff_l2t_l2d_stdecc_c4_1_scanin = ff_l2t_l2d_stdecc_c4_11_scanout;
1759assign ff_l2t_l2d_stdecc_c4_2_scanin = ff_l2t_l2d_stdecc_c4_1_scanout;
1760assign ff_btu_l2b_decc_r3_1a_scanin = ff_l2t_l2d_stdecc_c4_2_scanout;
1761assign ff_btu_l2b_decc_r3_2a_scanin = ff_btu_l2b_decc_r3_1a_scanout;
1762assign ff_btu_l2b_decc_r3_3a_scanin = ff_btu_l2b_decc_r3_2a_scanout;
1763assign ff_btu_l2b_decc_r3_4a_scanin = ff_btu_l2b_decc_r3_3a_scanout;
1764assign ff_btu_l2b_decc_r3_1_scanin = ff_btu_l2b_decc_r3_4a_scanout;
1765assign ff_btu_l2b_decc_r3_2_scanin = ff_btu_l2b_decc_r3_1_scanout;
1766assign ff_btu_l2b_decc_r3_3_scanin = ff_btu_l2b_decc_r3_2_scanout;
1767assign ff_btu_l2b_decc_r3_4_scanin = ff_btu_l2b_decc_r3_3_scanout;
1768assign ff_fill_mbist_dout_reg_0_scanin = ff_btu_l2b_decc_r3_4_scanout;
1769assign ff_fill_mbist_dout_reg_1_scanin = ff_fill_mbist_dout_reg_0_scanout;
1770assign ff_fill_mbist_dout_reg_2_scanin = ff_fill_mbist_dout_reg_1_scanout;
1771assign ff_fill_mbist_dout_reg_3_scanin = ff_fill_mbist_dout_reg_2_scanout;
1772assign ff_fb_rw_fail_scanin = ff_fill_mbist_dout_reg_3_scanout;
1773assign scan_out = ff_fb_rw_fail_scanout ;
1774// fixscan end:
1775endmodule
1776
1777
1778
1779
1780
1781
1782// any PARAMS parms go into naming of macro
1783
1784module l2b_fillbf_dp_msff_macro__stack_56c__width_56 (
1785 din,
1786 clk,
1787 en,
1788 se,
1789 scan_in,
1790 siclk,
1791 soclk,
1792 pce_ov,
1793 stop,
1794 dout,
1795 scan_out);
1796wire l1clk;
1797wire siclk_out;
1798wire soclk_out;
1799wire [54:0] so;
1800
1801 input [55:0] din;
1802
1803
1804 input clk;
1805 input en;
1806 input se;
1807 input scan_in;
1808 input siclk;
1809 input soclk;
1810 input pce_ov;
1811 input stop;
1812
1813
1814
1815 output [55:0] dout;
1816
1817
1818 output scan_out;
1819
1820
1821
1822
1823cl_dp1_l1hdr_8x c0_0 (
1824.l2clk(clk),
1825.pce(en),
1826.aclk(siclk),
1827.bclk(soclk),
1828.l1clk(l1clk),
1829 .se(se),
1830 .pce_ov(pce_ov),
1831 .stop(stop),
1832 .siclk_out(siclk_out),
1833 .soclk_out(soclk_out)
1834);
1835dff #(56) d0_0 (
1836.l1clk(l1clk),
1837.siclk(siclk_out),
1838.soclk(soclk_out),
1839.d(din[55:0]),
1840.si({scan_in,so[54:0]}),
1841.so({so[54:0],scan_out}),
1842.q(dout[55:0])
1843);
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864endmodule
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878// any PARAMS parms go into naming of macro
1879
1880module l2b_fillbf_dp_msff_macro__stack_6c__width_6 (
1881 din,
1882 clk,
1883 en,
1884 se,
1885 scan_in,
1886 siclk,
1887 soclk,
1888 pce_ov,
1889 stop,
1890 dout,
1891 scan_out);
1892wire l1clk;
1893wire siclk_out;
1894wire soclk_out;
1895wire [4:0] so;
1896
1897 input [5:0] din;
1898
1899
1900 input clk;
1901 input en;
1902 input se;
1903 input scan_in;
1904 input siclk;
1905 input soclk;
1906 input pce_ov;
1907 input stop;
1908
1909
1910
1911 output [5:0] dout;
1912
1913
1914 output scan_out;
1915
1916
1917
1918
1919cl_dp1_l1hdr_8x c0_0 (
1920.l2clk(clk),
1921.pce(en),
1922.aclk(siclk),
1923.bclk(soclk),
1924.l1clk(l1clk),
1925 .se(se),
1926 .pce_ov(pce_ov),
1927 .stop(stop),
1928 .siclk_out(siclk_out),
1929 .soclk_out(soclk_out)
1930);
1931dff #(6) d0_0 (
1932.l1clk(l1clk),
1933.siclk(siclk_out),
1934.soclk(soclk_out),
1935.d(din[5:0]),
1936.si({scan_in,so[4:0]}),
1937.so({so[4:0],scan_out}),
1938.q(dout[5:0])
1939);
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960endmodule
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970//
1971// invert macro
1972//
1973//
1974
1975
1976
1977
1978
1979module l2b_fillbf_dp_inv_macro__width_1 (
1980 din,
1981 dout);
1982 input [0:0] din;
1983 output [0:0] dout;
1984
1985
1986
1987
1988
1989
1990inv #(1) d0_0 (
1991.in(din[0:0]),
1992.out(dout[0:0])
1993);
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003endmodule
2004
2005
2006
2007
2008
2009//
2010// nand macro for ports = 2,3,4
2011//
2012//
2013
2014
2015
2016
2017
2018module l2b_fillbf_dp_nand_macro__dnand_8x__ports_2__stack_4r__width_4 (
2019 din0,
2020 din1,
2021 dout);
2022 input [3:0] din0;
2023 input [3:0] din1;
2024 output [3:0] dout;
2025
2026
2027
2028
2029
2030
2031nand2 #(4) d0_0 (
2032.in0(din0[3:0]),
2033.in1(din1[3:0]),
2034.out(dout[3:0])
2035);
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045endmodule
2046
2047
2048
2049
2050
2051//
2052// nand macro for ports = 2,3,4
2053//
2054//
2055
2056
2057
2058
2059
2060module l2b_fillbf_dp_nand_macro__dnand_32x__ports_2__stack_4r__width_4 (
2061 din0,
2062 din1,
2063 dout);
2064 input [3:0] din0;
2065 input [3:0] din1;
2066 output [3:0] dout;
2067
2068
2069
2070
2071
2072
2073nand2 #(4) d0_0 (
2074.in0(din0[3:0]),
2075.in1(din1[3:0]),
2076.out(dout[3:0])
2077);
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087endmodule
2088
2089
2090
2091
2092
2093//
2094// nand macro for ports = 2,3,4
2095//
2096//
2097
2098
2099
2100
2101
2102module l2b_fillbf_dp_nand_macro__dnand_8x__ports_2__stack_12r__width_12 (
2103 din0,
2104 din1,
2105 dout);
2106 input [11:0] din0;
2107 input [11:0] din1;
2108 output [11:0] dout;
2109
2110
2111
2112
2113
2114
2115nand2 #(12) d0_0 (
2116.in0(din0[11:0]),
2117.in1(din1[11:0]),
2118.out(dout[11:0])
2119);
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129endmodule
2130
2131
2132
2133
2134
2135//
2136// nand macro for ports = 2,3,4
2137//
2138//
2139
2140
2141
2142
2143
2144module l2b_fillbf_dp_nand_macro__dnand_32x__ports_2__stack_12r__width_12 (
2145 din0,
2146 din1,
2147 dout);
2148 input [11:0] din0;
2149 input [11:0] din1;
2150 output [11:0] dout;
2151
2152
2153
2154
2155
2156
2157nand2 #(12) d0_0 (
2158.in0(din0[11:0]),
2159.in1(din1[11:0]),
2160.out(dout[11:0])
2161);
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171endmodule
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181// any PARAMS parms go into naming of macro
2182
2183module l2b_fillbf_dp_msff_macro__stack_4r__width_4 (
2184 din,
2185 clk,
2186 en,
2187 se,
2188 scan_in,
2189 siclk,
2190 soclk,
2191 pce_ov,
2192 stop,
2193 dout,
2194 scan_out);
2195wire l1clk;
2196wire siclk_out;
2197wire soclk_out;
2198wire [2:0] so;
2199
2200 input [3:0] din;
2201
2202
2203 input clk;
2204 input en;
2205 input se;
2206 input scan_in;
2207 input siclk;
2208 input soclk;
2209 input pce_ov;
2210 input stop;
2211
2212
2213
2214 output [3:0] dout;
2215
2216
2217 output scan_out;
2218
2219
2220
2221
2222cl_dp1_l1hdr_8x c0_0 (
2223.l2clk(clk),
2224.pce(en),
2225.aclk(siclk),
2226.bclk(soclk),
2227.l1clk(l1clk),
2228 .se(se),
2229 .pce_ov(pce_ov),
2230 .stop(stop),
2231 .siclk_out(siclk_out),
2232 .soclk_out(soclk_out)
2233);
2234dff #(4) d0_0 (
2235.l1clk(l1clk),
2236.siclk(siclk_out),
2237.soclk(soclk_out),
2238.d(din[3:0]),
2239.si({scan_in,so[2:0]}),
2240.so({so[2:0],scan_out}),
2241.q(dout[3:0])
2242);
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263endmodule
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2274// also for pass-gate with decoder
2275
2276
2277
2278
2279
2280// any PARAMS parms go into naming of macro
2281
2282module l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_6r__width_5 (
2283 din0,
2284 sel0,
2285 din1,
2286 sel1,
2287 dout);
2288wire buffout0;
2289wire buffout1;
2290
2291 input [4:0] din0;
2292 input sel0;
2293 input [4:0] din1;
2294 input sel1;
2295 output [4:0] dout;
2296
2297
2298
2299
2300
2301cl_dp1_muxbuff2_8x c0_0 (
2302 .in0(sel0),
2303 .in1(sel1),
2304 .out0(buffout0),
2305 .out1(buffout1)
2306);
2307mux2s #(5) d0_0 (
2308 .sel0(buffout0),
2309 .sel1(buffout1),
2310 .in0(din0[4:0]),
2311 .in1(din1[4:0]),
2312.dout(dout[4:0])
2313);
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327endmodule
2328
2329
2330//
2331// or macro for ports = 2,3
2332//
2333//
2334
2335
2336
2337
2338
2339module l2b_fillbf_dp_or_macro__width_1 (
2340 din0,
2341 din1,
2342 dout);
2343 input [0:0] din0;
2344 input [0:0] din1;
2345 output [0:0] dout;
2346
2347
2348
2349
2350
2351
2352or2 #(1) d0_0 (
2353.in0(din0[0:0]),
2354.in1(din1[0:0]),
2355.out(dout[0:0])
2356);
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366endmodule
2367
2368
2369
2370
2371
2372// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2373// also for pass-gate with decoder
2374
2375
2376
2377
2378
2379// any PARAMS parms go into naming of macro
2380
2381module l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_4r__width_3 (
2382 din0,
2383 sel0,
2384 din1,
2385 sel1,
2386 dout);
2387wire buffout0;
2388wire buffout1;
2389
2390 input [2:0] din0;
2391 input sel0;
2392 input [2:0] din1;
2393 input sel1;
2394 output [2:0] dout;
2395
2396
2397
2398
2399
2400cl_dp1_muxbuff2_8x c0_0 (
2401 .in0(sel0),
2402 .in1(sel1),
2403 .out0(buffout0),
2404 .out1(buffout1)
2405);
2406mux2s #(3) d0_0 (
2407 .sel0(buffout0),
2408 .sel1(buffout1),
2409 .in0(din0[2:0]),
2410 .in1(din1[2:0]),
2411.dout(dout[2:0])
2412);
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426endmodule
2427
2428
2429
2430
2431
2432
2433// any PARAMS parms go into naming of macro
2434
2435module l2b_fillbf_dp_msff_macro__stack_40r__width_39 (
2436 din,
2437 clk,
2438 en,
2439 se,
2440 scan_in,
2441 siclk,
2442 soclk,
2443 pce_ov,
2444 stop,
2445 dout,
2446 scan_out);
2447wire l1clk;
2448wire siclk_out;
2449wire soclk_out;
2450wire [37:0] so;
2451
2452 input [38:0] din;
2453
2454
2455 input clk;
2456 input en;
2457 input se;
2458 input scan_in;
2459 input siclk;
2460 input soclk;
2461 input pce_ov;
2462 input stop;
2463
2464
2465
2466 output [38:0] dout;
2467
2468
2469 output scan_out;
2470
2471
2472
2473
2474cl_dp1_l1hdr_8x c0_0 (
2475.l2clk(clk),
2476.pce(en),
2477.aclk(siclk),
2478.bclk(soclk),
2479.l1clk(l1clk),
2480 .se(se),
2481 .pce_ov(pce_ov),
2482 .stop(stop),
2483 .siclk_out(siclk_out),
2484 .soclk_out(soclk_out)
2485);
2486dff #(39) d0_0 (
2487.l1clk(l1clk),
2488.siclk(siclk_out),
2489.soclk(soclk_out),
2490.d(din[38:0]),
2491.si({scan_in,so[37:0]}),
2492.so({so[37:0],scan_out}),
2493.q(dout[38:0])
2494);
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515endmodule
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525//
2526// buff macro
2527//
2528//
2529
2530
2531
2532
2533
2534module l2b_fillbf_dp_buff_macro__stack_40r__width_39 (
2535 din,
2536 dout);
2537 input [38:0] din;
2538 output [38:0] dout;
2539
2540
2541
2542
2543
2544
2545buff #(39) d0_0 (
2546.in(din[38:0]),
2547.out(dout[38:0])
2548);
2549
2550
2551
2552
2553
2554
2555
2556
2557endmodule
2558
2559
2560
2561
2562
2563// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2564// also for pass-gate with decoder
2565
2566
2567
2568
2569
2570// any PARAMS parms go into naming of macro
2571
2572module l2b_fillbf_dp_mux_macro__dmux_8x__mux_aonpe__stack_40r__width_39 (
2573 din0,
2574 sel0,
2575 din1,
2576 sel1,
2577 dout);
2578wire buffout0;
2579wire buffout1;
2580
2581 input [38:0] din0;
2582 input sel0;
2583 input [38:0] din1;
2584 input sel1;
2585 output [38:0] dout;
2586
2587
2588
2589
2590
2591cl_dp1_muxbuff2_8x c0_0 (
2592 .in0(sel0),
2593 .in1(sel1),
2594 .out0(buffout0),
2595 .out1(buffout1)
2596);
2597mux2s #(39) d0_0 (
2598 .sel0(buffout0),
2599 .sel1(buffout1),
2600 .in0(din0[38:0]),
2601 .in1(din1[38:0]),
2602.dout(dout[38:0])
2603);
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617endmodule
2618
2619
2620// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2621// also for pass-gate with decoder
2622
2623
2624
2625
2626
2627// any PARAMS parms go into naming of macro
2628
2629module l2b_fillbf_dp_mux_macro__mux_aonpe__ports_2__stack_40r__width_39 (
2630 din0,
2631 sel0,
2632 din1,
2633 sel1,
2634 dout);
2635wire buffout0;
2636wire buffout1;
2637
2638 input [38:0] din0;
2639 input sel0;
2640 input [38:0] din1;
2641 input sel1;
2642 output [38:0] dout;
2643
2644
2645
2646
2647
2648cl_dp1_muxbuff2_8x c0_0 (
2649 .in0(sel0),
2650 .in1(sel1),
2651 .out0(buffout0),
2652 .out1(buffout1)
2653);
2654mux2s #(39) d0_0 (
2655 .sel0(buffout0),
2656 .sel1(buffout1),
2657 .in0(din0[38:0]),
2658 .in1(din1[38:0]),
2659.dout(dout[38:0])
2660);
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674endmodule
2675
2676
2677// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2678// also for pass-gate with decoder
2679
2680
2681
2682
2683
2684// any PARAMS parms go into naming of macro
2685
2686module l2b_fillbf_dp_mux_macro__mux_aonpe__ports_4__stack_40r__width_39 (
2687 din0,
2688 sel0,
2689 din1,
2690 sel1,
2691 din2,
2692 sel2,
2693 din3,
2694 sel3,
2695 dout);
2696wire buffout0;
2697wire buffout1;
2698wire buffout2;
2699wire buffout3;
2700
2701 input [38:0] din0;
2702 input sel0;
2703 input [38:0] din1;
2704 input sel1;
2705 input [38:0] din2;
2706 input sel2;
2707 input [38:0] din3;
2708 input sel3;
2709 output [38:0] dout;
2710
2711
2712
2713
2714
2715cl_dp1_muxbuff4_8x c0_0 (
2716 .in0(sel0),
2717 .in1(sel1),
2718 .in2(sel2),
2719 .in3(sel3),
2720 .out0(buffout0),
2721 .out1(buffout1),
2722 .out2(buffout2),
2723 .out3(buffout3)
2724);
2725mux4s #(39) d0_0 (
2726 .sel0(buffout0),
2727 .sel1(buffout1),
2728 .sel2(buffout2),
2729 .sel3(buffout3),
2730 .in0(din0[38:0]),
2731 .in1(din1[38:0]),
2732 .in2(din2[38:0]),
2733 .in3(din3[38:0]),
2734.dout(dout[38:0])
2735);
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749endmodule
2750
2751
2752//
2753// or macro for ports = 2,3
2754//
2755//
2756
2757
2758
2759
2760
2761module l2b_fillbf_dp_or_macro__ports_3__width_1 (
2762 din0,
2763 din1,
2764 din2,
2765 dout);
2766 input [0:0] din0;
2767 input [0:0] din1;
2768 input [0:0] din2;
2769 output [0:0] dout;
2770
2771
2772
2773
2774
2775
2776or3 #(1) d0_0 (
2777.in0(din0[0:0]),
2778.in1(din1[0:0]),
2779.in2(din2[0:0]),
2780.out(dout[0:0])
2781);
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791endmodule
2792
2793
2794
2795
2796
2797//
2798// or macro for ports = 2,3
2799//
2800//
2801
2802
2803
2804
2805
2806module l2b_fillbf_dp_or_macro__ports_2__width_1 (
2807 din0,
2808 din1,
2809 dout);
2810 input [0:0] din0;
2811 input [0:0] din1;
2812 output [0:0] dout;
2813
2814
2815
2816
2817
2818
2819or2 #(1) d0_0 (
2820.in0(din0[0:0]),
2821.in1(din1[0:0]),
2822.out(dout[0:0])
2823);
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833endmodule
2834
2835
2836
2837
2838
2839//
2840// nand macro for ports = 2,3,4
2841//
2842//
2843
2844
2845
2846
2847
2848module l2b_fillbf_dp_nand_macro__ports_4__width_1 (
2849 din0,
2850 din1,
2851 din2,
2852 din3,
2853 dout);
2854 input [0:0] din0;
2855 input [0:0] din1;
2856 input [0:0] din2;
2857 input [0:0] din3;
2858 output [0:0] dout;
2859
2860
2861
2862
2863
2864
2865nand4 #(1) d0_0 (
2866.in0(din0[0:0]),
2867.in1(din1[0:0]),
2868.in2(din2[0:0]),
2869.in3(din3[0:0]),
2870.out(dout[0:0])
2871);
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881endmodule
2882
2883
2884
2885
2886
2887//
2888// invert macro
2889//
2890//
2891
2892
2893
2894
2895
2896module l2b_fillbf_dp_inv_macro__width_4 (
2897 din,
2898 dout);
2899 input [3:0] din;
2900 output [3:0] dout;
2901
2902
2903
2904
2905
2906
2907inv #(4) d0_0 (
2908.in(din[3:0]),
2909.out(dout[3:0])
2910);
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920endmodule
2921
2922
2923
2924
2925
2926//
2927// comparator macro (output is 1 if both inputs are equal; 0 otherwise)
2928//
2929//
2930
2931
2932
2933
2934
2935module l2b_fillbf_dp_cmp_macro__width_32 (
2936 din0,
2937 din1,
2938 dout);
2939 input [31:0] din0;
2940 input [31:0] din1;
2941 output dout;
2942
2943
2944
2945
2946
2947
2948cmp #(32) m0_0 (
2949.in0(din0[31:0]),
2950.in1(din1[31:0]),
2951.out(dout)
2952);
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963endmodule
2964
2965
2966
2967
2968
2969//
2970// comparator macro (output is 1 if both inputs are equal; 0 otherwise)
2971//
2972//
2973
2974
2975
2976
2977
2978module l2b_fillbf_dp_cmp_macro__width_8 (
2979 din0,
2980 din1,
2981 dout);
2982 input [7:0] din0;
2983 input [7:0] din1;
2984 output dout;
2985
2986
2987
2988
2989
2990
2991cmp #(8) m0_0 (
2992.in0(din0[7:0]),
2993.in1(din1[7:0]),
2994.out(dout)
2995);
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006endmodule
3007
3008
3009
3010
3011
3012//
3013// nand macro for ports = 2,3,4
3014//
3015//
3016
3017
3018
3019
3020
3021module l2b_fillbf_dp_nand_macro__width_1 (
3022 din0,
3023 din1,
3024 dout);
3025 input [0:0] din0;
3026 input [0:0] din1;
3027 output [0:0] dout;
3028
3029
3030
3031
3032
3033
3034nand2 #(1) d0_0 (
3035.in0(din0[0:0]),
3036.in1(din1[0:0]),
3037.out(dout[0:0])
3038);
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048endmodule
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058// any PARAMS parms go into naming of macro
3059
3060module l2b_fillbf_dp_msff_macro__stack_2c__width_2 (
3061 din,
3062 clk,
3063 en,
3064 se,
3065 scan_in,
3066 siclk,
3067 soclk,
3068 pce_ov,
3069 stop,
3070 dout,
3071 scan_out);
3072wire l1clk;
3073wire siclk_out;
3074wire soclk_out;
3075wire [0:0] so;
3076
3077 input [1:0] din;
3078
3079
3080 input clk;
3081 input en;
3082 input se;
3083 input scan_in;
3084 input siclk;
3085 input soclk;
3086 input pce_ov;
3087 input stop;
3088
3089
3090
3091 output [1:0] dout;
3092
3093
3094 output scan_out;
3095
3096
3097
3098
3099cl_dp1_l1hdr_8x c0_0 (
3100.l2clk(clk),
3101.pce(en),
3102.aclk(siclk),
3103.bclk(soclk),
3104.l1clk(l1clk),
3105 .se(se),
3106 .pce_ov(pce_ov),
3107 .stop(stop),
3108 .siclk_out(siclk_out),
3109 .soclk_out(soclk_out)
3110);
3111dff #(2) d0_0 (
3112.l1clk(l1clk),
3113.siclk(siclk_out),
3114.soclk(soclk_out),
3115.d(din[1:0]),
3116.si({scan_in,so[0:0]}),
3117.so({so[0:0],scan_out}),
3118.q(dout[1:0])
3119);
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140endmodule
3141
3142
3143
3144
3145
3146
3147
3148