Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: spc_msf0_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 ============================================ | |
35 | module spc_msf0_dp ( | |
36 | l2clk, | |
37 | tcu_pce_ov, | |
38 | spc_aclk, | |
39 | spc_bclk, | |
40 | tcu_scan_en, | |
41 | tcu_se_scancollar_out, | |
42 | tcu_atpg_mode, | |
43 | scan_in, | |
44 | lb_lbist_running, | |
45 | slow_cmp_sync_en, | |
46 | cmp_slow_sync_en, | |
47 | ncu_cmp_tick_enable, | |
48 | ncu_wmr_vec_mask, | |
49 | tcu_ss_mode, | |
50 | tcu_do_mode, | |
51 | tcu_mbist_user_mode, | |
52 | tcu_mbist_bisi_en, | |
53 | tcu_ss_request, | |
54 | tcu_core_running, | |
55 | tcu_shscan_clk_stop, | |
56 | tcu_shscanid, | |
57 | efu_spc_fuse_data, | |
58 | efu_spc_fuse_ixfer_en, | |
59 | efu_spc_fuse_dxfer_en, | |
60 | efu_spc_fuse_iclr, | |
61 | efu_spc_fuse_dclr, | |
62 | spc_efu_fuse_ddata, | |
63 | spc_efu_fuse_idata, | |
64 | spc_efu_fuse_ixfer_en, | |
65 | spc_efu_fuse_dxfer_en, | |
66 | efu_spc_fuse_data_buf, | |
67 | efu_spc_fuse_ixfer_en_buf, | |
68 | efu_spc_fuse_dxfer_en_buf, | |
69 | efu_spc_fuse_iclr_buf, | |
70 | efu_spc_fuse_dclr_buf, | |
71 | spc_efu_fuse_ddata_buf, | |
72 | spc_efu_fuse_idata_buf, | |
73 | spc_efu_fuse_ixfer_en_buf, | |
74 | spc_efu_fuse_dxfer_en_buf, | |
75 | tlu_core_running_status, | |
76 | tlu_ss_complete, | |
77 | tlu_hardstop_request, | |
78 | tlu_softstop_request, | |
79 | tlu_trigger_pulse, | |
80 | tlu_dbg_instr_cmt_grp0, | |
81 | tlu_dbg_instr_cmt_grp1, | |
82 | scan_out, | |
83 | msf0_cmp_tick_enable, | |
84 | msf0_wmr_vec_mask, | |
85 | msf0_ss_mode, | |
86 | msf0_do_mode, | |
87 | msf0_ss_request, | |
88 | msf0_core_running, | |
89 | msf0_shscan_clk_stop, | |
90 | msf0_shscanid, | |
91 | msf0_mbist_user_mode_ff, | |
92 | msf0_mbist_bisi_en_ff, | |
93 | msf0_atpg_mode_buf, | |
94 | spc_core_running_status, | |
95 | spc_ss_complete, | |
96 | spc_hardstop_request, | |
97 | spc_softstop_request, | |
98 | spc_trigger_pulse, | |
99 | spc_dbg_instr_cmt_grp0, | |
100 | spc_dbg_instr_cmt_grp1, | |
101 | power_throttle, | |
102 | power_throttle_buf); | |
103 | wire stop; | |
104 | wire en; | |
105 | wire clk; | |
106 | wire pce_ov; | |
107 | wire se; | |
108 | wire siclk; | |
109 | wire soclk; | |
110 | wire bank0_lat_scanin; | |
111 | wire bank0_lat_scanout; | |
112 | wire cmp_slow_sync_en_ff; | |
113 | wire [7:0] tlu_core_running_status_rep0; | |
114 | wire tlu_ss_complete_rep0; | |
115 | wire tlu_hardstop_request_rep0; | |
116 | wire tlu_softstop_request_rep0; | |
117 | wire tlu_trigger_pulse_rep0; | |
118 | wire [1:0] tlu_dbg_instr_cmt_grp0_rep0; | |
119 | wire [1:0] tlu_dbg_instr_cmt_grp1_rep0; | |
120 | wire bank1_lat_scanin; | |
121 | wire bank1_lat_scanout; | |
122 | wire tcu_ss_request_rep0; | |
123 | wire bank2_lat_scanin; | |
124 | wire bank2_lat_scanout; | |
125 | wire slow_cmp_sync_en_ff; | |
126 | wire efu_spc_fuse_data_bufin; | |
127 | wire efu_spc_fuse_ixfer_en_bufin; | |
128 | wire efu_spc_fuse_dxfer_en_bufin; | |
129 | wire efu_spc_fuse_iclr_bufin; | |
130 | wire efu_spc_fuse_dclr_bufin; | |
131 | wire lb_lbist_running_n1; | |
132 | wire lb_efu_spc_fuse_data; | |
133 | wire lb_efu_spc_fuse_ixfer_en; | |
134 | wire lb_efu_spc_fuse_dxfer_en; | |
135 | wire lb_efu_spc_fuse_iclr; | |
136 | wire lb_efu_spc_fuse_dclr; | |
137 | wire ncu_cmp_tick_enable_rep0; | |
138 | wire [7:0] tcu_core_running_rep0; | |
139 | wire ncu_wmr_vec_mask_rep0; | |
140 | wire bank3_lat_scanin; | |
141 | wire bank3_lat_scanout; | |
142 | wire tcu_ss_mode_rep0; | |
143 | wire tcu_mbist_user_mode_rep0; | |
144 | wire tcu_mbist_bisi_en_rep0; | |
145 | wire tcu_do_mode_rep0; | |
146 | wire bank4_lat_scanin; | |
147 | wire bank4_lat_scanout; | |
148 | wire [2:0] tcu_shscanid_rep0; | |
149 | wire tcu_shscan_clk_stop_rep0; | |
150 | wire bank5_lat_scanin; | |
151 | wire bank5_lat_scanout; | |
152 | ||
153 | ||
154 | input l2clk; | |
155 | input tcu_pce_ov; | |
156 | input spc_aclk; | |
157 | input spc_bclk; | |
158 | input tcu_scan_en; | |
159 | input tcu_se_scancollar_out; | |
160 | input tcu_atpg_mode; | |
161 | input scan_in; | |
162 | ||
163 | input lb_lbist_running; | |
164 | ||
165 | input slow_cmp_sync_en; | |
166 | input cmp_slow_sync_en; | |
167 | ||
168 | // Core inputs before the MSFF | |
169 | input ncu_cmp_tick_enable; | |
170 | input ncu_wmr_vec_mask; | |
171 | input tcu_ss_mode; | |
172 | input tcu_do_mode; | |
173 | input tcu_mbist_user_mode; | |
174 | input tcu_mbist_bisi_en; | |
175 | input tcu_ss_request; | |
176 | input [7:0] tcu_core_running; | |
177 | input tcu_shscan_clk_stop; | |
178 | input [2:0] tcu_shscanid; | |
179 | ||
180 | input efu_spc_fuse_data; | |
181 | input efu_spc_fuse_ixfer_en; | |
182 | input efu_spc_fuse_dxfer_en; | |
183 | input efu_spc_fuse_iclr; | |
184 | input efu_spc_fuse_dclr; | |
185 | ||
186 | output spc_efu_fuse_ddata; | |
187 | output spc_efu_fuse_idata; | |
188 | output spc_efu_fuse_ixfer_en; | |
189 | output spc_efu_fuse_dxfer_en; | |
190 | ||
191 | output efu_spc_fuse_data_buf; | |
192 | output efu_spc_fuse_ixfer_en_buf; | |
193 | output efu_spc_fuse_dxfer_en_buf; | |
194 | output efu_spc_fuse_iclr_buf; | |
195 | output efu_spc_fuse_dclr_buf; | |
196 | ||
197 | input spc_efu_fuse_ddata_buf; | |
198 | input spc_efu_fuse_idata_buf; | |
199 | input spc_efu_fuse_ixfer_en_buf; | |
200 | input spc_efu_fuse_dxfer_en_buf; | |
201 | ||
202 | // Core outputs before the MSFF | |
203 | input [7:0] tlu_core_running_status; | |
204 | input tlu_ss_complete; | |
205 | input tlu_hardstop_request; | |
206 | input tlu_softstop_request; | |
207 | input tlu_trigger_pulse; | |
208 | input [1:0] tlu_dbg_instr_cmt_grp0; | |
209 | input [1:0] tlu_dbg_instr_cmt_grp1; | |
210 | ||
211 | output scan_out; | |
212 | ||
213 | // Core inputs after the MSFF | |
214 | output msf0_cmp_tick_enable; | |
215 | output msf0_wmr_vec_mask; | |
216 | output msf0_ss_mode; | |
217 | output msf0_do_mode; | |
218 | output msf0_ss_request; | |
219 | output [7:0] msf0_core_running; | |
220 | output msf0_shscan_clk_stop; | |
221 | output [2:0] msf0_shscanid; | |
222 | output msf0_mbist_user_mode_ff; | |
223 | output msf0_mbist_bisi_en_ff; | |
224 | output msf0_atpg_mode_buf; | |
225 | ||
226 | // Core outputs after the MSFF | |
227 | output [7:0] spc_core_running_status; | |
228 | output spc_ss_complete; | |
229 | output spc_hardstop_request; | |
230 | output spc_softstop_request; | |
231 | output spc_trigger_pulse; | |
232 | output [1:0] spc_dbg_instr_cmt_grp0; | |
233 | output [1:0] spc_dbg_instr_cmt_grp1; | |
234 | ||
235 | input [2:0] power_throttle; | |
236 | output [2:0] power_throttle_buf; | |
237 | ||
238 | ||
239 | ////////////////////////////////////////////////////////////////////// | |
240 | ||
241 | assign stop = 1'b0; | |
242 | assign en = 1'b1; | |
243 | assign clk = l2clk; | |
244 | ||
245 | assign pce_ov = tcu_pce_ov; | |
246 | assign se = tcu_scan_en; | |
247 | assign siclk = spc_aclk; | |
248 | assign soclk = spc_bclk; | |
249 | ||
250 | ////////////////////////////////////////////////////////////////////// | |
251 | ||
252 | ||
253 | spc_msf0_dpmsff_macro__stack_10r__width_8 bank0_lat ( | |
254 | .scan_in(bank0_lat_scanin), | |
255 | .scan_out(bank0_lat_scanout), | |
256 | .en (cmp_slow_sync_en_ff), | |
257 | .din (tlu_core_running_status [7:0] ), | |
258 | .dout (tlu_core_running_status_rep0 [7:0] ), | |
259 | .clk(clk), | |
260 | .se(se), | |
261 | .siclk(siclk), | |
262 | .soclk(soclk), | |
263 | .pce_ov(pce_ov), | |
264 | .stop(stop) | |
265 | ); | |
266 | ||
267 | spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_8 bank0_rep ( | |
268 | .din(tlu_core_running_status_rep0[7:0]), | |
269 | .dout(spc_core_running_status[7:0]) | |
270 | ); | |
271 | ||
272 | //inv_macro bank1_inv (width=1) ( | |
273 | // .din(lb_lbist_running), | |
274 | // .dout(lb_lbist_running_n) | |
275 | //); | |
276 | ||
277 | //buff_macro bank1_rep0 (width=3,stack=none,dbuff=16x,rep=1) ( | |
278 | // .din (power_throttle[2:0]), | |
279 | // .dout (power_throttle_bufin[2:0]) | |
280 | //); | |
281 | ||
282 | //and_macro bank1_and (width=3) ( | |
283 | // .din0 (power_throttle_bufin[2:0]), | |
284 | // .din1 ({3 {lb_lbist_running_n}}), | |
285 | // .dout (lb_power_throttle[2:0]) | |
286 | //); | |
287 | ||
288 | spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_11 bank1_rep1 ( | |
289 | .din ({tlu_ss_complete_rep0 , | |
290 | tlu_hardstop_request_rep0 , | |
291 | tlu_softstop_request_rep0 , | |
292 | power_throttle[2:0] , | |
293 | tlu_trigger_pulse_rep0 , | |
294 | tlu_dbg_instr_cmt_grp0_rep0 [1:0], | |
295 | tlu_dbg_instr_cmt_grp1_rep0 [1:0]}), | |
296 | .dout ({spc_ss_complete , | |
297 | spc_hardstop_request , | |
298 | spc_softstop_request , | |
299 | power_throttle_buf[2:0] , | |
300 | spc_trigger_pulse , | |
301 | spc_dbg_instr_cmt_grp0 [1:0], | |
302 | spc_dbg_instr_cmt_grp1 [1:0]}) | |
303 | ); | |
304 | ||
305 | spc_msf0_dpmsff_macro__stack_8r__width_8 bank1_lat ( | |
306 | .scan_in(bank1_lat_scanin), | |
307 | .scan_out(bank1_lat_scanout), | |
308 | .din ({tlu_ss_complete , | |
309 | tlu_hardstop_request , | |
310 | tlu_softstop_request , | |
311 | tlu_trigger_pulse , | |
312 | tlu_dbg_instr_cmt_grp0 [1:0], | |
313 | tlu_dbg_instr_cmt_grp1 [1:0]}), | |
314 | .dout ({tlu_ss_complete_rep0 , | |
315 | tlu_hardstop_request_rep0 , | |
316 | tlu_softstop_request_rep0 , | |
317 | tlu_trigger_pulse_rep0 , | |
318 | tlu_dbg_instr_cmt_grp0_rep0 [1:0], | |
319 | tlu_dbg_instr_cmt_grp1_rep0 [1:0]}), | |
320 | .clk(clk), | |
321 | .en(en), | |
322 | .se(se), | |
323 | .siclk(siclk), | |
324 | .soclk(soclk), | |
325 | .pce_ov(pce_ov), | |
326 | .stop(stop) | |
327 | ); | |
328 | ||
329 | spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_1 bank2_rep1 ( | |
330 | .din (tcu_ss_request ), | |
331 | .dout (tcu_ss_request_rep0 ) | |
332 | ); | |
333 | ||
334 | spc_msf0_dpmsff_macro__stack_8r__width_3 bank2_lat ( | |
335 | .scan_in(bank2_lat_scanin), | |
336 | .scan_out(bank2_lat_scanout), | |
337 | .se ( tcu_se_scancollar_out ), | |
338 | .din ({slow_cmp_sync_en , | |
339 | cmp_slow_sync_en , | |
340 | tcu_ss_request_rep0 }), | |
341 | .dout ({slow_cmp_sync_en_ff , | |
342 | cmp_slow_sync_en_ff , | |
343 | msf0_ss_request }), | |
344 | .clk(clk), | |
345 | .en(en), | |
346 | .siclk(siclk), | |
347 | .soclk(soclk), | |
348 | .pce_ov(pce_ov), | |
349 | .stop(stop) | |
350 | ); | |
351 | ||
352 | spc_msf0_dpbuff_macro__dbuff_16x__rep_1__stack_none__width_5 bank3_rep0 ( | |
353 | .din ({efu_spc_fuse_data, | |
354 | efu_spc_fuse_ixfer_en, | |
355 | efu_spc_fuse_dxfer_en, | |
356 | efu_spc_fuse_iclr, | |
357 | efu_spc_fuse_dclr}), | |
358 | .dout ({efu_spc_fuse_data_bufin, | |
359 | efu_spc_fuse_ixfer_en_bufin, | |
360 | efu_spc_fuse_dxfer_en_bufin, | |
361 | efu_spc_fuse_iclr_bufin, | |
362 | efu_spc_fuse_dclr_bufin}) | |
363 | ); | |
364 | ||
365 | spc_msf0_dpinv_macro__width_1 bank3_inv ( | |
366 | .din(lb_lbist_running), | |
367 | .dout(lb_lbist_running_n1) | |
368 | ); | |
369 | ||
370 | spc_msf0_dpand_macro__width_5 bank3_and ( | |
371 | .din0 ({efu_spc_fuse_data_bufin, | |
372 | efu_spc_fuse_ixfer_en_bufin, | |
373 | efu_spc_fuse_dxfer_en_bufin, | |
374 | efu_spc_fuse_iclr_bufin, | |
375 | efu_spc_fuse_dclr_bufin}), | |
376 | .din1 ({5 {lb_lbist_running_n1}}), | |
377 | .dout ({lb_efu_spc_fuse_data, | |
378 | lb_efu_spc_fuse_ixfer_en, | |
379 | lb_efu_spc_fuse_dxfer_en, | |
380 | lb_efu_spc_fuse_iclr, | |
381 | lb_efu_spc_fuse_dclr}) | |
382 | ||
383 | ); | |
384 | ||
385 | spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_19 bank3_rep1 ( | |
386 | .din ({ncu_cmp_tick_enable , | |
387 | tcu_core_running[7:0], | |
388 | lb_efu_spc_fuse_data, | |
389 | lb_efu_spc_fuse_ixfer_en, | |
390 | lb_efu_spc_fuse_dxfer_en, | |
391 | lb_efu_spc_fuse_iclr, | |
392 | lb_efu_spc_fuse_dclr, | |
393 | spc_efu_fuse_ddata_buf, | |
394 | spc_efu_fuse_idata_buf, | |
395 | spc_efu_fuse_ixfer_en_buf, | |
396 | spc_efu_fuse_dxfer_en_buf, | |
397 | ncu_wmr_vec_mask }), | |
398 | .dout ({ncu_cmp_tick_enable_rep0 , | |
399 | tcu_core_running_rep0[7:0], | |
400 | efu_spc_fuse_data_buf, | |
401 | efu_spc_fuse_ixfer_en_buf, | |
402 | efu_spc_fuse_dxfer_en_buf, | |
403 | efu_spc_fuse_iclr_buf, | |
404 | efu_spc_fuse_dclr_buf, | |
405 | spc_efu_fuse_ddata, | |
406 | spc_efu_fuse_idata, | |
407 | spc_efu_fuse_ixfer_en, | |
408 | spc_efu_fuse_dxfer_en, | |
409 | ncu_wmr_vec_mask_rep0 }) | |
410 | ); | |
411 | ||
412 | spc_msf0_dpmsff_macro__stack_10r__width_10 bank3_lat ( | |
413 | .scan_in(bank3_lat_scanin), | |
414 | .scan_out(bank3_lat_scanout), | |
415 | .se ( tcu_se_scancollar_out ), | |
416 | .en ( slow_cmp_sync_en_ff), | |
417 | .din ({ncu_cmp_tick_enable_rep0 , | |
418 | tcu_core_running_rep0[7:0], | |
419 | ncu_wmr_vec_mask_rep0 }), | |
420 | .dout ({msf0_cmp_tick_enable , | |
421 | msf0_core_running[7:0] , | |
422 | msf0_wmr_vec_mask }), | |
423 | .clk(clk), | |
424 | .siclk(siclk), | |
425 | .soclk(soclk), | |
426 | .pce_ov(pce_ov), | |
427 | .stop(stop) | |
428 | ); | |
429 | ||
430 | spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_5 bank4_rep1 ( | |
431 | .din ({tcu_atpg_mode, | |
432 | tcu_ss_mode, | |
433 | tcu_mbist_user_mode, | |
434 | tcu_mbist_bisi_en, | |
435 | tcu_do_mode }), | |
436 | .dout ({msf0_atpg_mode_buf, | |
437 | tcu_ss_mode_rep0, | |
438 | tcu_mbist_user_mode_rep0, | |
439 | tcu_mbist_bisi_en_rep0, | |
440 | tcu_do_mode_rep0 }) | |
441 | ); | |
442 | ||
443 | spc_msf0_dpmsff_macro__stack_8r__width_4 bank4_lat ( | |
444 | .scan_in(bank4_lat_scanin), | |
445 | .scan_out(bank4_lat_scanout), | |
446 | .se ( tcu_se_scancollar_out ), | |
447 | .en ( slow_cmp_sync_en_ff), | |
448 | .din ({tcu_ss_mode_rep0, | |
449 | tcu_mbist_user_mode_rep0, | |
450 | tcu_mbist_bisi_en_rep0, | |
451 | tcu_do_mode_rep0 }), | |
452 | .dout ({msf0_ss_mode, | |
453 | msf0_mbist_user_mode_ff, | |
454 | msf0_mbist_bisi_en_ff, | |
455 | msf0_do_mode }), | |
456 | .clk(clk), | |
457 | .siclk(siclk), | |
458 | .soclk(soclk), | |
459 | .pce_ov(pce_ov), | |
460 | .stop(stop) | |
461 | ); | |
462 | ||
463 | spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_4 bank5_rep1 ( | |
464 | .din ({tcu_shscanid [2:0], | |
465 | tcu_shscan_clk_stop }), | |
466 | .dout ({tcu_shscanid_rep0 [2:0], | |
467 | tcu_shscan_clk_stop_rep0 }) | |
468 | ); | |
469 | ||
470 | spc_msf0_dpmsff_macro__stack_8r__width_4 bank5_lat ( | |
471 | .scan_in(bank5_lat_scanin), | |
472 | .scan_out(bank5_lat_scanout), | |
473 | .se ( tcu_se_scancollar_out ), | |
474 | .en ( slow_cmp_sync_en_ff), | |
475 | .din ({tcu_shscanid_rep0 [2:0], | |
476 | tcu_shscan_clk_stop_rep0 }), | |
477 | .dout ({msf0_shscanid [2:0], | |
478 | msf0_shscan_clk_stop }), | |
479 | .clk(clk), | |
480 | .siclk(siclk), | |
481 | .soclk(soclk), | |
482 | .pce_ov(pce_ov), | |
483 | .stop(stop) | |
484 | ); | |
485 | ||
486 | ||
487 | // fixscan start: | |
488 | assign bank0_lat_scanin = scan_in ; | |
489 | assign bank1_lat_scanin = bank0_lat_scanout ; | |
490 | assign bank2_lat_scanin = bank1_lat_scanout ; | |
491 | assign bank3_lat_scanin = bank2_lat_scanout ; | |
492 | assign bank4_lat_scanin = bank3_lat_scanout ; | |
493 | assign bank5_lat_scanin = bank4_lat_scanout ; | |
494 | assign scan_out = bank5_lat_scanout ; | |
495 | // fixscan end: | |
496 | endmodule | |
497 | ||
498 | ||
499 | ||
500 | ||
501 | ||
502 | ||
503 | // any PARAMS parms go into naming of macro | |
504 | ||
505 | module spc_msf0_dpmsff_macro__stack_10r__width_8 ( | |
506 | din, | |
507 | clk, | |
508 | en, | |
509 | se, | |
510 | scan_in, | |
511 | siclk, | |
512 | soclk, | |
513 | pce_ov, | |
514 | stop, | |
515 | dout, | |
516 | scan_out); | |
517 | wire l1clk; | |
518 | wire siclk_out; | |
519 | wire soclk_out; | |
520 | wire [6:0] so; | |
521 | ||
522 | input [7:0] din; | |
523 | ||
524 | ||
525 | input clk; | |
526 | input en; | |
527 | input se; | |
528 | input scan_in; | |
529 | input siclk; | |
530 | input soclk; | |
531 | input pce_ov; | |
532 | input stop; | |
533 | ||
534 | ||
535 | ||
536 | output [7:0] dout; | |
537 | ||
538 | ||
539 | output scan_out; | |
540 | ||
541 | ||
542 | ||
543 | ||
544 | cl_dp1_l1hdr_8x c0_0 ( | |
545 | .l2clk(clk), | |
546 | .pce(en), | |
547 | .aclk(siclk), | |
548 | .bclk(soclk), | |
549 | .l1clk(l1clk), | |
550 | .se(se), | |
551 | .pce_ov(pce_ov), | |
552 | .stop(stop), | |
553 | .siclk_out(siclk_out), | |
554 | .soclk_out(soclk_out) | |
555 | ); | |
556 | dff #(8) d0_0 ( | |
557 | .l1clk(l1clk), | |
558 | .siclk(siclk_out), | |
559 | .soclk(soclk_out), | |
560 | .d(din[7:0]), | |
561 | .si({scan_in,so[6:0]}), | |
562 | .so({so[6:0],scan_out}), | |
563 | .q(dout[7:0]) | |
564 | ); | |
565 | ||
566 | ||
567 | ||
568 | ||
569 | ||
570 | ||
571 | ||
572 | ||
573 | ||
574 | ||
575 | ||
576 | ||
577 | ||
578 | ||
579 | ||
580 | ||
581 | ||
582 | ||
583 | ||
584 | ||
585 | endmodule | |
586 | ||
587 | ||
588 | ||
589 | ||
590 | ||
591 | ||
592 | ||
593 | ||
594 | ||
595 | // | |
596 | // buff macro | |
597 | // | |
598 | // | |
599 | ||
600 | ||
601 | ||
602 | ||
603 | ||
604 | module spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_8 ( | |
605 | din, | |
606 | dout); | |
607 | input [7:0] din; | |
608 | output [7:0] dout; | |
609 | ||
610 | ||
611 | ||
612 | ||
613 | ||
614 | ||
615 | buff #(8) d0_0 ( | |
616 | .in(din[7:0]), | |
617 | .out(dout[7:0]) | |
618 | ); | |
619 | ||
620 | ||
621 | ||
622 | ||
623 | ||
624 | ||
625 | ||
626 | ||
627 | endmodule | |
628 | ||
629 | ||
630 | ||
631 | ||
632 | ||
633 | // | |
634 | // buff macro | |
635 | // | |
636 | // | |
637 | ||
638 | ||
639 | ||
640 | ||
641 | ||
642 | module spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_11 ( | |
643 | din, | |
644 | dout); | |
645 | input [10:0] din; | |
646 | output [10:0] dout; | |
647 | ||
648 | ||
649 | ||
650 | ||
651 | ||
652 | ||
653 | buff #(11) d0_0 ( | |
654 | .in(din[10:0]), | |
655 | .out(dout[10:0]) | |
656 | ); | |
657 | ||
658 | ||
659 | ||
660 | ||
661 | ||
662 | ||
663 | ||
664 | ||
665 | endmodule | |
666 | ||
667 | ||
668 | ||
669 | ||
670 | ||
671 | ||
672 | ||
673 | ||
674 | ||
675 | // any PARAMS parms go into naming of macro | |
676 | ||
677 | module spc_msf0_dpmsff_macro__stack_8r__width_8 ( | |
678 | din, | |
679 | clk, | |
680 | en, | |
681 | se, | |
682 | scan_in, | |
683 | siclk, | |
684 | soclk, | |
685 | pce_ov, | |
686 | stop, | |
687 | dout, | |
688 | scan_out); | |
689 | wire l1clk; | |
690 | wire siclk_out; | |
691 | wire soclk_out; | |
692 | wire [6:0] so; | |
693 | ||
694 | input [7:0] din; | |
695 | ||
696 | ||
697 | input clk; | |
698 | input en; | |
699 | input se; | |
700 | input scan_in; | |
701 | input siclk; | |
702 | input soclk; | |
703 | input pce_ov; | |
704 | input stop; | |
705 | ||
706 | ||
707 | ||
708 | output [7:0] dout; | |
709 | ||
710 | ||
711 | output scan_out; | |
712 | ||
713 | ||
714 | ||
715 | ||
716 | cl_dp1_l1hdr_8x c0_0 ( | |
717 | .l2clk(clk), | |
718 | .pce(en), | |
719 | .aclk(siclk), | |
720 | .bclk(soclk), | |
721 | .l1clk(l1clk), | |
722 | .se(se), | |
723 | .pce_ov(pce_ov), | |
724 | .stop(stop), | |
725 | .siclk_out(siclk_out), | |
726 | .soclk_out(soclk_out) | |
727 | ); | |
728 | dff #(8) d0_0 ( | |
729 | .l1clk(l1clk), | |
730 | .siclk(siclk_out), | |
731 | .soclk(soclk_out), | |
732 | .d(din[7:0]), | |
733 | .si({scan_in,so[6:0]}), | |
734 | .so({so[6:0],scan_out}), | |
735 | .q(dout[7:0]) | |
736 | ); | |
737 | ||
738 | ||
739 | ||
740 | ||
741 | ||
742 | ||
743 | ||
744 | ||
745 | ||
746 | ||
747 | ||
748 | ||
749 | ||
750 | ||
751 | ||
752 | ||
753 | ||
754 | ||
755 | ||
756 | ||
757 | endmodule | |
758 | ||
759 | ||
760 | ||
761 | ||
762 | ||
763 | ||
764 | ||
765 | ||
766 | ||
767 | // | |
768 | // buff macro | |
769 | // | |
770 | // | |
771 | ||
772 | ||
773 | ||
774 | ||
775 | ||
776 | module spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_1 ( | |
777 | din, | |
778 | dout); | |
779 | input [0:0] din; | |
780 | output [0:0] dout; | |
781 | ||
782 | ||
783 | ||
784 | ||
785 | ||
786 | ||
787 | buff #(1) d0_0 ( | |
788 | .in(din[0:0]), | |
789 | .out(dout[0:0]) | |
790 | ); | |
791 | ||
792 | ||
793 | ||
794 | ||
795 | ||
796 | ||
797 | ||
798 | ||
799 | endmodule | |
800 | ||
801 | ||
802 | ||
803 | ||
804 | ||
805 | ||
806 | ||
807 | ||
808 | ||
809 | // any PARAMS parms go into naming of macro | |
810 | ||
811 | module spc_msf0_dpmsff_macro__stack_8r__width_3 ( | |
812 | din, | |
813 | clk, | |
814 | en, | |
815 | se, | |
816 | scan_in, | |
817 | siclk, | |
818 | soclk, | |
819 | pce_ov, | |
820 | stop, | |
821 | dout, | |
822 | scan_out); | |
823 | wire l1clk; | |
824 | wire siclk_out; | |
825 | wire soclk_out; | |
826 | wire [1:0] so; | |
827 | ||
828 | input [2:0] din; | |
829 | ||
830 | ||
831 | input clk; | |
832 | input en; | |
833 | input se; | |
834 | input scan_in; | |
835 | input siclk; | |
836 | input soclk; | |
837 | input pce_ov; | |
838 | input stop; | |
839 | ||
840 | ||
841 | ||
842 | output [2:0] dout; | |
843 | ||
844 | ||
845 | output scan_out; | |
846 | ||
847 | ||
848 | ||
849 | ||
850 | cl_dp1_l1hdr_8x c0_0 ( | |
851 | .l2clk(clk), | |
852 | .pce(en), | |
853 | .aclk(siclk), | |
854 | .bclk(soclk), | |
855 | .l1clk(l1clk), | |
856 | .se(se), | |
857 | .pce_ov(pce_ov), | |
858 | .stop(stop), | |
859 | .siclk_out(siclk_out), | |
860 | .soclk_out(soclk_out) | |
861 | ); | |
862 | dff #(3) d0_0 ( | |
863 | .l1clk(l1clk), | |
864 | .siclk(siclk_out), | |
865 | .soclk(soclk_out), | |
866 | .d(din[2:0]), | |
867 | .si({scan_in,so[1:0]}), | |
868 | .so({so[1:0],scan_out}), | |
869 | .q(dout[2:0]) | |
870 | ); | |
871 | ||
872 | ||
873 | ||
874 | ||
875 | ||
876 | ||
877 | ||
878 | ||
879 | ||
880 | ||
881 | ||
882 | ||
883 | ||
884 | ||
885 | ||
886 | ||
887 | ||
888 | ||
889 | ||
890 | ||
891 | endmodule | |
892 | ||
893 | ||
894 | ||
895 | ||
896 | ||
897 | ||
898 | ||
899 | ||
900 | ||
901 | // | |
902 | // buff macro | |
903 | // | |
904 | // | |
905 | ||
906 | ||
907 | ||
908 | ||
909 | ||
910 | module spc_msf0_dpbuff_macro__dbuff_16x__rep_1__stack_none__width_5 ( | |
911 | din, | |
912 | dout); | |
913 | input [4:0] din; | |
914 | output [4:0] dout; | |
915 | ||
916 | ||
917 | ||
918 | ||
919 | ||
920 | ||
921 | buff #(5) d0_0 ( | |
922 | .in(din[4:0]), | |
923 | .out(dout[4:0]) | |
924 | ); | |
925 | ||
926 | ||
927 | ||
928 | ||
929 | ||
930 | ||
931 | ||
932 | ||
933 | endmodule | |
934 | ||
935 | ||
936 | ||
937 | ||
938 | ||
939 | // | |
940 | // invert macro | |
941 | // | |
942 | // | |
943 | ||
944 | ||
945 | ||
946 | ||
947 | ||
948 | module spc_msf0_dpinv_macro__width_1 ( | |
949 | din, | |
950 | dout); | |
951 | input [0:0] din; | |
952 | output [0:0] dout; | |
953 | ||
954 | ||
955 | ||
956 | ||
957 | ||
958 | ||
959 | inv #(1) d0_0 ( | |
960 | .in(din[0:0]), | |
961 | .out(dout[0:0]) | |
962 | ); | |
963 | ||
964 | ||
965 | ||
966 | ||
967 | ||
968 | ||
969 | ||
970 | ||
971 | ||
972 | endmodule | |
973 | ||
974 | ||
975 | ||
976 | ||
977 | ||
978 | // | |
979 | // and macro for ports = 2,3,4 | |
980 | // | |
981 | // | |
982 | ||
983 | ||
984 | ||
985 | ||
986 | ||
987 | module spc_msf0_dpand_macro__width_5 ( | |
988 | din0, | |
989 | din1, | |
990 | dout); | |
991 | input [4:0] din0; | |
992 | input [4:0] din1; | |
993 | output [4:0] dout; | |
994 | ||
995 | ||
996 | ||
997 | ||
998 | ||
999 | ||
1000 | and2 #(5) d0_0 ( | |
1001 | .in0(din0[4:0]), | |
1002 | .in1(din1[4:0]), | |
1003 | .out(dout[4:0]) | |
1004 | ); | |
1005 | ||
1006 | ||
1007 | ||
1008 | ||
1009 | ||
1010 | ||
1011 | ||
1012 | ||
1013 | ||
1014 | endmodule | |
1015 | ||
1016 | ||
1017 | ||
1018 | ||
1019 | ||
1020 | // | |
1021 | // buff macro | |
1022 | // | |
1023 | // | |
1024 | ||
1025 | ||
1026 | ||
1027 | ||
1028 | ||
1029 | module spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_19 ( | |
1030 | din, | |
1031 | dout); | |
1032 | input [18:0] din; | |
1033 | output [18:0] dout; | |
1034 | ||
1035 | ||
1036 | ||
1037 | ||
1038 | ||
1039 | ||
1040 | buff #(19) d0_0 ( | |
1041 | .in(din[18:0]), | |
1042 | .out(dout[18:0]) | |
1043 | ); | |
1044 | ||
1045 | ||
1046 | ||
1047 | ||
1048 | ||
1049 | ||
1050 | ||
1051 | ||
1052 | endmodule | |
1053 | ||
1054 | ||
1055 | ||
1056 | ||
1057 | ||
1058 | ||
1059 | ||
1060 | ||
1061 | ||
1062 | // any PARAMS parms go into naming of macro | |
1063 | ||
1064 | module spc_msf0_dpmsff_macro__stack_10r__width_10 ( | |
1065 | din, | |
1066 | clk, | |
1067 | en, | |
1068 | se, | |
1069 | scan_in, | |
1070 | siclk, | |
1071 | soclk, | |
1072 | pce_ov, | |
1073 | stop, | |
1074 | dout, | |
1075 | scan_out); | |
1076 | wire l1clk; | |
1077 | wire siclk_out; | |
1078 | wire soclk_out; | |
1079 | wire [8:0] so; | |
1080 | ||
1081 | input [9:0] din; | |
1082 | ||
1083 | ||
1084 | input clk; | |
1085 | input en; | |
1086 | input se; | |
1087 | input scan_in; | |
1088 | input siclk; | |
1089 | input soclk; | |
1090 | input pce_ov; | |
1091 | input stop; | |
1092 | ||
1093 | ||
1094 | ||
1095 | output [9:0] dout; | |
1096 | ||
1097 | ||
1098 | output scan_out; | |
1099 | ||
1100 | ||
1101 | ||
1102 | ||
1103 | cl_dp1_l1hdr_8x c0_0 ( | |
1104 | .l2clk(clk), | |
1105 | .pce(en), | |
1106 | .aclk(siclk), | |
1107 | .bclk(soclk), | |
1108 | .l1clk(l1clk), | |
1109 | .se(se), | |
1110 | .pce_ov(pce_ov), | |
1111 | .stop(stop), | |
1112 | .siclk_out(siclk_out), | |
1113 | .soclk_out(soclk_out) | |
1114 | ); | |
1115 | dff #(10) d0_0 ( | |
1116 | .l1clk(l1clk), | |
1117 | .siclk(siclk_out), | |
1118 | .soclk(soclk_out), | |
1119 | .d(din[9:0]), | |
1120 | .si({scan_in,so[8:0]}), | |
1121 | .so({so[8:0],scan_out}), | |
1122 | .q(dout[9:0]) | |
1123 | ); | |
1124 | ||
1125 | ||
1126 | ||
1127 | ||
1128 | ||
1129 | ||
1130 | ||
1131 | ||
1132 | ||
1133 | ||
1134 | ||
1135 | ||
1136 | ||
1137 | ||
1138 | ||
1139 | ||
1140 | ||
1141 | ||
1142 | ||
1143 | ||
1144 | endmodule | |
1145 | ||
1146 | ||
1147 | ||
1148 | ||
1149 | ||
1150 | ||
1151 | ||
1152 | ||
1153 | ||
1154 | // | |
1155 | // buff macro | |
1156 | // | |
1157 | // | |
1158 | ||
1159 | ||
1160 | ||
1161 | ||
1162 | ||
1163 | module spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_5 ( | |
1164 | din, | |
1165 | dout); | |
1166 | input [4:0] din; | |
1167 | output [4:0] dout; | |
1168 | ||
1169 | ||
1170 | ||
1171 | ||
1172 | ||
1173 | ||
1174 | buff #(5) d0_0 ( | |
1175 | .in(din[4:0]), | |
1176 | .out(dout[4:0]) | |
1177 | ); | |
1178 | ||
1179 | ||
1180 | ||
1181 | ||
1182 | ||
1183 | ||
1184 | ||
1185 | ||
1186 | endmodule | |
1187 | ||
1188 | ||
1189 | ||
1190 | ||
1191 | ||
1192 | ||
1193 | ||
1194 | ||
1195 | ||
1196 | // any PARAMS parms go into naming of macro | |
1197 | ||
1198 | module spc_msf0_dpmsff_macro__stack_8r__width_4 ( | |
1199 | din, | |
1200 | clk, | |
1201 | en, | |
1202 | se, | |
1203 | scan_in, | |
1204 | siclk, | |
1205 | soclk, | |
1206 | pce_ov, | |
1207 | stop, | |
1208 | dout, | |
1209 | scan_out); | |
1210 | wire l1clk; | |
1211 | wire siclk_out; | |
1212 | wire soclk_out; | |
1213 | wire [2:0] so; | |
1214 | ||
1215 | input [3:0] din; | |
1216 | ||
1217 | ||
1218 | input clk; | |
1219 | input en; | |
1220 | input se; | |
1221 | input scan_in; | |
1222 | input siclk; | |
1223 | input soclk; | |
1224 | input pce_ov; | |
1225 | input stop; | |
1226 | ||
1227 | ||
1228 | ||
1229 | output [3:0] dout; | |
1230 | ||
1231 | ||
1232 | output scan_out; | |
1233 | ||
1234 | ||
1235 | ||
1236 | ||
1237 | cl_dp1_l1hdr_8x c0_0 ( | |
1238 | .l2clk(clk), | |
1239 | .pce(en), | |
1240 | .aclk(siclk), | |
1241 | .bclk(soclk), | |
1242 | .l1clk(l1clk), | |
1243 | .se(se), | |
1244 | .pce_ov(pce_ov), | |
1245 | .stop(stop), | |
1246 | .siclk_out(siclk_out), | |
1247 | .soclk_out(soclk_out) | |
1248 | ); | |
1249 | dff #(4) d0_0 ( | |
1250 | .l1clk(l1clk), | |
1251 | .siclk(siclk_out), | |
1252 | .soclk(soclk_out), | |
1253 | .d(din[3:0]), | |
1254 | .si({scan_in,so[2:0]}), | |
1255 | .so({so[2:0],scan_out}), | |
1256 | .q(dout[3:0]) | |
1257 | ); | |
1258 | ||
1259 | ||
1260 | ||
1261 | ||
1262 | ||
1263 | ||
1264 | ||
1265 | ||
1266 | ||
1267 | ||
1268 | ||
1269 | ||
1270 | ||
1271 | ||
1272 | ||
1273 | ||
1274 | ||
1275 | ||
1276 | ||
1277 | ||
1278 | endmodule | |
1279 | ||
1280 | ||
1281 | ||
1282 | ||
1283 | ||
1284 | ||
1285 | ||
1286 | ||
1287 | ||
1288 | // | |
1289 | // buff macro | |
1290 | // | |
1291 | // | |
1292 | ||
1293 | ||
1294 | ||
1295 | ||
1296 | ||
1297 | module spc_msf0_dpbuff_macro__dbuff_32x__rep_1__stack_none__width_4 ( | |
1298 | din, | |
1299 | dout); | |
1300 | input [3:0] din; | |
1301 | output [3:0] dout; | |
1302 | ||
1303 | ||
1304 | ||
1305 | ||
1306 | ||
1307 | ||
1308 | buff #(4) d0_0 ( | |
1309 | .in(din[3:0]), | |
1310 | .out(dout[3:0]) | |
1311 | ); | |
1312 | ||
1313 | ||
1314 | ||
1315 | ||
1316 | ||
1317 | ||
1318 | ||
1319 | ||
1320 | endmodule | |
1321 | ||
1322 | ||
1323 | ||
1324 |