Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / db1 / rtl / db1_csr_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: db1_csr_ctl.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35`define IOB_CREG_DBG_CNFG 40'h86_0000_0000
36`define IOB_CREG_IO_QSC 40'h86_0000_0008
37`define IOB_CREG_SOC_DECR 40'h86_0000_0010
38
39
40module db1_csr_ctl (
41 mcu0_dbg1_crc21,
42 mcu0_dbg1_rd_req_in_0,
43 mcu0_dbg1_rd_req_in_1,
44 mcu0_dbg1_rd_req_out,
45 mcu0_dbg1_wr_req_in_0,
46 mcu0_dbg1_wr_req_in_1,
47 mcu0_dbg1_wr_req_out,
48 mcu0_dbg1_mecc_err,
49 mcu0_dbg1_secc_err,
50 mcu0_dbg1_fbd_err,
51 mcu0_dbg1_err_mode,
52 mcu0_dbg1_err_event,
53 mcu1_dbg1_crc21,
54 mcu1_dbg1_rd_req_in_0,
55 mcu1_dbg1_rd_req_in_1,
56 mcu1_dbg1_rd_req_out,
57 mcu1_dbg1_wr_req_in_0,
58 mcu1_dbg1_wr_req_in_1,
59 mcu1_dbg1_wr_req_out,
60 mcu1_dbg1_mecc_err,
61 mcu1_dbg1_secc_err,
62 mcu1_dbg1_fbd_err,
63 mcu1_dbg1_err_mode,
64 mcu1_dbg1_err_event,
65 mcu2_dbg1_crc21,
66 mcu2_dbg1_rd_req_in_0,
67 mcu2_dbg1_rd_req_in_1,
68 mcu2_dbg1_rd_req_out,
69 mcu2_dbg1_wr_req_in_0,
70 mcu2_dbg1_wr_req_in_1,
71 mcu2_dbg1_wr_req_out,
72 mcu2_dbg1_mecc_err,
73 mcu2_dbg1_secc_err,
74 mcu2_dbg1_fbd_err,
75 mcu2_dbg1_err_mode,
76 mcu2_dbg1_err_event,
77 mcu3_dbg1_crc21,
78 mcu3_dbg1_rd_req_in_0,
79 mcu3_dbg1_rd_req_in_1,
80 mcu3_dbg1_rd_req_out,
81 mcu3_dbg1_wr_req_in_0,
82 mcu3_dbg1_wr_req_in_1,
83 mcu3_dbg1_wr_req_out,
84 mcu3_dbg1_mecc_err,
85 mcu3_dbg1_secc_err,
86 mcu3_dbg1_fbd_err,
87 mcu3_dbg1_err_mode,
88 mcu3_dbg1_err_event,
89 dbg1_niu_stall,
90 niu_dbg1_stall_ack,
91 dbg1_niu_resume,
92 dbg1_dmu_stall,
93 dmu_dbg1_stall_ack,
94 dbg1_dmu_resume,
95 dmu_dbg1_err_event,
96 ncu_dbg1_error_event,
97 l2t0_pa_match_synced,
98 l2t1_pa_match_synced,
99 l2t2_pa_match_synced,
100 l2t3_pa_match_synced,
101 l2t4_pa_match_synced,
102 l2t5_pa_match_synced,
103 l2t6_pa_match_synced,
104 l2t7_pa_match_synced,
105 l2t_error_event_synced,
106 tcu_mio_jtag_membist_mode,
107 tcu_dbr_gateoff,
108 mio_dbg1_testmode,
109 mio_pll_testmode,
110 dbg1_niu_dbg_sel,
111 dbg1_tcu_soc_hard_stop,
112 dbg1_tcu_soc_asrt_trigout,
113 iol2clk,
114 scan_in,
115 scan_out,
116 tcu_aclk,
117 tcu_bclk,
118 tcu_scan_en,
119 tcu_pce_ov,
120 tcu_clk_stop,
121 aclk_wmr,
122 wmr_protect,
123 rd_req_vld,
124 wr_req_vld,
125 addr_in,
126 data_in,
127 thr_id_in,
128 buf_id_in,
129 ack_busy,
130 rd_ack_vld,
131 rd_nack_vld,
132 req_acpted,
133 data_out,
134 thr_id_out,
135 buf_id_out,
136 mcu_dbg_signals,
137 mcu_dtm_signals,
138 sel_soc_obs_mode,
139 sel_charac_mode,
140 sel_rep_mode,
141 sel_core_soc_debug_mode,
142 sel_train_mode,
143 dbg1_mio_sel_niu_debug_mode,
144 dbg1_mio_sel_pcix_debug_mode,
145 dbg1_mio_sel_soc_obs_mode,
146 dbg1_mio_drv_en_op_only,
147 dbg1_mio_drv_en_muxtest_op,
148 dbg1_mio_drv_en_muxbist_op,
149 dbg1_mio_drv_en_muxtest_inp,
150 dbg1_mio_drv_en_muxtestpll_inp,
151 dbg1_mio_drv_imped);
152wire pce_ov;
153wire stop;
154wire siclk;
155wire soclk;
156wire se;
157wire dbg_en;
158wire ff_mcu_crc21signals_scanin;
159wire ff_mcu_crc21signals_scanout;
160wire l1clk;
161wire ff_mcu_signals_scanin;
162wire ff_mcu_signals_scanout;
163wire dbg_config_addr;
164wire dbg_config_en;
165wire ff_dbg_config_scanin;
166wire ff_dbg_config_scanout;
167wire dbg_train;
168wire niu_dbg_en;
169wire io_quiesce_addr;
170wire io_quiesce_en;
171wire ff_io_quiesce_scanin;
172wire ff_io_quiesce_scanout;
173wire dbg1_dmu_stall_din;
174wire ff_dbg1_dmu_stall_scanin;
175wire ff_dbg1_dmu_stall_scanout;
176wire dbg1_dmu_stall_r;
177wire dbg1_niu_stall_din;
178wire ff_dbg1_niu_stall_scanin;
179wire ff_dbg1_niu_stall_scanout;
180wire dbg1_niu_stall_r;
181wire dbg1_dmu_resume_din;
182wire ff_dbg1_dmu_resume_scanin;
183wire ff_dbg1_dmu_resume_scanout;
184wire dbg1_dmu_resume_r;
185wire dbg1_niu_resume_din;
186wire ff_dbg1_niu_resume_scanin;
187wire ff_dbg1_niu_resume_scanout;
188wire dbg1_niu_resume_r;
189wire dmu_stall_done_din;
190wire dmu_stall_done;
191wire ff_dmu_stall_done_scanin;
192wire ff_dmu_stall_done_scanout;
193wire niu_stall_done_din;
194wire niu_stall_done;
195wire ff_niu_stall_done_scanin;
196wire ff_niu_stall_done_scanout;
197wire soc_decr_addr;
198wire soc_decr_en;
199wire ff_soc_decr_scanin;
200wire ff_soc_decr_scanout;
201wire dmu_dbg1_err_event_r;
202wire ncu_dbg1_error_event_r;
203wire mcu0_dbg1_err_event_r;
204wire mcu1_dbg1_err_event_r;
205wire mcu2_dbg1_err_event_r;
206wire mcu3_dbg1_err_event_r;
207wire l2t0_pa_match_synced_r;
208wire l2t1_pa_match_synced_r;
209wire l2t2_pa_match_synced_r;
210wire l2t3_pa_match_synced_r;
211wire l2t4_pa_match_synced_r;
212wire l2t5_pa_match_synced_r;
213wire l2t6_pa_match_synced_r;
214wire l2t7_pa_match_synced_r;
215wire l2t_error_event_synced_r;
216wire ff_soc_error_regs_scanin;
217wire ff_soc_error_regs_scanout;
218wire dmu_dbg1_err_event_r2;
219wire ncu_dbg1_error_event_r2;
220wire mcu0_dbg1_err_event_r2;
221wire mcu1_dbg1_err_event_r2;
222wire mcu2_dbg1_err_event_r2;
223wire mcu3_dbg1_err_event_r2;
224wire l2t0_pa_match_synced_r2;
225wire l2t1_pa_match_synced_r2;
226wire l2t2_pa_match_synced_r2;
227wire l2t3_pa_match_synced_r2;
228wire l2t4_pa_match_synced_r2;
229wire l2t5_pa_match_synced_r2;
230wire l2t6_pa_match_synced_r2;
231wire l2t7_pa_match_synced_r2;
232wire l2t_error_event_synced_r2;
233wire dbg1_tcu_soc_hard_stop_din;
234wire dbg1_tcu_soc_asrt_trigout_din;
235wire ff_soc_hard_stop_scanin;
236wire ff_soc_hard_stop_scanout;
237wire ff_soc_asrt_trigout_scanin;
238wire ff_soc_asrt_trigout_scanout;
239wire iob_creg_addr;
240wire rd_ack_vld_ff_scanin;
241wire rd_ack_vld_ff_scanout;
242wire rd_nack_vld_ff_scanin;
243wire rd_nack_vld_ff_scanout;
244wire req_acpted_ff_scanin;
245wire req_acpted_ff_scanout;
246wire thr_id_ff_scanin;
247wire thr_id_ff_scanout;
248wire buf_id_ff_scanin;
249wire buf_id_ff_scanout;
250wire spares_scanin;
251wire spares_scanout;
252
253
254input mcu0_dbg1_crc21;
255input [3:0] mcu0_dbg1_rd_req_in_0;
256input [3:0] mcu0_dbg1_rd_req_in_1;
257input [4:0] mcu0_dbg1_rd_req_out;
258input mcu0_dbg1_wr_req_in_0;
259input mcu0_dbg1_wr_req_in_1;
260input [1:0] mcu0_dbg1_wr_req_out;
261input mcu0_dbg1_mecc_err;
262input mcu0_dbg1_secc_err;
263input mcu0_dbg1_fbd_err;
264input mcu0_dbg1_err_mode;
265input mcu0_dbg1_err_event;
266
267input mcu1_dbg1_crc21;
268input [3:0] mcu1_dbg1_rd_req_in_0;
269input [3:0] mcu1_dbg1_rd_req_in_1;
270input [4:0] mcu1_dbg1_rd_req_out;
271input mcu1_dbg1_wr_req_in_0;
272input mcu1_dbg1_wr_req_in_1;
273input [1:0] mcu1_dbg1_wr_req_out;
274input mcu1_dbg1_mecc_err;
275input mcu1_dbg1_secc_err;
276input mcu1_dbg1_fbd_err;
277input mcu1_dbg1_err_mode;
278input mcu1_dbg1_err_event;
279
280input mcu2_dbg1_crc21;
281input [3:0] mcu2_dbg1_rd_req_in_0;
282input [3:0] mcu2_dbg1_rd_req_in_1;
283input [4:0] mcu2_dbg1_rd_req_out;
284input mcu2_dbg1_wr_req_in_0;
285input mcu2_dbg1_wr_req_in_1;
286input [1:0] mcu2_dbg1_wr_req_out;
287input mcu2_dbg1_mecc_err;
288input mcu2_dbg1_secc_err;
289input mcu2_dbg1_fbd_err;
290input mcu2_dbg1_err_mode;
291input mcu2_dbg1_err_event;
292
293input mcu3_dbg1_crc21;
294input [3:0] mcu3_dbg1_rd_req_in_0;
295input [3:0] mcu3_dbg1_rd_req_in_1;
296input [4:0] mcu3_dbg1_rd_req_out;
297input mcu3_dbg1_wr_req_in_0;
298input mcu3_dbg1_wr_req_in_1;
299input [1:0] mcu3_dbg1_wr_req_out;
300input mcu3_dbg1_mecc_err;
301input mcu3_dbg1_secc_err;
302input mcu3_dbg1_fbd_err;
303input mcu3_dbg1_err_mode;
304input mcu3_dbg1_err_event;
305
306
307
308output dbg1_niu_stall;
309input niu_dbg1_stall_ack;
310output dbg1_niu_resume;
311
312output dbg1_dmu_stall;
313input dmu_dbg1_stall_ack;
314output dbg1_dmu_resume;
315
316input dmu_dbg1_err_event; //An error event occurred in DMU
317input ncu_dbg1_error_event; //An Error event occurred in NCU.
318
319input l2t0_pa_match_synced;
320input l2t1_pa_match_synced;
321input l2t2_pa_match_synced;
322input l2t3_pa_match_synced;
323input l2t4_pa_match_synced;
324input l2t5_pa_match_synced;
325input l2t6_pa_match_synced;
326input l2t7_pa_match_synced;
327input l2t_error_event_synced;
328
329input tcu_mio_jtag_membist_mode;
330input tcu_dbr_gateoff;
331input mio_dbg1_testmode;
332input mio_pll_testmode;
333output [4:0] dbg1_niu_dbg_sel;
334
335
336
337output dbg1_tcu_soc_hard_stop; //Hard Stop request to TCU fron SOC
338output dbg1_tcu_soc_asrt_trigout; //Assert TRIGOUT request to TCU from SOC
339
340input iol2clk ;
341input scan_in ;
342output scan_out ;
343input tcu_aclk ;
344input tcu_bclk ;
345input tcu_scan_en ;
346input tcu_pce_ov ;
347input tcu_clk_stop ;
348input aclk_wmr;
349input wmr_protect;
350
351input rd_req_vld ;//
352input wr_req_vld ;//
353input [39:0] addr_in ;//
354input [63:0] data_in ;//
355input [5:0] thr_id_in ;//
356input [1:0] buf_id_in ;//
357input ack_busy ;//
358 // Ack-Nack from DBG1, the local unit
359output rd_ack_vld ;//
360output rd_nack_vld ;//
361output req_acpted ;// Acceptance of CSR write or read command.
362
363
364output [63:0] data_out ;// Return data.
365output [5:0] thr_id_out ;//
366output [1:0] buf_id_out ;//
367
368output [83:0] mcu_dbg_signals;
369output [87:0] mcu_dtm_signals;
370
371output sel_soc_obs_mode;
372output sel_charac_mode;
373output sel_rep_mode;
374output sel_core_soc_debug_mode;
375output sel_train_mode;
376output dbg1_mio_sel_niu_debug_mode;
377output dbg1_mio_sel_pcix_debug_mode;
378output dbg1_mio_sel_soc_obs_mode;
379
380
381output dbg1_mio_drv_en_op_only; //Drive en to pins configured only as debug port
382output dbg1_mio_drv_en_muxtest_op; //Drive en to pins configured both as debug port and scan out[31:0] pins
383output dbg1_mio_drv_en_muxbist_op; //Drive en to pins configured both as debug port and mbist output pins.
384output dbg1_mio_drv_en_muxtest_inp; //Drive en to pins configured as debug port and testmode input pins
385output dbg1_mio_drv_en_muxtestpll_inp; // Drive en to pins configured as debug port and pll_testmode input pins
386
387output [1:0] dbg1_mio_drv_imped;
388
389
390
391// Wire declarations
392
393wire [11:0] dbg_config_reg;
394wire [2:0] dbg_conf_mode;
395wire [1:0] io_quiesce_out;
396wire [21:0] soc_decr;
397
398// Scan reassigns
399assign pce_ov = tcu_pce_ov;
400assign stop = tcu_clk_stop;
401assign siclk = tcu_aclk;
402assign soclk = tcu_bclk;
403assign se = tcu_scan_en;
404
405assign dbg1_mio_drv_en_op_only = dbg_en ;
406assign dbg1_mio_drv_en_muxbist_op = dbg_en | tcu_mio_jtag_membist_mode;
407assign dbg1_mio_drv_en_muxtest_op = dbg_en | mio_dbg1_testmode;
408assign dbg1_mio_drv_en_muxtest_inp = dbg_en & ~mio_dbg1_testmode;
409assign dbg1_mio_drv_en_muxtestpll_inp = dbg_en & ~mio_pll_testmode;
410
411// flop MCU signals here before sending to dbg1_dbgprt_dp
412
413wire [3:0] mcu_crc21_signals;
414
415db1_csr_ctl_msff_ctl_macro__width_4 ff_mcu_crc21signals
416 (.din ({mcu3_dbg1_crc21,mcu2_dbg1_crc21,
417 mcu1_dbg1_crc21,mcu0_dbg1_crc21}),
418 .scan_in(ff_mcu_crc21signals_scanin),
419 .scan_out(ff_mcu_crc21signals_scanout),
420 .l1clk (l1clk ),
421 .dout ({mcu_crc21_signals[3:0]}),
422 .siclk(siclk),
423 .soclk(soclk)
424 );
425
426
427
428db1_csr_ctl_msff_ctl_macro__width_84 ff_mcu_signals
429 (.din ({mcu0_dbg1_rd_req_in_0[3:0],
430 mcu0_dbg1_rd_req_in_1[3:0],
431 mcu0_dbg1_rd_req_out[4:0],
432 mcu0_dbg1_wr_req_in_0,
433 mcu0_dbg1_wr_req_in_1,
434 mcu0_dbg1_wr_req_out[1:0],
435 mcu0_dbg1_mecc_err,
436 mcu0_dbg1_secc_err,
437 mcu0_dbg1_fbd_err,
438 mcu0_dbg1_err_mode,
439 mcu1_dbg1_rd_req_in_0[3:0],
440 mcu1_dbg1_rd_req_in_1[3:0],
441 mcu1_dbg1_rd_req_out[4:0],
442 mcu1_dbg1_wr_req_in_0,
443 mcu1_dbg1_wr_req_in_1,
444 mcu1_dbg1_wr_req_out[1:0],
445 mcu1_dbg1_mecc_err,
446 mcu1_dbg1_secc_err,
447 mcu1_dbg1_fbd_err,
448 mcu1_dbg1_err_mode,
449 mcu2_dbg1_rd_req_in_0[3:0],
450 mcu2_dbg1_rd_req_in_1[3:0],
451 mcu2_dbg1_rd_req_out[4:0],
452 mcu2_dbg1_wr_req_in_0,
453 mcu2_dbg1_wr_req_in_1,
454 mcu2_dbg1_wr_req_out[1:0],
455 mcu2_dbg1_mecc_err,
456 mcu2_dbg1_secc_err,
457 mcu2_dbg1_fbd_err,
458 mcu2_dbg1_err_mode,
459 mcu3_dbg1_rd_req_in_0[3:0],
460 mcu3_dbg1_rd_req_in_1[3:0],
461 mcu3_dbg1_rd_req_out[4:0],
462 mcu3_dbg1_wr_req_in_0,
463 mcu3_dbg1_wr_req_in_1,
464 mcu3_dbg1_wr_req_out[1:0],
465 mcu3_dbg1_mecc_err,
466 mcu3_dbg1_secc_err,
467 mcu3_dbg1_fbd_err,
468 mcu3_dbg1_err_mode
469 }),
470 .scan_in(ff_mcu_signals_scanin),
471 .scan_out(ff_mcu_signals_scanout),
472 .l1clk (l1clk ),
473 .dout ({mcu_dbg_signals[83:0]}),
474 .siclk(siclk),
475 .soclk(soclk)
476 );
477
478// MCU DTM signal bus being sent out on the debug port
479
480assign mcu_dtm_signals = {
481 mcu_crc21_signals[3],mcu_dbg_signals[83:63],
482 mcu_crc21_signals[2],mcu_dbg_signals[62:42],
483 mcu_crc21_signals[1],mcu_dbg_signals[41:21],
484 mcu_crc21_signals[0],mcu_dbg_signals[20:0]};
485
486//_____________________________________________________________________
487//
488// Debug Configuration Register, RW , preserved across WMR
489//_____________________________________________________________________
490
491assign dbg_config_addr = (addr_in == `IOB_CREG_DBG_CNFG);
492assign dbg_config_en = wr_req_vld & dbg_config_addr;
493
494db1_csr_ctl_msff_ctl_macro__en_1__width_12 ff_dbg_config
495 (.din ({data_in[63:62],data_in[9:0]}),
496 .scan_in(ff_dbg_config_scanin),
497 .scan_out(ff_dbg_config_scanout),
498 .siclk (aclk_wmr),
499 .l1clk (l1clk ),
500 .en (dbg_config_en),
501 .dout (dbg_config_reg[11:0]),
502 .soclk(soclk));
503
504assign dbg_train = dbg_config_reg[4]; // DBG Training bit for modes 000,001,010
505assign dbg_conf_mode = dbg_config_reg[3:1]; // DBG Port Configuration Mode
506assign dbg1_mio_drv_imped = dbg_config_reg[11:10];
507
508assign sel_soc_obs_mode = ((dbg_conf_mode == 3'b000) & ~dbg_train);
509assign sel_charac_mode = ((dbg_conf_mode == 3'b001) & ~dbg_train);
510assign sel_rep_mode = ((dbg_conf_mode == 3'b010) & ~dbg_train);
511assign sel_core_soc_debug_mode = ((dbg_conf_mode == 3'b011) & ~dbg_train);
512assign sel_train_mode = (((dbg_conf_mode == 3'b000) | (dbg_conf_mode == 3'b001)
513 | (dbg_conf_mode == 3'b010)
514 | (dbg_conf_mode == 3'b011)) & dbg_train);
515
516assign dbg1_mio_sel_niu_debug_mode = (dbg_conf_mode == 3'b100);
517assign dbg1_mio_sel_pcix_debug_mode = (dbg_conf_mode == 3'b101);
518assign dbg1_mio_sel_soc_obs_mode = sel_soc_obs_mode;
519
520assign dbg_en = dbg_config_reg[0]; // DBG Port Enable
521
522assign niu_dbg_en = dbg1_mio_sel_niu_debug_mode & dbg_en;
523
524assign dbg1_niu_dbg_sel = dbg_config_reg[9:5] & {5{niu_dbg_en & ~tcu_dbr_gateoff}};
525
526
527//_____________________________________________________________________
528//
529// N2 I/O Quiece Control Register, bits 1:0 - R/W,preserved across WMR
530// bits 3:2 - RO
531//_____________________________________________________________________
532
533assign io_quiesce_addr = (addr_in == `IOB_CREG_IO_QSC);
534assign io_quiesce_en = wr_req_vld & io_quiesce_addr;
535
536db1_csr_ctl_msff_ctl_macro__en_1__width_2 ff_io_quiesce
537 (.din (data_in[1:0]),
538 .scan_in(ff_io_quiesce_scanin),
539 .scan_out(ff_io_quiesce_scanout),
540 .siclk (aclk_wmr),
541 .l1clk (l1clk ),
542 .en (io_quiesce_en),
543 .dout (io_quiesce_out[1:0]),
544 .soclk(soclk));
545
546assign dbg1_dmu_stall_din = ~io_quiesce_out[0] & data_in[0] & io_quiesce_en;
547 // dmu_stall bit is a 0 but will be written to 1 in the
548 // next iol2clk by SW
549
550db1_csr_ctl_msff_ctl_macro__width_1 ff_dbg1_dmu_stall
551 (.din (dbg1_dmu_stall_din),
552 .scan_in(ff_dbg1_dmu_stall_scanin),
553 .scan_out(ff_dbg1_dmu_stall_scanout),
554 .l1clk (l1clk ),
555 .dout (dbg1_dmu_stall_r),
556 .siclk(siclk),
557 .soclk(soclk));
558
559assign dbg1_dmu_stall = ~tcu_dbr_gateoff & dbg1_dmu_stall_r;
560
561assign dbg1_niu_stall_din = ~io_quiesce_out[1] & data_in[1] & io_quiesce_en;
562 // niu_stall bit is a 0 but will be written to 1 in the
563 // next iol2clk by SW
564
565db1_csr_ctl_msff_ctl_macro__width_1 ff_dbg1_niu_stall
566 (.din (dbg1_niu_stall_din),
567 .scan_in(ff_dbg1_niu_stall_scanin),
568 .scan_out(ff_dbg1_niu_stall_scanout),
569 .l1clk (l1clk ),
570 .dout (dbg1_niu_stall_r),
571 .siclk(siclk),
572 .soclk(soclk));
573
574assign dbg1_niu_stall = ~tcu_dbr_gateoff & dbg1_niu_stall_r;
575
576// both of dbg1_dmu_stall and dbg1_niu_stall are one cycle wide pulses
577// valid for one iol2clk
578
579assign dbg1_dmu_resume_din = io_quiesce_out[0] & ~data_in[0] & io_quiesce_en;
580 // dmu_stall bit is a 1 but will be written to 0 in the
581 // next iol2clk by SW
582
583db1_csr_ctl_msff_ctl_macro__width_1 ff_dbg1_dmu_resume
584 (.din (dbg1_dmu_resume_din),
585 .scan_in(ff_dbg1_dmu_resume_scanin),
586 .scan_out(ff_dbg1_dmu_resume_scanout),
587 .l1clk (l1clk ),
588 .dout (dbg1_dmu_resume_r),
589 .siclk(siclk),
590 .soclk(soclk));
591
592assign dbg1_dmu_resume = ~tcu_dbr_gateoff & dbg1_dmu_resume_r;
593
594assign dbg1_niu_resume_din = io_quiesce_out[1] & ~data_in[1] & io_quiesce_en;
595 // niu_stall bit is a 1 but will be written to 0 in the
596 // next iol2clk by SW
597
598db1_csr_ctl_msff_ctl_macro__width_1 ff_dbg1_niu_resume
599 (.din (dbg1_niu_resume_din),
600 .scan_in(ff_dbg1_niu_resume_scanin),
601 .scan_out(ff_dbg1_niu_resume_scanout),
602 .l1clk (l1clk ),
603 .dout (dbg1_niu_resume_r),
604 .siclk(siclk),
605 .soclk(soclk));
606
607assign dbg1_niu_resume = ~tcu_dbr_gateoff & dbg1_niu_resume_r;
608
609// both of dbg1_dmu_resume and dbg1_niu_resume are one cycle wide pulses
610// valid for one iol2clk
611
612// NIU_STALL_DONE and DMU_STALL_DONE bits
613
614assign dmu_stall_done_din = dmu_dbg1_stall_ack | dmu_stall_done; // set to 1
615 // when dmu sends the ack , preserved at 1 by the
616 // dmu_stall_done itself
617
618db1_csr_ctl_msff_ctl_macro__clr__1__width_1 ff_dmu_stall_done
619 (.din (dmu_stall_done_din),
620 .scan_in(ff_dmu_stall_done_scanin),
621 .scan_out(ff_dmu_stall_done_scanout),
622 .l1clk (l1clk ),
623 .clr_ (~dbg1_dmu_resume_din), // cleared when DMU_STALL bit cleared to 0 by SW
624 .dout (dmu_stall_done),
625 .siclk(siclk),
626 .soclk(soclk)); // Should preserve value across WMR,DBR
627
628assign niu_stall_done_din = niu_dbg1_stall_ack | niu_stall_done; // set to 1
629 // when niu sends the ack , preserved at 1 by the
630 // niu_stall_done itself
631
632db1_csr_ctl_msff_ctl_macro__clr__1__width_1 ff_niu_stall_done
633 (.din (niu_stall_done_din),
634 .scan_in(ff_niu_stall_done_scanin),
635 .scan_out(ff_niu_stall_done_scanout),
636 .l1clk (l1clk ),
637 .clr_ (~dbg1_niu_resume_din), // cleared when NIU_STALL bit cleared to 0 by SW
638 .dout (niu_stall_done),
639 .siclk(siclk),
640 .soclk(soclk)); // Should preserve value across WMR,DBR
641
642
643//_____________________________________________________________________
644//
645// SOC DECR Register : R/W
646//
647//_____________________________________________________________________
648
649assign soc_decr_addr = (addr_in == `IOB_CREG_SOC_DECR);
650assign soc_decr_en = wr_req_vld & soc_decr_addr;
651
652db1_csr_ctl_msff_ctl_macro__en_1__width_22 ff_soc_decr
653 (.din (data_in[21:0]),
654 .scan_in(ff_soc_decr_scanin),
655 .scan_out(ff_soc_decr_scanout),
656 .l1clk (l1clk ),
657 .en (soc_decr_en),
658 .dout (soc_decr[21:0]),
659 .siclk(siclk),
660 .soclk(soclk));
661
662// FLop mcu,ncu,dmu error events twice
663
664db1_csr_ctl_msff_ctl_macro__width_30 ff_soc_error_regs
665 (.din ({dmu_dbg1_err_event,ncu_dbg1_error_event,
666 mcu0_dbg1_err_event,mcu1_dbg1_err_event,
667 mcu2_dbg1_err_event,mcu3_dbg1_err_event,
668 dmu_dbg1_err_event_r,ncu_dbg1_error_event_r,
669 mcu0_dbg1_err_event_r,mcu1_dbg1_err_event_r,
670 mcu2_dbg1_err_event_r,mcu3_dbg1_err_event_r,
671 l2t0_pa_match_synced,l2t1_pa_match_synced,
672 l2t2_pa_match_synced,l2t3_pa_match_synced,
673 l2t4_pa_match_synced,l2t5_pa_match_synced,
674 l2t6_pa_match_synced,l2t7_pa_match_synced,
675 l2t0_pa_match_synced_r,l2t1_pa_match_synced_r,
676 l2t2_pa_match_synced_r,l2t3_pa_match_synced_r,
677 l2t4_pa_match_synced_r,l2t5_pa_match_synced_r,
678 l2t6_pa_match_synced_r,l2t7_pa_match_synced_r,
679 l2t_error_event_synced,l2t_error_event_synced_r}),
680 .scan_in(ff_soc_error_regs_scanin),
681 .scan_out(ff_soc_error_regs_scanout),
682 .l1clk (l1clk ),
683 .dout ({dmu_dbg1_err_event_r,ncu_dbg1_error_event_r,
684 mcu0_dbg1_err_event_r,mcu1_dbg1_err_event_r,
685 mcu2_dbg1_err_event_r,mcu3_dbg1_err_event_r,
686 dmu_dbg1_err_event_r2,ncu_dbg1_error_event_r2,
687 mcu0_dbg1_err_event_r2,mcu1_dbg1_err_event_r2,
688 mcu2_dbg1_err_event_r2,mcu3_dbg1_err_event_r2,
689 l2t0_pa_match_synced_r,l2t1_pa_match_synced_r,
690 l2t2_pa_match_synced_r,l2t3_pa_match_synced_r,
691 l2t4_pa_match_synced_r,l2t5_pa_match_synced_r,
692 l2t6_pa_match_synced_r,l2t7_pa_match_synced_r,
693 l2t0_pa_match_synced_r2,l2t1_pa_match_synced_r2,
694 l2t2_pa_match_synced_r2,l2t3_pa_match_synced_r2,
695 l2t4_pa_match_synced_r2,l2t5_pa_match_synced_r2,
696 l2t6_pa_match_synced_r2,l2t7_pa_match_synced_r2,
697 l2t_error_event_synced_r,l2t_error_event_synced_r2}),
698 .siclk(siclk),
699 .soclk(soclk)
700 );
701
702// dbg1_tcu_soc_hard_stop & dbg1_tcu_soc_asrt_trigout are pulses
703
704
705assign dbg1_tcu_soc_hard_stop_din = ((soc_decr[21:20] == 2'b10) &
706 ((dmu_dbg1_err_event_r & ~dmu_dbg1_err_event_r2)
707 | (ncu_dbg1_error_event_r & ~ncu_dbg1_error_event_r2)
708 ))
709 |
710 ((soc_decr[19:18] == 2'b10) &
711 ((mcu0_dbg1_err_event_r & ~mcu0_dbg1_err_event_r2) |
712 (mcu1_dbg1_err_event_r & ~mcu1_dbg1_err_event_r2) |
713 (mcu2_dbg1_err_event_r & ~mcu2_dbg1_err_event_r2) |
714 (mcu3_dbg1_err_event_r & ~mcu3_dbg1_err_event_r2)
715 ))
716 |
717 ((soc_decr[17:16] == 2'b10) &
718 (l2t_error_event_synced_r & ~l2t_error_event_synced_r2))
719 |
720 ((soc_decr[15:14] == 2'b10) &
721 (l2t7_pa_match_synced_r & ~l2t7_pa_match_synced_r2))
722 |
723 ((soc_decr[13:12] == 2'b10) &
724 (l2t6_pa_match_synced_r & ~l2t6_pa_match_synced_r2))
725 |
726 ((soc_decr[11:10] == 2'b10) &
727 (l2t5_pa_match_synced_r & ~l2t5_pa_match_synced_r2))
728 |
729 ((soc_decr[9:8] == 2'b10) &
730 (l2t4_pa_match_synced_r & ~l2t4_pa_match_synced_r2))
731 |
732 ((soc_decr[7:6] == 2'b10) &
733 (l2t3_pa_match_synced_r & ~l2t3_pa_match_synced_r2))
734 |
735 ((soc_decr[5:4] == 2'b10) &
736 (l2t2_pa_match_synced_r & ~l2t2_pa_match_synced_r2))
737 |
738 ((soc_decr[3:2] == 2'b10) &
739 (l2t1_pa_match_synced_r & ~l2t1_pa_match_synced_r2))
740 |
741 ((soc_decr[1:0] == 2'b10) &
742 (l2t0_pa_match_synced_r & ~l2t0_pa_match_synced_r2))
743 ;
744
745assign dbg1_tcu_soc_asrt_trigout_din = ((soc_decr[21:20] == 2'b11) &
746 ((dmu_dbg1_err_event_r & ~dmu_dbg1_err_event_r2)
747 | (ncu_dbg1_error_event_r & ~ncu_dbg1_error_event_r2)
748 ))
749 |
750 ((soc_decr[19:18] == 2'b11) &
751 ((mcu0_dbg1_err_event_r & ~mcu0_dbg1_err_event_r2) |
752 (mcu1_dbg1_err_event_r & ~mcu1_dbg1_err_event_r2) |
753 (mcu2_dbg1_err_event_r & ~mcu2_dbg1_err_event_r2) |
754 (mcu3_dbg1_err_event_r & ~mcu3_dbg1_err_event_r2)
755 ))
756 |
757 ((soc_decr[17:16] == 2'b11) &
758 (l2t_error_event_synced_r & ~l2t_error_event_synced_r2))
759 |
760 ((soc_decr[15:14] == 2'b11) &
761 (l2t7_pa_match_synced_r & ~l2t7_pa_match_synced_r2))
762 |
763 ((soc_decr[13:12] == 2'b11) &
764 (l2t6_pa_match_synced_r & ~l2t6_pa_match_synced_r2))
765 |
766 ((soc_decr[11:10] == 2'b11) &
767 (l2t5_pa_match_synced_r & ~l2t5_pa_match_synced_r2))
768 |
769 ((soc_decr[9:8] == 2'b11) &
770 (l2t4_pa_match_synced_r & ~l2t4_pa_match_synced_r2))
771 |
772 ((soc_decr[7:6] == 2'b11) &
773 (l2t3_pa_match_synced_r & ~l2t3_pa_match_synced_r2))
774 |
775 ((soc_decr[5:4] == 2'b11) &
776 (l2t2_pa_match_synced_r & ~l2t2_pa_match_synced_r2))
777 |
778 ((soc_decr[3:2] == 2'b11) &
779 (l2t1_pa_match_synced_r & ~l2t1_pa_match_synced_r2))
780 |
781 ((soc_decr[1:0] == 2'b11) &
782 (l2t0_pa_match_synced_r & ~l2t0_pa_match_synced_r2))
783 ;
784
785
786
787db1_csr_ctl_msff_ctl_macro__width_1 ff_soc_hard_stop
788 (.din (dbg1_tcu_soc_hard_stop_din),
789 .scan_in(ff_soc_hard_stop_scanin),
790 .scan_out(ff_soc_hard_stop_scanout),
791 .l1clk (l1clk ),
792 .dout (dbg1_tcu_soc_hard_stop),
793 .siclk(siclk),
794 .soclk(soclk));
795
796
797db1_csr_ctl_msff_ctl_macro__width_1 ff_soc_asrt_trigout
798 (.din (dbg1_tcu_soc_asrt_trigout_din),
799 .scan_in(ff_soc_asrt_trigout_scanin),
800 .scan_out(ff_soc_asrt_trigout_scanout),
801 .l1clk (l1clk ),
802 .dout (dbg1_tcu_soc_asrt_trigout),
803 .siclk(siclk),
804 .soclk(soclk));
805
806
807
808//________________________________________________________________
809//
810// Output mux
811//________________________________________________________________
812
813assign data_out[63:0] =
814 dbg_config_addr ? {dbg_config_reg[11:10],52'b0,dbg_config_reg[9:0]} : // Debug Config Reg
815 io_quiesce_addr ? {60'b0,niu_stall_done,dmu_stall_done,
816 io_quiesce_out[1:0]} : // IO Quiesce Control reg
817 soc_decr_addr ? {42'b0,soc_decr[21:0]} : // SOC DECR reg
818 64'b0; // Default
819
820assign iob_creg_addr =
821 (
822 dbg_config_addr | io_quiesce_addr | soc_decr_addr
823 );
824
825// In the case of ack_busy signal is asserted, CSR Register
826// Block should not assert rd_ack_vld or rd_nack_vld until
827// ack_busy signal is de-asserted. UCB Interface, Jan 6 '04.
828
829wire rd_ack_vld_din = rd_req_vld & iob_creg_addr &
830 ~ack_busy &
831 ~rd_ack_vld;
832
833wire rd_nack_vld_din = rd_req_vld & ~iob_creg_addr &
834 ~ack_busy &
835 ~rd_nack_vld;
836
837wire req_acpted_din = ( wr_req_vld &
838 ~req_acpted
839 ) |
840 rd_ack_vld_din |
841 rd_nack_vld_din;
842
843db1_csr_ctl_msff_ctl_macro__en_0__width_1 rd_ack_vld_ff
844 (.din (rd_ack_vld_din ),
845 .scan_in(rd_ack_vld_ff_scanin),
846 .scan_out(rd_ack_vld_ff_scanout),
847 .l1clk (l1clk ),
848 .dout (rd_ack_vld ),
849 .siclk(siclk),
850 .soclk(soclk));
851
852db1_csr_ctl_msff_ctl_macro__en_0__width_1 rd_nack_vld_ff
853 (.din (rd_nack_vld_din ),
854 .scan_in(rd_nack_vld_ff_scanin),
855 .scan_out(rd_nack_vld_ff_scanout),
856 .l1clk (l1clk ),
857 .dout (rd_nack_vld ),
858 .siclk(siclk),
859 .soclk(soclk));
860
861db1_csr_ctl_msff_ctl_macro__en_0__width_1 req_acpted_ff
862 (.din (req_acpted_din ),
863 .scan_in(req_acpted_ff_scanin),
864 .scan_out(req_acpted_ff_scanout),
865 .l1clk (l1clk ),
866 .dout (req_acpted ),
867 .siclk(siclk),
868 .soclk(soclk));
869
870wire thr_buf_id_en = req_acpted_din |
871 rd_nack_vld_din;
872
873db1_csr_ctl_msff_ctl_macro__en_1__width_6 thr_id_ff
874 (.din (thr_id_in[5:0] ),
875 .scan_in(thr_id_ff_scanin),
876 .scan_out(thr_id_ff_scanout),
877 .l1clk (l1clk ),
878 .en (thr_buf_id_en ),
879 .dout (thr_id_out[5:0] ),
880 .siclk(siclk),
881 .soclk(soclk));
882
883db1_csr_ctl_msff_ctl_macro__en_1__width_2 buf_id_ff
884 (.din (buf_id_in[1:0] ),
885 .scan_in(buf_id_ff_scanin),
886 .scan_out(buf_id_ff_scanout),
887 .l1clk (l1clk ),
888 .en (thr_buf_id_en ),
889 .dout (buf_id_out[1:0] ),
890 .siclk(siclk),
891 .soclk(soclk));
892
893// Spare gates
894
895db1_csr_ctl_spare_ctl_macro__num_6 spares (
896 .scan_in(spares_scanin),
897 .scan_out(spares_scanout),
898 .l1clk (l1clk),
899 .siclk(siclk),
900 .soclk(soclk)
901);
902
903
904/**** adding clock header ****/
905db1_csr_ctl_l1clkhdr_ctl_macro clkgen (
906 .l2clk (iol2clk),
907 .l1en (1'b1),
908 .l1clk (l1clk),
909 .pce_ov(pce_ov),
910 .stop(stop),
911 .se(se)
912 );
913// fixscan start:
914assign ff_mcu_crc21signals_scanin = scan_in ;
915assign ff_mcu_signals_scanin = ff_mcu_crc21signals_scanout;
916assign ff_dbg_config_scanin = ff_mcu_signals_scanout ;
917assign ff_io_quiesce_scanin = ff_dbg_config_scanout ;
918assign ff_dbg1_dmu_stall_scanin = ~(~ff_io_quiesce_scanout | wmr_protect);
919assign ff_dbg1_niu_stall_scanin = ff_dbg1_dmu_stall_scanout;
920assign ff_dbg1_dmu_resume_scanin = ff_dbg1_niu_stall_scanout;
921assign ff_dbg1_niu_resume_scanin = ff_dbg1_dmu_resume_scanout;
922assign ff_dmu_stall_done_scanin = ff_dbg1_niu_resume_scanout;
923assign ff_niu_stall_done_scanin = ff_dmu_stall_done_scanout;
924assign ff_soc_decr_scanin = ff_niu_stall_done_scanout;
925assign ff_soc_error_regs_scanin = ff_soc_decr_scanout ;
926assign ff_soc_hard_stop_scanin = ff_soc_error_regs_scanout;
927assign ff_soc_asrt_trigout_scanin = ff_soc_hard_stop_scanout ;
928assign rd_ack_vld_ff_scanin = ff_soc_asrt_trigout_scanout;
929assign rd_nack_vld_ff_scanin = rd_ack_vld_ff_scanout ;
930assign req_acpted_ff_scanin = rd_nack_vld_ff_scanout ;
931assign thr_id_ff_scanin = req_acpted_ff_scanout ;
932assign buf_id_ff_scanin = thr_id_ff_scanout ;
933assign spares_scanin = buf_id_ff_scanout ;
934assign scan_out = spares_scanout ;
935// fixscan end:
936endmodule
937
938
939
940
941
942
943// any PARAMS parms go into naming of macro
944
945module db1_csr_ctl_msff_ctl_macro__width_4 (
946 din,
947 l1clk,
948 scan_in,
949 siclk,
950 soclk,
951 dout,
952 scan_out);
953wire [3:0] fdin;
954wire [2:0] so;
955
956 input [3:0] din;
957 input l1clk;
958 input scan_in;
959
960
961 input siclk;
962 input soclk;
963
964 output [3:0] dout;
965 output scan_out;
966assign fdin[3:0] = din[3:0];
967
968
969
970
971
972
973dff #(4) d0_0 (
974.l1clk(l1clk),
975.siclk(siclk),
976.soclk(soclk),
977.d(fdin[3:0]),
978.si({scan_in,so[2:0]}),
979.so({so[2:0],scan_out}),
980.q(dout[3:0])
981);
982
983
984
985
986
987
988
989
990
991
992
993
994endmodule
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008// any PARAMS parms go into naming of macro
1009
1010module db1_csr_ctl_msff_ctl_macro__width_84 (
1011 din,
1012 l1clk,
1013 scan_in,
1014 siclk,
1015 soclk,
1016 dout,
1017 scan_out);
1018wire [83:0] fdin;
1019wire [82:0] so;
1020
1021 input [83:0] din;
1022 input l1clk;
1023 input scan_in;
1024
1025
1026 input siclk;
1027 input soclk;
1028
1029 output [83:0] dout;
1030 output scan_out;
1031assign fdin[83:0] = din[83:0];
1032
1033
1034
1035
1036
1037
1038dff #(84) d0_0 (
1039.l1clk(l1clk),
1040.siclk(siclk),
1041.soclk(soclk),
1042.d(fdin[83:0]),
1043.si({scan_in,so[82:0]}),
1044.so({so[82:0],scan_out}),
1045.q(dout[83:0])
1046);
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059endmodule
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073// any PARAMS parms go into naming of macro
1074
1075module db1_csr_ctl_msff_ctl_macro__en_1__width_12 (
1076 din,
1077 en,
1078 l1clk,
1079 scan_in,
1080 siclk,
1081 soclk,
1082 dout,
1083 scan_out);
1084wire [11:0] fdin;
1085wire [10:0] so;
1086
1087 input [11:0] din;
1088 input en;
1089 input l1clk;
1090 input scan_in;
1091
1092
1093 input siclk;
1094 input soclk;
1095
1096 output [11:0] dout;
1097 output scan_out;
1098assign fdin[11:0] = (din[11:0] & {12{en}}) | (dout[11:0] & ~{12{en}});
1099
1100
1101
1102
1103
1104
1105dff #(12) d0_0 (
1106.l1clk(l1clk),
1107.siclk(siclk),
1108.soclk(soclk),
1109.d(fdin[11:0]),
1110.si({scan_in,so[10:0]}),
1111.so({so[10:0],scan_out}),
1112.q(dout[11:0])
1113);
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126endmodule
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140// any PARAMS parms go into naming of macro
1141
1142module db1_csr_ctl_msff_ctl_macro__en_1__width_2 (
1143 din,
1144 en,
1145 l1clk,
1146 scan_in,
1147 siclk,
1148 soclk,
1149 dout,
1150 scan_out);
1151wire [1:0] fdin;
1152wire [0:0] so;
1153
1154 input [1:0] din;
1155 input en;
1156 input l1clk;
1157 input scan_in;
1158
1159
1160 input siclk;
1161 input soclk;
1162
1163 output [1:0] dout;
1164 output scan_out;
1165assign fdin[1:0] = (din[1:0] & {2{en}}) | (dout[1:0] & ~{2{en}});
1166
1167
1168
1169
1170
1171
1172dff #(2) d0_0 (
1173.l1clk(l1clk),
1174.siclk(siclk),
1175.soclk(soclk),
1176.d(fdin[1:0]),
1177.si({scan_in,so[0:0]}),
1178.so({so[0:0],scan_out}),
1179.q(dout[1:0])
1180);
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193endmodule
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207// any PARAMS parms go into naming of macro
1208
1209module db1_csr_ctl_msff_ctl_macro__width_1 (
1210 din,
1211 l1clk,
1212 scan_in,
1213 siclk,
1214 soclk,
1215 dout,
1216 scan_out);
1217wire [0:0] fdin;
1218
1219 input [0:0] din;
1220 input l1clk;
1221 input scan_in;
1222
1223
1224 input siclk;
1225 input soclk;
1226
1227 output [0:0] dout;
1228 output scan_out;
1229assign fdin[0:0] = din[0:0];
1230
1231
1232
1233
1234
1235
1236dff #(1) d0_0 (
1237.l1clk(l1clk),
1238.siclk(siclk),
1239.soclk(soclk),
1240.d(fdin[0:0]),
1241.si(scan_in),
1242.so(scan_out),
1243.q(dout[0:0])
1244);
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257endmodule
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271// any PARAMS parms go into naming of macro
1272
1273module db1_csr_ctl_msff_ctl_macro__clr__1__width_1 (
1274 din,
1275 clr_,
1276 l1clk,
1277 scan_in,
1278 siclk,
1279 soclk,
1280 dout,
1281 scan_out);
1282wire [0:0] fdin;
1283
1284 input [0:0] din;
1285 input clr_;
1286 input l1clk;
1287 input scan_in;
1288
1289
1290 input siclk;
1291 input soclk;
1292
1293 output [0:0] dout;
1294 output scan_out;
1295assign fdin[0:0] = din[0:0] & ~{1{(~clr_)}};
1296
1297
1298
1299
1300
1301
1302dff #(1) d0_0 (
1303.l1clk(l1clk),
1304.siclk(siclk),
1305.soclk(soclk),
1306.d(fdin[0:0]),
1307.si(scan_in),
1308.so(scan_out),
1309.q(dout[0:0])
1310);
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323endmodule
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337// any PARAMS parms go into naming of macro
1338
1339module db1_csr_ctl_msff_ctl_macro__en_1__width_22 (
1340 din,
1341 en,
1342 l1clk,
1343 scan_in,
1344 siclk,
1345 soclk,
1346 dout,
1347 scan_out);
1348wire [21:0] fdin;
1349wire [20:0] so;
1350
1351 input [21:0] din;
1352 input en;
1353 input l1clk;
1354 input scan_in;
1355
1356
1357 input siclk;
1358 input soclk;
1359
1360 output [21:0] dout;
1361 output scan_out;
1362assign fdin[21:0] = (din[21:0] & {22{en}}) | (dout[21:0] & ~{22{en}});
1363
1364
1365
1366
1367
1368
1369dff #(22) d0_0 (
1370.l1clk(l1clk),
1371.siclk(siclk),
1372.soclk(soclk),
1373.d(fdin[21:0]),
1374.si({scan_in,so[20:0]}),
1375.so({so[20:0],scan_out}),
1376.q(dout[21:0])
1377);
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390endmodule
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404// any PARAMS parms go into naming of macro
1405
1406module db1_csr_ctl_msff_ctl_macro__width_30 (
1407 din,
1408 l1clk,
1409 scan_in,
1410 siclk,
1411 soclk,
1412 dout,
1413 scan_out);
1414wire [29:0] fdin;
1415wire [28:0] so;
1416
1417 input [29:0] din;
1418 input l1clk;
1419 input scan_in;
1420
1421
1422 input siclk;
1423 input soclk;
1424
1425 output [29:0] dout;
1426 output scan_out;
1427assign fdin[29:0] = din[29:0];
1428
1429
1430
1431
1432
1433
1434dff #(30) d0_0 (
1435.l1clk(l1clk),
1436.siclk(siclk),
1437.soclk(soclk),
1438.d(fdin[29:0]),
1439.si({scan_in,so[28:0]}),
1440.so({so[28:0],scan_out}),
1441.q(dout[29:0])
1442);
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455endmodule
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469// any PARAMS parms go into naming of macro
1470
1471module db1_csr_ctl_msff_ctl_macro__en_0__width_1 (
1472 din,
1473 l1clk,
1474 scan_in,
1475 siclk,
1476 soclk,
1477 dout,
1478 scan_out);
1479wire [0:0] fdin;
1480
1481 input [0:0] din;
1482 input l1clk;
1483 input scan_in;
1484
1485
1486 input siclk;
1487 input soclk;
1488
1489 output [0:0] dout;
1490 output scan_out;
1491assign fdin[0:0] = din[0:0];
1492
1493
1494
1495
1496
1497
1498dff #(1) d0_0 (
1499.l1clk(l1clk),
1500.siclk(siclk),
1501.soclk(soclk),
1502.d(fdin[0:0]),
1503.si(scan_in),
1504.so(scan_out),
1505.q(dout[0:0])
1506);
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519endmodule
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533// any PARAMS parms go into naming of macro
1534
1535module db1_csr_ctl_msff_ctl_macro__en_1__width_6 (
1536 din,
1537 en,
1538 l1clk,
1539 scan_in,
1540 siclk,
1541 soclk,
1542 dout,
1543 scan_out);
1544wire [5:0] fdin;
1545wire [4:0] so;
1546
1547 input [5:0] din;
1548 input en;
1549 input l1clk;
1550 input scan_in;
1551
1552
1553 input siclk;
1554 input soclk;
1555
1556 output [5:0] dout;
1557 output scan_out;
1558assign fdin[5:0] = (din[5:0] & {6{en}}) | (dout[5:0] & ~{6{en}});
1559
1560
1561
1562
1563
1564
1565dff #(6) d0_0 (
1566.l1clk(l1clk),
1567.siclk(siclk),
1568.soclk(soclk),
1569.d(fdin[5:0]),
1570.si({scan_in,so[4:0]}),
1571.so({so[4:0],scan_out}),
1572.q(dout[5:0])
1573);
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586endmodule
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596// Description: Spare gate macro for control blocks
1597//
1598// Param num controls the number of times the macro is added
1599// flops=0 can be used to use only combination spare logic
1600
1601
1602module db1_csr_ctl_spare_ctl_macro__num_6 (
1603 l1clk,
1604 scan_in,
1605 siclk,
1606 soclk,
1607 scan_out);
1608wire si_0;
1609wire so_0;
1610wire spare0_flop_unused;
1611wire spare0_buf_32x_unused;
1612wire spare0_nand3_8x_unused;
1613wire spare0_inv_8x_unused;
1614wire spare0_aoi22_4x_unused;
1615wire spare0_buf_8x_unused;
1616wire spare0_oai22_4x_unused;
1617wire spare0_inv_16x_unused;
1618wire spare0_nand2_16x_unused;
1619wire spare0_nor3_4x_unused;
1620wire spare0_nand2_8x_unused;
1621wire spare0_buf_16x_unused;
1622wire spare0_nor2_16x_unused;
1623wire spare0_inv_32x_unused;
1624wire si_1;
1625wire so_1;
1626wire spare1_flop_unused;
1627wire spare1_buf_32x_unused;
1628wire spare1_nand3_8x_unused;
1629wire spare1_inv_8x_unused;
1630wire spare1_aoi22_4x_unused;
1631wire spare1_buf_8x_unused;
1632wire spare1_oai22_4x_unused;
1633wire spare1_inv_16x_unused;
1634wire spare1_nand2_16x_unused;
1635wire spare1_nor3_4x_unused;
1636wire spare1_nand2_8x_unused;
1637wire spare1_buf_16x_unused;
1638wire spare1_nor2_16x_unused;
1639wire spare1_inv_32x_unused;
1640wire si_2;
1641wire so_2;
1642wire spare2_flop_unused;
1643wire spare2_buf_32x_unused;
1644wire spare2_nand3_8x_unused;
1645wire spare2_inv_8x_unused;
1646wire spare2_aoi22_4x_unused;
1647wire spare2_buf_8x_unused;
1648wire spare2_oai22_4x_unused;
1649wire spare2_inv_16x_unused;
1650wire spare2_nand2_16x_unused;
1651wire spare2_nor3_4x_unused;
1652wire spare2_nand2_8x_unused;
1653wire spare2_buf_16x_unused;
1654wire spare2_nor2_16x_unused;
1655wire spare2_inv_32x_unused;
1656wire si_3;
1657wire so_3;
1658wire spare3_flop_unused;
1659wire spare3_buf_32x_unused;
1660wire spare3_nand3_8x_unused;
1661wire spare3_inv_8x_unused;
1662wire spare3_aoi22_4x_unused;
1663wire spare3_buf_8x_unused;
1664wire spare3_oai22_4x_unused;
1665wire spare3_inv_16x_unused;
1666wire spare3_nand2_16x_unused;
1667wire spare3_nor3_4x_unused;
1668wire spare3_nand2_8x_unused;
1669wire spare3_buf_16x_unused;
1670wire spare3_nor2_16x_unused;
1671wire spare3_inv_32x_unused;
1672wire si_4;
1673wire so_4;
1674wire spare4_flop_unused;
1675wire spare4_buf_32x_unused;
1676wire spare4_nand3_8x_unused;
1677wire spare4_inv_8x_unused;
1678wire spare4_aoi22_4x_unused;
1679wire spare4_buf_8x_unused;
1680wire spare4_oai22_4x_unused;
1681wire spare4_inv_16x_unused;
1682wire spare4_nand2_16x_unused;
1683wire spare4_nor3_4x_unused;
1684wire spare4_nand2_8x_unused;
1685wire spare4_buf_16x_unused;
1686wire spare4_nor2_16x_unused;
1687wire spare4_inv_32x_unused;
1688wire si_5;
1689wire so_5;
1690wire spare5_flop_unused;
1691wire spare5_buf_32x_unused;
1692wire spare5_nand3_8x_unused;
1693wire spare5_inv_8x_unused;
1694wire spare5_aoi22_4x_unused;
1695wire spare5_buf_8x_unused;
1696wire spare5_oai22_4x_unused;
1697wire spare5_inv_16x_unused;
1698wire spare5_nand2_16x_unused;
1699wire spare5_nor3_4x_unused;
1700wire spare5_nand2_8x_unused;
1701wire spare5_buf_16x_unused;
1702wire spare5_nor2_16x_unused;
1703wire spare5_inv_32x_unused;
1704
1705
1706input l1clk;
1707input scan_in;
1708input siclk;
1709input soclk;
1710output scan_out;
1711
1712cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
1713 .siclk(siclk),
1714 .soclk(soclk),
1715 .si(si_0),
1716 .so(so_0),
1717 .d(1'b0),
1718 .q(spare0_flop_unused));
1719assign si_0 = scan_in;
1720
1721cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
1722 .out(spare0_buf_32x_unused));
1723cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
1724 .in1(1'b1),
1725 .in2(1'b1),
1726 .out(spare0_nand3_8x_unused));
1727cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
1728 .out(spare0_inv_8x_unused));
1729cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
1730 .in01(1'b1),
1731 .in10(1'b1),
1732 .in11(1'b1),
1733 .out(spare0_aoi22_4x_unused));
1734cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
1735 .out(spare0_buf_8x_unused));
1736cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
1737 .in01(1'b1),
1738 .in10(1'b1),
1739 .in11(1'b1),
1740 .out(spare0_oai22_4x_unused));
1741cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
1742 .out(spare0_inv_16x_unused));
1743cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
1744 .in1(1'b1),
1745 .out(spare0_nand2_16x_unused));
1746cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
1747 .in1(1'b0),
1748 .in2(1'b0),
1749 .out(spare0_nor3_4x_unused));
1750cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
1751 .in1(1'b1),
1752 .out(spare0_nand2_8x_unused));
1753cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
1754 .out(spare0_buf_16x_unused));
1755cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
1756 .in1(1'b0),
1757 .out(spare0_nor2_16x_unused));
1758cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
1759 .out(spare0_inv_32x_unused));
1760
1761cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
1762 .siclk(siclk),
1763 .soclk(soclk),
1764 .si(si_1),
1765 .so(so_1),
1766 .d(1'b0),
1767 .q(spare1_flop_unused));
1768assign si_1 = so_0;
1769
1770cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
1771 .out(spare1_buf_32x_unused));
1772cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
1773 .in1(1'b1),
1774 .in2(1'b1),
1775 .out(spare1_nand3_8x_unused));
1776cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
1777 .out(spare1_inv_8x_unused));
1778cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
1779 .in01(1'b1),
1780 .in10(1'b1),
1781 .in11(1'b1),
1782 .out(spare1_aoi22_4x_unused));
1783cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
1784 .out(spare1_buf_8x_unused));
1785cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
1786 .in01(1'b1),
1787 .in10(1'b1),
1788 .in11(1'b1),
1789 .out(spare1_oai22_4x_unused));
1790cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
1791 .out(spare1_inv_16x_unused));
1792cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
1793 .in1(1'b1),
1794 .out(spare1_nand2_16x_unused));
1795cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
1796 .in1(1'b0),
1797 .in2(1'b0),
1798 .out(spare1_nor3_4x_unused));
1799cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
1800 .in1(1'b1),
1801 .out(spare1_nand2_8x_unused));
1802cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
1803 .out(spare1_buf_16x_unused));
1804cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
1805 .in1(1'b0),
1806 .out(spare1_nor2_16x_unused));
1807cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
1808 .out(spare1_inv_32x_unused));
1809
1810cl_sc1_msff_8x spare2_flop (.l1clk(l1clk),
1811 .siclk(siclk),
1812 .soclk(soclk),
1813 .si(si_2),
1814 .so(so_2),
1815 .d(1'b0),
1816 .q(spare2_flop_unused));
1817assign si_2 = so_1;
1818
1819cl_u1_buf_32x spare2_buf_32x (.in(1'b1),
1820 .out(spare2_buf_32x_unused));
1821cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1),
1822 .in1(1'b1),
1823 .in2(1'b1),
1824 .out(spare2_nand3_8x_unused));
1825cl_u1_inv_8x spare2_inv_8x (.in(1'b1),
1826 .out(spare2_inv_8x_unused));
1827cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1),
1828 .in01(1'b1),
1829 .in10(1'b1),
1830 .in11(1'b1),
1831 .out(spare2_aoi22_4x_unused));
1832cl_u1_buf_8x spare2_buf_8x (.in(1'b1),
1833 .out(spare2_buf_8x_unused));
1834cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1),
1835 .in01(1'b1),
1836 .in10(1'b1),
1837 .in11(1'b1),
1838 .out(spare2_oai22_4x_unused));
1839cl_u1_inv_16x spare2_inv_16x (.in(1'b1),
1840 .out(spare2_inv_16x_unused));
1841cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1),
1842 .in1(1'b1),
1843 .out(spare2_nand2_16x_unused));
1844cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0),
1845 .in1(1'b0),
1846 .in2(1'b0),
1847 .out(spare2_nor3_4x_unused));
1848cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1),
1849 .in1(1'b1),
1850 .out(spare2_nand2_8x_unused));
1851cl_u1_buf_16x spare2_buf_16x (.in(1'b1),
1852 .out(spare2_buf_16x_unused));
1853cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0),
1854 .in1(1'b0),
1855 .out(spare2_nor2_16x_unused));
1856cl_u1_inv_32x spare2_inv_32x (.in(1'b1),
1857 .out(spare2_inv_32x_unused));
1858
1859cl_sc1_msff_8x spare3_flop (.l1clk(l1clk),
1860 .siclk(siclk),
1861 .soclk(soclk),
1862 .si(si_3),
1863 .so(so_3),
1864 .d(1'b0),
1865 .q(spare3_flop_unused));
1866assign si_3 = so_2;
1867
1868cl_u1_buf_32x spare3_buf_32x (.in(1'b1),
1869 .out(spare3_buf_32x_unused));
1870cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1),
1871 .in1(1'b1),
1872 .in2(1'b1),
1873 .out(spare3_nand3_8x_unused));
1874cl_u1_inv_8x spare3_inv_8x (.in(1'b1),
1875 .out(spare3_inv_8x_unused));
1876cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1),
1877 .in01(1'b1),
1878 .in10(1'b1),
1879 .in11(1'b1),
1880 .out(spare3_aoi22_4x_unused));
1881cl_u1_buf_8x spare3_buf_8x (.in(1'b1),
1882 .out(spare3_buf_8x_unused));
1883cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1),
1884 .in01(1'b1),
1885 .in10(1'b1),
1886 .in11(1'b1),
1887 .out(spare3_oai22_4x_unused));
1888cl_u1_inv_16x spare3_inv_16x (.in(1'b1),
1889 .out(spare3_inv_16x_unused));
1890cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1),
1891 .in1(1'b1),
1892 .out(spare3_nand2_16x_unused));
1893cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0),
1894 .in1(1'b0),
1895 .in2(1'b0),
1896 .out(spare3_nor3_4x_unused));
1897cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1),
1898 .in1(1'b1),
1899 .out(spare3_nand2_8x_unused));
1900cl_u1_buf_16x spare3_buf_16x (.in(1'b1),
1901 .out(spare3_buf_16x_unused));
1902cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0),
1903 .in1(1'b0),
1904 .out(spare3_nor2_16x_unused));
1905cl_u1_inv_32x spare3_inv_32x (.in(1'b1),
1906 .out(spare3_inv_32x_unused));
1907
1908cl_sc1_msff_8x spare4_flop (.l1clk(l1clk),
1909 .siclk(siclk),
1910 .soclk(soclk),
1911 .si(si_4),
1912 .so(so_4),
1913 .d(1'b0),
1914 .q(spare4_flop_unused));
1915assign si_4 = so_3;
1916
1917cl_u1_buf_32x spare4_buf_32x (.in(1'b1),
1918 .out(spare4_buf_32x_unused));
1919cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1),
1920 .in1(1'b1),
1921 .in2(1'b1),
1922 .out(spare4_nand3_8x_unused));
1923cl_u1_inv_8x spare4_inv_8x (.in(1'b1),
1924 .out(spare4_inv_8x_unused));
1925cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1),
1926 .in01(1'b1),
1927 .in10(1'b1),
1928 .in11(1'b1),
1929 .out(spare4_aoi22_4x_unused));
1930cl_u1_buf_8x spare4_buf_8x (.in(1'b1),
1931 .out(spare4_buf_8x_unused));
1932cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1),
1933 .in01(1'b1),
1934 .in10(1'b1),
1935 .in11(1'b1),
1936 .out(spare4_oai22_4x_unused));
1937cl_u1_inv_16x spare4_inv_16x (.in(1'b1),
1938 .out(spare4_inv_16x_unused));
1939cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1),
1940 .in1(1'b1),
1941 .out(spare4_nand2_16x_unused));
1942cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0),
1943 .in1(1'b0),
1944 .in2(1'b0),
1945 .out(spare4_nor3_4x_unused));
1946cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1),
1947 .in1(1'b1),
1948 .out(spare4_nand2_8x_unused));
1949cl_u1_buf_16x spare4_buf_16x (.in(1'b1),
1950 .out(spare4_buf_16x_unused));
1951cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0),
1952 .in1(1'b0),
1953 .out(spare4_nor2_16x_unused));
1954cl_u1_inv_32x spare4_inv_32x (.in(1'b1),
1955 .out(spare4_inv_32x_unused));
1956
1957cl_sc1_msff_8x spare5_flop (.l1clk(l1clk),
1958 .siclk(siclk),
1959 .soclk(soclk),
1960 .si(si_5),
1961 .so(so_5),
1962 .d(1'b0),
1963 .q(spare5_flop_unused));
1964assign si_5 = so_4;
1965
1966cl_u1_buf_32x spare5_buf_32x (.in(1'b1),
1967 .out(spare5_buf_32x_unused));
1968cl_u1_nand3_8x spare5_nand3_8x (.in0(1'b1),
1969 .in1(1'b1),
1970 .in2(1'b1),
1971 .out(spare5_nand3_8x_unused));
1972cl_u1_inv_8x spare5_inv_8x (.in(1'b1),
1973 .out(spare5_inv_8x_unused));
1974cl_u1_aoi22_4x spare5_aoi22_4x (.in00(1'b1),
1975 .in01(1'b1),
1976 .in10(1'b1),
1977 .in11(1'b1),
1978 .out(spare5_aoi22_4x_unused));
1979cl_u1_buf_8x spare5_buf_8x (.in(1'b1),
1980 .out(spare5_buf_8x_unused));
1981cl_u1_oai22_4x spare5_oai22_4x (.in00(1'b1),
1982 .in01(1'b1),
1983 .in10(1'b1),
1984 .in11(1'b1),
1985 .out(spare5_oai22_4x_unused));
1986cl_u1_inv_16x spare5_inv_16x (.in(1'b1),
1987 .out(spare5_inv_16x_unused));
1988cl_u1_nand2_16x spare5_nand2_16x (.in0(1'b1),
1989 .in1(1'b1),
1990 .out(spare5_nand2_16x_unused));
1991cl_u1_nor3_4x spare5_nor3_4x (.in0(1'b0),
1992 .in1(1'b0),
1993 .in2(1'b0),
1994 .out(spare5_nor3_4x_unused));
1995cl_u1_nand2_8x spare5_nand2_8x (.in0(1'b1),
1996 .in1(1'b1),
1997 .out(spare5_nand2_8x_unused));
1998cl_u1_buf_16x spare5_buf_16x (.in(1'b1),
1999 .out(spare5_buf_16x_unused));
2000cl_u1_nor2_16x spare5_nor2_16x (.in0(1'b0),
2001 .in1(1'b0),
2002 .out(spare5_nor2_16x_unused));
2003cl_u1_inv_32x spare5_inv_32x (.in(1'b1),
2004 .out(spare5_inv_32x_unused));
2005assign scan_out = so_5;
2006
2007
2008
2009endmodule
2010
2011
2012
2013
2014
2015
2016// any PARAMS parms go into naming of macro
2017
2018module db1_csr_ctl_l1clkhdr_ctl_macro (
2019 l2clk,
2020 l1en,
2021 pce_ov,
2022 stop,
2023 se,
2024 l1clk);
2025
2026
2027 input l2clk;
2028 input l1en;
2029 input pce_ov;
2030 input stop;
2031 input se;
2032 output l1clk;
2033
2034
2035
2036
2037
2038cl_sc1_l1hdr_8x c_0 (
2039
2040
2041 .l2clk(l2clk),
2042 .pce(l1en),
2043 .l1clk(l1clk),
2044 .se(se),
2045 .pce_ov(pce_ov),
2046 .stop(stop)
2047);
2048
2049
2050
2051endmodule
2052
2053
2054
2055
2056
2057
2058
2059