Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / db1 / rtl / db1_dbgprt_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: db1_dbgprt_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 db1_dbgprt_dp (
36 io_cmp_sync_en,
37 cmp_io2x_sync_en,
38 dbg0_dbg1_l2t0_pa_match,
39 dbg0_dbg1_l2t2_pa_match,
40 l2t1_dbg1_pa_match,
41 l2t3_dbg1_pa_match,
42 l2t4_dbg1_pa_match,
43 l2t5_dbg1_pa_match,
44 l2t6_dbg1_pa_match,
45 l2t7_dbg1_pa_match,
46 dbg0_dbg1_l2t0_err_event,
47 dbg0_dbg1_l2t2_err_event,
48 l2t1_dbg1_err_event,
49 l2t3_dbg1_err_event,
50 l2t4_dbg1_err_event,
51 l2t5_dbg1_err_event,
52 l2t6_dbg1_err_event,
53 l2t7_dbg1_err_event,
54 dbg0_dbg1_debug_data,
55 mcu_dtm_signals,
56 ccu_dbg1_serdes_dtm,
57 tcu_pce_ov,
58 tcu_clk_stop,
59 tcu_aclk,
60 tcu_bclk,
61 tcu_scan_en,
62 scan_in,
63 scan_out,
64 l2clk,
65 cmp_io_sync_en,
66 mcu_dbg_signals,
67 sii_dbg1_l2t0_req,
68 sii_dbg1_l2t1_req,
69 sii_dbg1_l2t2_req,
70 sii_dbg1_l2t3_req,
71 sii_dbg1_l2t4_req,
72 sii_dbg1_l2t5_req,
73 sii_dbg1_l2t6_req,
74 sii_dbg1_l2t7_req,
75 l2t1_dbg1_sii_iq_dequeue,
76 l2t3_dbg1_sii_iq_dequeue,
77 l2t4_dbg1_sii_iq_dequeue,
78 l2t5_dbg1_sii_iq_dequeue,
79 l2t6_dbg1_sii_iq_dequeue,
80 l2t7_dbg1_sii_iq_dequeue,
81 dbg0_dbg1_l2t0_sii_iq_dequeue,
82 dbg0_dbg1_l2t2_sii_iq_dequeue,
83 l2t1_dbg1_sii_wib_dequeue,
84 l2t3_dbg1_sii_wib_dequeue,
85 l2t4_dbg1_sii_wib_dequeue,
86 l2t5_dbg1_sii_wib_dequeue,
87 l2t6_dbg1_sii_wib_dequeue,
88 l2t7_dbg1_sii_wib_dequeue,
89 dbg0_dbg1_l2t0_sii_wib_dequeue,
90 dbg0_dbg1_l2t2_sii_wib_dequeue,
91 l2t1_dbg1_xbar_vcid,
92 l2t3_dbg1_xbar_vcid,
93 l2t4_dbg1_xbar_vcid,
94 l2t5_dbg1_xbar_vcid,
95 l2t6_dbg1_xbar_vcid,
96 l2t7_dbg1_xbar_vcid,
97 dbg0_dbg1_l2t0_xbar_vcid,
98 dbg0_dbg1_l2t2_xbar_vcid,
99 l2b4_dbg1_sio_ctag_vld,
100 l2b5_dbg1_sio_ctag_vld,
101 l2b6_dbg1_sio_ctag_vld,
102 l2b7_dbg1_sio_ctag_vld,
103 dbg0_dbg1_l2b0_sio_ctag_vld,
104 dbg0_dbg1_l2b1_sio_ctag_vld,
105 dbg0_dbg1_l2b2_sio_ctag_vld,
106 dbg0_dbg1_l2b3_sio_ctag_vld,
107 l2b4_dbg1_sio_ack_type,
108 l2b5_dbg1_sio_ack_type,
109 l2b6_dbg1_sio_ack_type,
110 l2b7_dbg1_sio_ack_type,
111 dbg0_dbg1_l2b0_sio_ack_type,
112 dbg0_dbg1_l2b1_sio_ack_type,
113 dbg0_dbg1_l2b2_sio_ack_type,
114 dbg0_dbg1_l2b3_sio_ack_type,
115 l2b4_dbg1_sio_ack_dest,
116 l2b5_dbg1_sio_ack_dest,
117 l2b6_dbg1_sio_ack_dest,
118 l2b7_dbg1_sio_ack_dest,
119 dbg0_dbg1_l2b0_sio_ack_dest,
120 dbg0_dbg1_l2b1_sio_ack_dest,
121 dbg0_dbg1_l2b2_sio_ack_dest,
122 dbg0_dbg1_l2b3_sio_ack_dest,
123 spc1_dbg1_instr_cmt_grp0,
124 spc1_dbg1_instr_cmt_grp1,
125 spc3_dbg1_instr_cmt_grp0,
126 spc3_dbg1_instr_cmt_grp1,
127 spc4_dbg1_instr_cmt_grp0,
128 spc4_dbg1_instr_cmt_grp1,
129 spc5_dbg1_instr_cmt_grp0,
130 spc5_dbg1_instr_cmt_grp1,
131 spc6_dbg1_instr_cmt_grp0,
132 spc6_dbg1_instr_cmt_grp1,
133 spc7_dbg1_instr_cmt_grp0,
134 spc7_dbg1_instr_cmt_grp1,
135 dbg0_dbg1_spc0_instr_cmt_grp0,
136 dbg0_dbg1_spc0_instr_cmt_grp1,
137 dbg0_dbg1_spc2_instr_cmt_grp0,
138 dbg0_dbg1_spc2_instr_cmt_grp1,
139 sel_soc_obs_mode,
140 sel_charac_mode,
141 sel_rep_mode,
142 sel_core_soc_debug_mode,
143 sel_train_mode,
144 l2t0_pa_match_synced,
145 l2t1_pa_match_synced,
146 l2t2_pa_match_synced,
147 l2t3_pa_match_synced,
148 l2t4_pa_match_synced,
149 l2t5_pa_match_synced,
150 l2t6_pa_match_synced,
151 l2t7_pa_match_synced,
152 l2t_error_event_synced,
153 dbg1_mio_dbg_dq);
154wire pce_ov;
155wire stop;
156wire siclk;
157wire soclk;
158wire se;
159wire ff_train_seq_gen_scanin;
160wire ff_train_seq_gen_scanout;
161wire cmp_io2x_sync_en_23;
162wire train_seq;
163wire train_seq_b1;
164wire train_seq_b2;
165wire train_seq_b11;
166wire train_seq_b12;
167wire train_seq_b13;
168wire train_seq_b14;
169wire train_seq_b15;
170wire train_seq_b16;
171wire train_seq_b17;
172wire train_seq_b18;
173wire train_seq_b21;
174wire train_seq_b22;
175wire train_seq_b23;
176wire train_seq_b24;
177wire train_seq_b25;
178wire train_seq_b26;
179wire train_seq_b27;
180wire train_seq_b28;
181wire train_seq_b29;
182wire ff_train_data_0_scanin;
183wire ff_train_data_0_scanout;
184wire ff_train_data_1_scanin;
185wire ff_train_data_1_scanout;
186wire ff_train_data_2_scanin;
187wire ff_train_data_2_scanout;
188wire ff_cmp_io_sync_en_scanin;
189wire ff_cmp_io_sync_en_scanout;
190wire io_cmp_sync_en_2;
191wire io_cmp_sync_en_3;
192wire io_cmp_sync_en_4;
193wire io_cmp_sync_en_5;
194wire io_cmp_sync_en_32;
195wire io_cmp_sync_en_42;
196wire io_cmp_sync_en_52;
197wire l2t0_pa_match_rec_din;
198wire l2t1_pa_match_rec_din;
199wire l2t2_pa_match_rec_din;
200wire l2t3_pa_match_rec_din;
201wire l2t4_pa_match_rec_din;
202wire l2t5_pa_match_rec_din;
203wire l2t6_pa_match_rec_din;
204wire l2t7_pa_match_rec_din;
205wire dbg1_cmp_io_sync_en_2;
206wire io_cmp_sync_en_6;
207wire io_cmp_sync_en_62;
208wire cmp_io2x_sync_en_2;
209wire cmp_io2x_sync_en_22;
210wire l2t0_pa_match_r;
211wire l2t2_pa_match_r;
212wire l2t1_pa_match_r;
213wire l2t3_pa_match_r;
214wire l2t4_pa_match_r;
215wire l2t5_pa_match_r;
216wire l2t6_pa_match_r;
217wire l2t7_pa_match_r;
218wire l2t0_pa_match_rec;
219wire l2t1_pa_match_rec;
220wire l2t2_pa_match_rec;
221wire l2t3_pa_match_rec;
222wire l2t4_pa_match_rec;
223wire l2t5_pa_match_rec;
224wire l2t6_pa_match_rec;
225wire l2t7_pa_match_rec;
226wire l2t0_err_event_r;
227wire l2t2_err_event_r;
228wire l2t1_err_event_r;
229wire l2t3_err_event_r;
230wire l2t4_err_event_r;
231wire l2t5_err_event_r;
232wire l2t6_err_event_r;
233wire l2t7_err_event_r;
234wire ff_charac_signal_bus_scanin;
235wire ff_charac_signal_bus_scanout;
236wire ff_obs_signal_bus_scanin;
237wire ff_obs_signal_bus_scanout;
238wire io_cmp_sync_en_3or4;
239wire io_cmp_sync_en_32or42;
240wire io_cmp_sync_en_5or6;
241wire io_cmp_sync_en_52or62;
242wire cmp_io2x_sync_en_2_n;
243wire dbg1_cmp_io_sync_en_2_n;
244wire sel_train_mode_n;
245wire l2t0_pa_match_rec_sync;
246wire l2t1_pa_match_rec_sync;
247wire l2t2_pa_match_rec_sync;
248wire l2t3_pa_match_rec_sync;
249wire l2t4_pa_match_rec_sync;
250wire l2t5_pa_match_rec_sync;
251wire l2t6_pa_match_rec_sync;
252wire l2t7_pa_match_rec_sync;
253wire l2t012_err_event_r;
254wire l2t345_err_event_r;
255wire l2t67_err_event_r;
256wire l2t_error_event;
257wire ff_l2tx_pa_match_synced_scanin;
258wire ff_l2tx_pa_match_synced_scanout;
259wire ff_mcu_dbg_signals_slice0_scanin;
260wire ff_mcu_dbg_signals_slice0_scanout;
261wire ff_mcu_dbg_signals_slice1_scanin;
262wire ff_mcu_dbg_signals_slice1_scanout;
263wire ff_mcu_dbg_bus_scanin;
264wire ff_mcu_dbg_bus_scanout;
265wire ff_rep_bus_slice0_scanin;
266wire ff_rep_bus_slice0_scanout;
267wire ff_rep_bus_slice1_scanin;
268wire ff_rep_bus_slice1_scanout;
269wire ff_rep_bus_slice2_scanin;
270wire ff_rep_bus_slice2_scanout;
271wire ff_rep_bus_slice3_scanin;
272wire ff_rep_bus_slice3_scanout;
273wire ff_obs_signal_bus_io2x_0_scanin;
274wire ff_obs_signal_bus_io2x_0_scanout;
275wire ff_obs_signal_bus_io2x_1_scanin;
276wire ff_obs_signal_bus_io2x_1_scanout;
277wire ff_obs_signal_bus_io2x_fnl_0_scanin;
278wire ff_obs_signal_bus_io2x_fnl_0_scanout;
279wire ff_obs_signal_bus_io2x_fnl_1_scanin;
280wire ff_obs_signal_bus_io2x_fnl_1_scanout;
281wire ff_charac_signal_bus_io2x_0a_scanin;
282wire ff_charac_signal_bus_io2x_0a_scanout;
283wire ff_charac_signal_bus_io2x_0b_scanin;
284wire ff_charac_signal_bus_io2x_0b_scanout;
285wire ff_charac_signal_bus_io2x_1a_scanin;
286wire ff_charac_signal_bus_io2x_1a_scanout;
287wire ff_charac_signal_bus_io2x_1b_scanin;
288wire ff_charac_signal_bus_io2x_1b_scanout;
289wire ff_charac_signal_bus_io2x_fnl_0a_scanin;
290wire ff_charac_signal_bus_io2x_fnl_0a_scanout;
291wire ff_charac_signal_bus_io2x_fnl_1_scanin;
292wire ff_charac_signal_bus_io2x_fnl_1_scanout;
293wire ff_charac_signal_bus_io2x_fnl_2_scanin;
294wire ff_charac_signal_bus_io2x_fnl_2_scanout;
295wire ff_charac_signal_bus_io2x_fnl_3_scanin;
296wire ff_charac_signal_bus_io2x_fnl_3_scanout;
297wire ff_dbg1_mio_dbg_dq_0_scanin;
298wire ff_dbg1_mio_dbg_dq_0_scanout;
299wire ff_dbg1_mio_dbg_dq_1_scanin;
300wire ff_dbg1_mio_dbg_dq_1_scanout;
301wire ff_dbg1_mio_dbg_dq_2_scanin;
302wire ff_dbg1_mio_dbg_dq_2_scanout;
303wire ccu_dbg1_serdes_dtm_n;
304
305
306input io_cmp_sync_en;
307input cmp_io2x_sync_en;
308input dbg0_dbg1_l2t0_pa_match; //A PA match detected in l2t 0 : flopped version
309input dbg0_dbg1_l2t2_pa_match; //A PA match detected in l2t 2 : flopped version
310input l2t1_dbg1_pa_match; //A PA match detected in l2t 1
311input l2t3_dbg1_pa_match; //A PA match detected in l2t 3
312input l2t4_dbg1_pa_match; //A PA match detected in l2t 4
313input l2t5_dbg1_pa_match; //A PA match detected in l2t 5
314input l2t6_dbg1_pa_match; //A PA match detected in l2t 6
315input l2t7_dbg1_pa_match; //A PA match detected in l2t 7
316
317input dbg0_dbg1_l2t0_err_event; //An Error event occurred in l2t 0 : flopped version
318input dbg0_dbg1_l2t2_err_event; //An Error event occurred in l2t 2 : flopped version
319input l2t1_dbg1_err_event; //An Error event occurred in l2t 1
320input l2t3_dbg1_err_event; //An Error event occurred in l2t 3
321input l2t4_dbg1_err_event; //An Error event occurred in l2t 4
322input l2t5_dbg1_err_event; //An Error event occurred in l2t 5
323input l2t6_dbg1_err_event; //An Error event occurred in l2t 6
324input l2t7_dbg1_err_event; //An Error event occurred in l2t 7
325
326input [165:0] dbg0_dbg1_debug_data; // 166 bit debug data bus carrying repeatability signals to DBG1
327input [87:0] mcu_dtm_signals; // MCU DTM signals to be sent out on debug port
328input ccu_dbg1_serdes_dtm; // DTM mode 1
329
330
331input tcu_pce_ov;
332input tcu_clk_stop;
333input tcu_aclk;
334input tcu_bclk;
335input tcu_scan_en;
336input scan_in;
337output scan_out;
338
339input l2clk; //Internal CMP clock from CCU
340
341input cmp_io_sync_en; // CMP to IO sync enable
342
343input [83:0] mcu_dbg_signals;
344
345// Tester charac/CPU debug mode signals and SOC obs
346// signals from sii->l2t and l2t -> sio interfaces
347
348input [1:0] sii_dbg1_l2t0_req; //Req type encoded on 2 bits from sii to L2t 0
349input [1:0] sii_dbg1_l2t1_req; //Req type encoded on 2 bits from sii to L2t 1
350input [1:0] sii_dbg1_l2t2_req; //Req type encoded on 2 bits from sii to L2t 2
351input [1:0] sii_dbg1_l2t3_req; //Req type encoded on 2 bits from sii to L2t 3
352input [1:0] sii_dbg1_l2t4_req; //Req type encoded on 2 bits from sii to L2t 4
353input [1:0] sii_dbg1_l2t5_req; //Req type encoded on 2 bits from sii to L2t 5
354input [1:0] sii_dbg1_l2t6_req; //Req type encoded on 2 bits from sii to L2t 6
355input [1:0] sii_dbg1_l2t7_req; //Req type encoded on 2 bits from sii to L2t 7
356
357
358input l2t1_dbg1_sii_iq_dequeue;
359input l2t3_dbg1_sii_iq_dequeue;
360input l2t4_dbg1_sii_iq_dequeue;
361input l2t5_dbg1_sii_iq_dequeue;
362input l2t6_dbg1_sii_iq_dequeue;
363input l2t7_dbg1_sii_iq_dequeue;
364input dbg0_dbg1_l2t0_sii_iq_dequeue;
365input dbg0_dbg1_l2t2_sii_iq_dequeue;
366
367
368input l2t1_dbg1_sii_wib_dequeue;
369input l2t3_dbg1_sii_wib_dequeue;
370input l2t4_dbg1_sii_wib_dequeue;
371input l2t5_dbg1_sii_wib_dequeue;
372input l2t6_dbg1_sii_wib_dequeue;
373input l2t7_dbg1_sii_wib_dequeue;
374input dbg0_dbg1_l2t0_sii_wib_dequeue;
375input dbg0_dbg1_l2t2_sii_wib_dequeue;
376
377input [5:0] l2t1_dbg1_xbar_vcid;
378input [5:0] l2t3_dbg1_xbar_vcid;
379input [5:0] l2t4_dbg1_xbar_vcid;
380input [5:0] l2t5_dbg1_xbar_vcid;
381input [5:0] l2t6_dbg1_xbar_vcid;
382input [5:0] l2t7_dbg1_xbar_vcid;
383input [5:0] dbg0_dbg1_l2t0_xbar_vcid;
384input [5:0] dbg0_dbg1_l2t2_xbar_vcid;
385
386input l2b4_dbg1_sio_ctag_vld;
387input l2b5_dbg1_sio_ctag_vld;
388input l2b6_dbg1_sio_ctag_vld;
389input l2b7_dbg1_sio_ctag_vld;
390input dbg0_dbg1_l2b0_sio_ctag_vld;
391input dbg0_dbg1_l2b1_sio_ctag_vld;
392input dbg0_dbg1_l2b2_sio_ctag_vld;
393input dbg0_dbg1_l2b3_sio_ctag_vld;
394
395
396input l2b4_dbg1_sio_ack_type;
397input l2b5_dbg1_sio_ack_type;
398input l2b6_dbg1_sio_ack_type;
399input l2b7_dbg1_sio_ack_type;
400input dbg0_dbg1_l2b0_sio_ack_type;
401input dbg0_dbg1_l2b1_sio_ack_type;
402input dbg0_dbg1_l2b2_sio_ack_type;
403input dbg0_dbg1_l2b3_sio_ack_type;
404
405
406input l2b4_dbg1_sio_ack_dest;
407input l2b5_dbg1_sio_ack_dest;
408input l2b6_dbg1_sio_ack_dest;
409input l2b7_dbg1_sio_ack_dest;
410input dbg0_dbg1_l2b0_sio_ack_dest;
411input dbg0_dbg1_l2b1_sio_ack_dest;
412input dbg0_dbg1_l2b2_sio_ack_dest;
413input dbg0_dbg1_l2b3_sio_ack_dest;
414
415
416
417input [1:0] spc1_dbg1_instr_cmt_grp0;
418input [1:0] spc1_dbg1_instr_cmt_grp1;
419input [1:0] spc3_dbg1_instr_cmt_grp0;
420input [1:0] spc3_dbg1_instr_cmt_grp1;
421input [1:0] spc4_dbg1_instr_cmt_grp0;
422input [1:0] spc4_dbg1_instr_cmt_grp1;
423input [1:0] spc5_dbg1_instr_cmt_grp0;
424input [1:0] spc5_dbg1_instr_cmt_grp1;
425input [1:0] spc6_dbg1_instr_cmt_grp0;
426input [1:0] spc6_dbg1_instr_cmt_grp1;
427input [1:0] spc7_dbg1_instr_cmt_grp0;
428input [1:0] spc7_dbg1_instr_cmt_grp1;
429input [1:0] dbg0_dbg1_spc0_instr_cmt_grp0;
430input [1:0] dbg0_dbg1_spc0_instr_cmt_grp1;
431input [1:0] dbg0_dbg1_spc2_instr_cmt_grp0;
432input [1:0] dbg0_dbg1_spc2_instr_cmt_grp1;
433
434input sel_soc_obs_mode;
435input sel_charac_mode;
436input sel_rep_mode;
437input sel_core_soc_debug_mode;
438input sel_train_mode;
439
440
441
442output l2t0_pa_match_synced;
443output l2t1_pa_match_synced;
444output l2t2_pa_match_synced;
445output l2t3_pa_match_synced;
446output l2t4_pa_match_synced;
447output l2t5_pa_match_synced;
448output l2t6_pa_match_synced;
449output l2t7_pa_match_synced;
450output l2t_error_event_synced;
451
452output [165:0] dbg1_mio_dbg_dq;
453
454// Scan reassigns
455assign pce_ov = tcu_pce_ov;
456assign stop = tcu_clk_stop;
457assign siclk = tcu_aclk;
458assign soclk = tcu_bclk;
459assign se = tcu_scan_en;
460
461// wire declarations
462
463wire [165:0] dbg1_mio_dbg_dq_int;
464wire [83:0] mcu_dbg_signals_r;
465wire [41:0] mcu_dbg_bus,mcu_dbg_bus_syncd;
466wire [165:0] rep_data;
467wire [79:0] charac_signal_bus,charac_signal_bus_0,charac_signal_bus_1;
468wire [55:0] obs_signal_bus,obs_signal_bus_0,obs_signal_bus_1;
469wire [111:0] obs_signal_bus_io2x_fnl;
470wire [165:0] soc_obs_data;
471wire [159:0] charac_signal_bus_io2x_fnl;
472wire [165:0] charac_data;
473wire [165:0] dbg_mux0_data;
474wire [165:0] dbg_mux1_data;
475wire [165:0] core_soc_align_data;
476wire [165:0] train_data,train_data_din;
477
478wire [1:0] train_seq_gen;
479wire [1:0] train_seq_gen_din;
480
481// Train sequence generation logic
482// 2 cycle multicyle path from train_seq_gen[1:0] to train_data[165:0]
483// 2 cmp clocks wide
484
485db1_dbgprt_dp_inv_macro__stack_1l__width_1 train_seq_gen_0_inv
486 (
487 .dout (train_seq_gen_din[0]),
488 .din (train_seq_gen[0])
489 );
490
491db1_dbgprt_dp_xor_macro__stack_1l__width_1 xor1
492 (
493 .dout (train_seq_gen_din[1]),
494 .din0 (train_seq_gen[0]),
495 .din1 (train_seq_gen[1])
496 );
497
498db1_dbgprt_dp_msff_macro__stack_2c__width_2 ff_train_seq_gen (
499 .scan_in(ff_train_seq_gen_scanin),
500 .scan_out(ff_train_seq_gen_scanout),
501 .clk ( l2clk ),
502 .en ( cmp_io2x_sync_en_23 ),
503 .din ( train_seq_gen_din[1:0]),
504 .dout ( train_seq_gen[1:0]),
505 .se(se),
506 .siclk(siclk),
507 .soclk(soclk),
508 .pce_ov(pce_ov),
509 .stop(stop)
510 );
511
512db1_dbgprt_dp_or_macro__stack_1l__width_1 or_train_seq
513 (
514 .dout (train_seq),
515 .din1 (train_seq_gen[1]),
516 .din0 (train_seq_gen[0])
517 );
518
519
520db1_dbgprt_dp_buff_macro__dbuff_8x__stack_20c__width_19 buf_tree_train_seq
521 (
522 .din ({train_seq,train_seq,
523 train_seq_b1,train_seq_b1,train_seq_b1,train_seq_b1,
524 train_seq_b1,train_seq_b1,train_seq_b1,train_seq_b1,
525 train_seq_b2,train_seq_b2,train_seq_b2,train_seq_b2,
526 train_seq_b2,train_seq_b2,train_seq_b2,train_seq_b2,
527 train_seq_b2}),
528 .dout ({train_seq_b1,train_seq_b2,
529 train_seq_b11,train_seq_b12,train_seq_b13,train_seq_b14,
530 train_seq_b15,train_seq_b16,train_seq_b17,train_seq_b18,
531 train_seq_b21,train_seq_b22,train_seq_b23,train_seq_b24,
532 train_seq_b25,train_seq_b26,train_seq_b27,train_seq_b28,
533 train_seq_b29
534 })
535 );
536
537assign train_data_din = {({6{train_seq_b29}}),({10{train_seq_b28}}),({10{train_seq_b27}}),
538 ({10{train_seq_b26}}),({10{train_seq_b25}}),({10{train_seq_b24}}),
539 ({10{train_seq_b23}}),({10{train_seq_b22}}),({10{train_seq_b21}}),
540 ({10{train_seq_b18}}),({10{train_seq_b17}}),({10{train_seq_b16}}),
541 ({10{train_seq_b15}}),({10{train_seq_b14}}),({10{train_seq_b13}}),
542 ({10{train_seq_b12}}),({10{train_seq_b11}})};
543
544// flop train_data_din enabled with 700 mhz sync_en
545
546db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_train_data_0 (
547 .scan_in(ff_train_data_0_scanin),
548 .scan_out(ff_train_data_0_scanout),
549 .clk ( l2clk ),
550 .en ( cmp_io2x_sync_en_23),
551 .din ( train_data_din[71:0]),
552 .dout ( train_data[71:0]),
553 .se(se),
554 .siclk(siclk),
555 .soclk(soclk),
556 .pce_ov(pce_ov),
557 .stop(stop)
558 );
559
560db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_train_data_1 (
561 .scan_in(ff_train_data_1_scanin),
562 .scan_out(ff_train_data_1_scanout),
563 .clk ( l2clk ),
564 .en ( cmp_io2x_sync_en_23),
565 .din ( train_data_din[143:72]),
566 .dout ( train_data[143:72]),
567 .se(se),
568 .siclk(siclk),
569 .soclk(soclk),
570 .pce_ov(pce_ov),
571 .stop(stop)
572 );
573db1_dbgprt_dp_msff_macro__stack_22c__width_22 ff_train_data_2 (
574 .scan_in(ff_train_data_2_scanin),
575 .scan_out(ff_train_data_2_scanout),
576 .clk ( l2clk ),
577 .en ( cmp_io2x_sync_en_23),
578 .din ( train_data_din[165:144]),
579 .dout ( train_data[165:144]),
580 .se(se),
581 .siclk(siclk),
582 .soclk(soclk),
583 .pce_ov(pce_ov),
584 .stop(stop)
585 );
586
587// flops sync enables, L2t pa match and err event signals
588// free running flops
589
590
591db1_dbgprt_dp_msff_macro__stack_38c__width_37 ff_cmp_io_sync_en (
592 .scan_in(ff_cmp_io_sync_en_scanin),
593 .scan_out(ff_cmp_io_sync_en_scanout),
594 .clk ( l2clk ),
595 .en ( 1'b1 ),
596 .din ( {cmp_io_sync_en,io_cmp_sync_en,io_cmp_sync_en_2,
597 io_cmp_sync_en_3,io_cmp_sync_en_4,io_cmp_sync_en_5,
598 io_cmp_sync_en_2,io_cmp_sync_en_32,io_cmp_sync_en_42,
599 io_cmp_sync_en_52,cmp_io2x_sync_en,cmp_io2x_sync_en,cmp_io2x_sync_en,
600 dbg0_dbg1_l2t0_pa_match,dbg0_dbg1_l2t2_pa_match,
601 l2t1_dbg1_pa_match,l2t3_dbg1_pa_match,l2t4_dbg1_pa_match,
602 l2t5_dbg1_pa_match,l2t6_dbg1_pa_match,l2t7_dbg1_pa_match,
603 l2t0_pa_match_rec_din,l2t1_pa_match_rec_din,l2t2_pa_match_rec_din,
604 l2t3_pa_match_rec_din,l2t4_pa_match_rec_din,l2t5_pa_match_rec_din,
605 l2t6_pa_match_rec_din,l2t7_pa_match_rec_din,
606 dbg0_dbg1_l2t0_err_event,dbg0_dbg1_l2t2_err_event,
607 l2t1_dbg1_err_event,l2t3_dbg1_err_event,l2t4_dbg1_err_event,
608 l2t5_dbg1_err_event,l2t6_dbg1_err_event,l2t7_dbg1_err_event
609 }),
610 .dout ( {dbg1_cmp_io_sync_en_2,io_cmp_sync_en_2,
611 io_cmp_sync_en_3,io_cmp_sync_en_4,io_cmp_sync_en_5,io_cmp_sync_en_6,
612 io_cmp_sync_en_32,io_cmp_sync_en_42,io_cmp_sync_en_52,
613 io_cmp_sync_en_62,cmp_io2x_sync_en_2,cmp_io2x_sync_en_22,cmp_io2x_sync_en_23,
614 l2t0_pa_match_r,l2t2_pa_match_r,l2t1_pa_match_r,
615 l2t3_pa_match_r,l2t4_pa_match_r,l2t5_pa_match_r,
616 l2t6_pa_match_r,l2t7_pa_match_r,
617 l2t0_pa_match_rec,l2t1_pa_match_rec,l2t2_pa_match_rec,
618 l2t3_pa_match_rec,l2t4_pa_match_rec,l2t5_pa_match_rec,
619 l2t6_pa_match_rec,l2t7_pa_match_rec,
620 l2t0_err_event_r,l2t2_err_event_r,l2t1_err_event_r,
621 l2t3_err_event_r,l2t4_err_event_r,l2t5_err_event_r,
622 l2t6_err_event_r,l2t7_err_event_r}),
623 .se(se),
624 .siclk(siclk),
625 .soclk(soclk),
626 .pce_ov(pce_ov),
627 .stop(stop)
628 );
629
630// Flop tester charc/cpu debug and soc obs signals between l2t and sii once
631// free running flops
632
633db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_charac_signal_bus (
634 .scan_in(ff_charac_signal_bus_scanin),
635 .scan_out(ff_charac_signal_bus_scanout),
636 .clk ( l2clk ),
637 .en ( 1'b1 ),
638 .din ( {spc5_dbg1_instr_cmt_grp1[1:0],spc5_dbg1_instr_cmt_grp0[1:0],
639 spc4_dbg1_instr_cmt_grp1[1:0],spc4_dbg1_instr_cmt_grp0[1:0],
640 spc3_dbg1_instr_cmt_grp1[1:0],spc3_dbg1_instr_cmt_grp0[1:0],
641 dbg0_dbg1_spc2_instr_cmt_grp1[1:0],dbg0_dbg1_spc2_instr_cmt_grp0[1:0],
642 spc1_dbg1_instr_cmt_grp1[1:0],spc1_dbg1_instr_cmt_grp0[1:0],
643 dbg0_dbg1_spc0_instr_cmt_grp1[1:0],dbg0_dbg1_spc0_instr_cmt_grp0[1:0],
644 l2t7_dbg1_xbar_vcid[5:0],l2t6_dbg1_xbar_vcid[5:0],
645 l2t5_dbg1_xbar_vcid[5:0],l2t4_dbg1_xbar_vcid[5:0],
646 l2t3_dbg1_xbar_vcid[5:0],dbg0_dbg1_l2t2_xbar_vcid[5:0],
647 l2t1_dbg1_xbar_vcid[5:0],dbg0_dbg1_l2t0_xbar_vcid[5:0]
648 }),
649 .dout ( charac_signal_bus[71:0]),
650 .se(se),
651 .siclk(siclk),
652 .soclk(soclk),
653 .pce_ov(pce_ov),
654 .stop(stop)
655 );
656
657db1_dbgprt_dp_msff_macro__stack_64c__width_64 ff_obs_signal_bus (
658 .scan_in(ff_obs_signal_bus_scanin),
659 .scan_out(ff_obs_signal_bus_scanout),
660 .clk ( l2clk ),
661 .en ( 1'b1 ),
662 .din ( {sii_dbg1_l2t7_req[1:0],l2t7_dbg1_sii_iq_dequeue,
663 l2t7_dbg1_sii_wib_dequeue,l2b7_dbg1_sio_ctag_vld,
664 l2b7_dbg1_sio_ack_type,l2b7_dbg1_sio_ack_dest,
665 sii_dbg1_l2t6_req[1:0],l2t6_dbg1_sii_iq_dequeue,
666 l2t6_dbg1_sii_wib_dequeue,l2b6_dbg1_sio_ctag_vld,
667 l2b6_dbg1_sio_ack_type,l2b6_dbg1_sio_ack_dest,
668 sii_dbg1_l2t5_req[1:0],l2t5_dbg1_sii_iq_dequeue,
669 l2t5_dbg1_sii_wib_dequeue,l2b5_dbg1_sio_ctag_vld,
670 l2b5_dbg1_sio_ack_type,l2b5_dbg1_sio_ack_dest,
671 sii_dbg1_l2t4_req[1:0],l2t4_dbg1_sii_iq_dequeue,
672 l2t4_dbg1_sii_wib_dequeue,l2b4_dbg1_sio_ctag_vld,
673 l2b4_dbg1_sio_ack_type,l2b4_dbg1_sio_ack_dest,
674 sii_dbg1_l2t3_req[1:0],l2t3_dbg1_sii_iq_dequeue,
675 l2t3_dbg1_sii_wib_dequeue,dbg0_dbg1_l2b3_sio_ctag_vld,
676 dbg0_dbg1_l2b3_sio_ack_type,dbg0_dbg1_l2b3_sio_ack_dest,
677 sii_dbg1_l2t2_req[1:0],dbg0_dbg1_l2t2_sii_iq_dequeue,
678 dbg0_dbg1_l2t2_sii_wib_dequeue,dbg0_dbg1_l2b2_sio_ctag_vld,
679 dbg0_dbg1_l2b2_sio_ack_type,dbg0_dbg1_l2b2_sio_ack_dest,
680 sii_dbg1_l2t1_req[1:0],l2t1_dbg1_sii_iq_dequeue,
681 l2t1_dbg1_sii_wib_dequeue,dbg0_dbg1_l2b1_sio_ctag_vld,
682 dbg0_dbg1_l2b1_sio_ack_type,dbg0_dbg1_l2b1_sio_ack_dest,
683 sii_dbg1_l2t0_req[1:0],dbg0_dbg1_l2t0_sii_iq_dequeue,
684 dbg0_dbg1_l2t0_sii_wib_dequeue,dbg0_dbg1_l2b0_sio_ctag_vld,
685 dbg0_dbg1_l2b0_sio_ack_type,dbg0_dbg1_l2b0_sio_ack_dest,
686 spc7_dbg1_instr_cmt_grp1[1:0],spc7_dbg1_instr_cmt_grp0[1:0],
687 spc6_dbg1_instr_cmt_grp1[1:0],spc6_dbg1_instr_cmt_grp0[1:0]
688 }),
689 .dout ( {obs_signal_bus[55:0],charac_signal_bus[79:72]}),
690 .se(se),
691 .siclk(siclk),
692 .soclk(soclk),
693 .pce_ov(pce_ov),
694 .stop(stop)
695 );
696
697
698// OR piped versions of sync enables to generate mux selects
699
700db1_dbgprt_dp_or_macro__stack_1l__width_1 or_sync_3_4
701 (
702 .din0 (io_cmp_sync_en_3),
703 .din1 (io_cmp_sync_en_4),
704 .dout (io_cmp_sync_en_3or4)
705 );
706
707db1_dbgprt_dp_or_macro__stack_1l__width_1 or_sync_32_42
708 (
709 .din0 (io_cmp_sync_en_32),
710 .din1 (io_cmp_sync_en_42),
711 .dout (io_cmp_sync_en_32or42)
712 );
713
714db1_dbgprt_dp_or_macro__stack_1l__width_1 or_sync_5_6
715 (
716 .din0 (io_cmp_sync_en_5),
717 .din1 (io_cmp_sync_en_6),
718 .dout (io_cmp_sync_en_5or6)
719 );
720
721db1_dbgprt_dp_or_macro__stack_1l__width_1 or_sync_52_62
722 (
723 .din0 (io_cmp_sync_en_52),
724 .din1 (io_cmp_sync_en_62),
725 .dout (io_cmp_sync_en_52or62)
726 );
727
728// these flops are set by l2tx_pa_match_r, and hold value until the next sync pulse
729// when they are cleared to 0. Unless l2tx_pa_match_r are 1's, in which case , does
730// not get cleared but stay 1's
731
732/*
733assign l2t0_pa_match_rec_din = l2t0_pa_match_r | (l2t0_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
734assign l2t1_pa_match_rec_din = l2t1_pa_match_r | (l2t1_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
735assign l2t2_pa_match_rec_din = l2t2_pa_match_r | (l2t2_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
736assign l2t3_pa_match_rec_din = l2t3_pa_match_r | (l2t3_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
737assign l2t4_pa_match_rec_din = l2t4_pa_match_r | (l2t4_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
738assign l2t5_pa_match_rec_din = l2t5_pa_match_r | (l2t5_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
739assign l2t6_pa_match_rec_din = l2t6_pa_match_r | (l2t6_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
740assign l2t7_pa_match_rec_din = l2t7_pa_match_r | (l2t7_pa_match_rec & ~dbg1_cmp_io_sync_en_2);
741*/
742
743db1_dbgprt_dp_inv_macro__stack_1l__width_1 cmp_io2x_sync_en_2_inv
744 (
745 .dout (cmp_io2x_sync_en_2_n),
746 .din (cmp_io2x_sync_en_2)
747 );
748
749db1_dbgprt_dp_inv_macro__stack_1l__width_1 dbg1_cmp_io_sync_en_2_inv_slice
750 (
751 .dout (dbg1_cmp_io_sync_en_2_n),
752 .din (dbg1_cmp_io_sync_en_2)
753 );
754
755db1_dbgprt_dp_inv_macro__stack_1l__width_1 sel_train_mode_inv
756 (
757 .dout (sel_train_mode_n),
758 .din (sel_train_mode)
759 );
760
761db1_dbgprt_dp_and_macro__stack_1l__width_1 and0
762 (
763 .dout (l2t0_pa_match_rec_sync),
764 .din0 (dbg1_cmp_io_sync_en_2_n),
765 .din1 (l2t0_pa_match_rec)
766 );
767
768
769db1_dbgprt_dp_or_macro__stack_1l__width_1 or0
770 (
771 .dout (l2t0_pa_match_rec_din),
772 .din0 (l2t0_pa_match_r),
773 .din1 (l2t0_pa_match_rec_sync)
774 );
775
776
777db1_dbgprt_dp_and_macro__stack_1l__width_1 and1
778 (
779 .dout (l2t1_pa_match_rec_sync),
780 .din0 (dbg1_cmp_io_sync_en_2_n),
781 .din1 (l2t1_pa_match_rec)
782 );
783
784
785db1_dbgprt_dp_or_macro__stack_1l__width_1 or1
786 (
787 .dout (l2t1_pa_match_rec_din),
788 .din0 (l2t1_pa_match_r),
789 .din1 (l2t1_pa_match_rec_sync)
790 );
791
792
793db1_dbgprt_dp_and_macro__stack_1l__width_1 and2
794 (
795 .dout (l2t2_pa_match_rec_sync),
796 .din0 (dbg1_cmp_io_sync_en_2_n),
797 .din1 (l2t2_pa_match_rec)
798 );
799
800
801db1_dbgprt_dp_or_macro__stack_1l__width_1 or2
802 (
803 .dout (l2t2_pa_match_rec_din),
804 .din0 (l2t2_pa_match_r),
805 .din1 (l2t2_pa_match_rec_sync)
806 );
807
808db1_dbgprt_dp_and_macro__stack_1l__width_1 and3
809 (
810 .dout (l2t3_pa_match_rec_sync),
811 .din0 (dbg1_cmp_io_sync_en_2_n),
812 .din1 (l2t3_pa_match_rec)
813 );
814
815
816db1_dbgprt_dp_or_macro__stack_1l__width_1 or3
817 (
818 .dout (l2t3_pa_match_rec_din),
819 .din0 (l2t3_pa_match_r),
820 .din1 (l2t3_pa_match_rec_sync)
821 );
822
823db1_dbgprt_dp_and_macro__stack_1l__width_1 and4
824 (
825 .dout (l2t4_pa_match_rec_sync),
826 .din0 (dbg1_cmp_io_sync_en_2_n),
827 .din1 (l2t4_pa_match_rec)
828 );
829
830
831db1_dbgprt_dp_or_macro__stack_1l__width_1 or4
832 (
833 .dout (l2t4_pa_match_rec_din),
834 .din0 (l2t4_pa_match_r),
835 .din1 (l2t4_pa_match_rec_sync)
836 );
837
838db1_dbgprt_dp_and_macro__stack_1l__width_1 and5
839 (
840 .dout (l2t5_pa_match_rec_sync),
841 .din0 (dbg1_cmp_io_sync_en_2_n),
842 .din1 (l2t5_pa_match_rec)
843 );
844
845
846db1_dbgprt_dp_or_macro__stack_1l__width_1 or5
847 (
848 .dout (l2t5_pa_match_rec_din),
849 .din0 (l2t5_pa_match_r),
850 .din1 (l2t5_pa_match_rec_sync)
851 );
852
853db1_dbgprt_dp_and_macro__stack_1l__width_1 and6
854 (
855 .dout (l2t6_pa_match_rec_sync),
856 .din0 (dbg1_cmp_io_sync_en_2_n),
857 .din1 (l2t6_pa_match_rec)
858 );
859
860
861db1_dbgprt_dp_or_macro__stack_1l__width_1 or6
862 (
863 .dout (l2t6_pa_match_rec_din),
864 .din0 (l2t6_pa_match_r),
865 .din1 (l2t6_pa_match_rec_sync)
866 );
867
868db1_dbgprt_dp_and_macro__stack_1l__width_1 and7
869 (
870 .dout (l2t7_pa_match_rec_sync),
871 .din0 (dbg1_cmp_io_sync_en_2_n),
872 .din1 (l2t7_pa_match_rec)
873 );
874
875
876db1_dbgprt_dp_or_macro__stack_1l__width_1 or7
877 (
878 .dout (l2t7_pa_match_rec_din),
879 .din0 (l2t7_pa_match_r),
880 .din1 (l2t7_pa_match_rec_sync)
881 );
882
883// Or all the L2 error events here and sync to iol2clk
884
885// assign l2t_error_event = (l2t0_err_event_r | l2t1_err_event_r | l2t2_err_event_r |
886// l2t3_err_event_r | l2t4_err_event_r | l2t5_err_event_r |
887// l2t6_err_event_r | l2t7_err_event_r);
888
889
890db1_dbgprt_dp_or_macro__ports_3__stack_1l__width_1 err_event_or0
891 (.dout (l2t012_err_event_r),
892 .din0 (l2t0_err_event_r),
893 .din1 (l2t1_err_event_r),
894 .din2 (l2t2_err_event_r)
895 );
896
897db1_dbgprt_dp_or_macro__ports_3__stack_1l__width_1 err_event_or1
898 (.dout (l2t345_err_event_r),
899 .din0 (l2t3_err_event_r),
900 .din1 (l2t4_err_event_r),
901 .din2 (l2t5_err_event_r)
902 );
903
904db1_dbgprt_dp_or_macro__ports_2__stack_1l__width_1 err_event_or2
905 (.dout (l2t67_err_event_r),
906 .din0 (l2t6_err_event_r),
907 .din1 (l2t7_err_event_r)
908 );
909
910db1_dbgprt_dp_or_macro__ports_3__stack_1l__width_1 err_event_or3
911 (.dout (l2t_error_event),
912 .din0 (l2t012_err_event_r),
913 .din1 (l2t345_err_event_r),
914 .din2 (l2t67_err_event_r)
915 );
916
917
918
919db1_dbgprt_dp_msff_macro__stack_9c__width_9 ff_l2tx_pa_match_synced (
920 .scan_in(ff_l2tx_pa_match_synced_scanin),
921 .scan_out(ff_l2tx_pa_match_synced_scanout),
922 .clk ( l2clk ),
923 .en ( dbg1_cmp_io_sync_en_2),
924 .din ( {l2t0_pa_match_rec,l2t1_pa_match_rec,l2t2_pa_match_rec,
925 l2t3_pa_match_rec,l2t4_pa_match_rec,l2t5_pa_match_rec,
926 l2t6_pa_match_rec,l2t7_pa_match_rec,l2t_error_event}),
927 .dout ( {l2t0_pa_match_synced,l2t1_pa_match_synced,l2t2_pa_match_synced,
928 l2t3_pa_match_synced,l2t4_pa_match_synced,l2t5_pa_match_synced,
929 l2t6_pa_match_synced,l2t7_pa_match_synced,l2t_error_event_synced}),
930 .se(se),
931 .siclk(siclk),
932 .soclk(soclk),
933 .pce_ov(pce_ov),
934 .stop(stop)
935 );
936
937// flop mcu_dbg_signals bits [83:0]
938// flop with enable coming from io_cmp_sync_en
939
940db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_mcu_dbg_signals_slice0 (
941 .scan_in(ff_mcu_dbg_signals_slice0_scanin),
942 .scan_out(ff_mcu_dbg_signals_slice0_scanout),
943 .clk ( l2clk ),
944 .en ( io_cmp_sync_en_2),
945 .din ( mcu_dbg_signals[71:0]),
946 .dout ( mcu_dbg_signals_r[71:0]),
947 .se(se),
948 .siclk(siclk),
949 .soclk(soclk),
950 .pce_ov(pce_ov),
951 .stop(stop)
952 );
953
954db1_dbgprt_dp_msff_macro__stack_12c__width_12 ff_mcu_dbg_signals_slice1 (
955 .scan_in(ff_mcu_dbg_signals_slice1_scanin),
956 .scan_out(ff_mcu_dbg_signals_slice1_scanout),
957 .clk ( l2clk ),
958 .en ( io_cmp_sync_en_2),
959 .din ( mcu_dbg_signals[83:72]),
960 .dout ( mcu_dbg_signals_r[83:72]),
961 .se(se),
962 .siclk(siclk),
963 .soclk(soclk),
964 .pce_ov(pce_ov),
965 .stop(stop)
966 );
967
968// Mux between mcu_dbg_signals[41:0] and mcu_dbg_signals[83:42]
969
970db1_dbgprt_dp_mux_macro__mux_aonpe__stack_42c__width_42 mux_1
971 (
972 .dout (mcu_dbg_bus[41:0]),
973 .din0 (mcu_dbg_signals_r[41:0]),
974 .din1 (mcu_dbg_signals_r[83:42]),
975 .sel0 (io_cmp_sync_en_3or4),
976 .sel1 (io_cmp_sync_en_5or6)
977 ) ;
978
979// FLop mcu_dbg_bus with enable coming off of registered cmp_io2x_sync_en
980
981db1_dbgprt_dp_msff_macro__stack_42c__width_42 ff_mcu_dbg_bus (
982 .scan_in(ff_mcu_dbg_bus_scanin),
983 .scan_out(ff_mcu_dbg_bus_scanout),
984 .clk ( l2clk ),
985 .en ( cmp_io2x_sync_en_2 ),
986 .din ( mcu_dbg_bus[41:0]),
987 .dout ( mcu_dbg_bus_syncd[41:0]),
988 .se(se),
989 .siclk(siclk),
990 .soclk(soclk),
991 .pce_ov(pce_ov),
992 .stop(stop)
993 );
994
995// Flop dbg0_dbg1_debug_data[165:0] with enable coming off of registered cmp_io2x_sync_en
996
997db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_rep_bus_slice0 (
998 .scan_in(ff_rep_bus_slice0_scanin),
999 .scan_out(ff_rep_bus_slice0_scanout),
1000 .clk ( l2clk ),
1001 .en ( cmp_io2x_sync_en_2 ),
1002 .din ( dbg0_dbg1_debug_data[71:0]),
1003 .dout ( rep_data[71:0]),
1004 .se(se),
1005 .siclk(siclk),
1006 .soclk(soclk),
1007 .pce_ov(pce_ov),
1008 .stop(stop)
1009 );
1010
1011db1_dbgprt_dp_msff_macro__stack_12r__width_12 ff_rep_bus_slice1 (
1012 .scan_in(ff_rep_bus_slice1_scanin),
1013 .scan_out(ff_rep_bus_slice1_scanout),
1014 .clk ( l2clk ),
1015 .en ( cmp_io2x_sync_en_2 ),
1016 .din ( dbg0_dbg1_debug_data[83:72]),
1017 .dout ( rep_data[83:72]),
1018 .se(se),
1019 .siclk(siclk),
1020 .soclk(soclk),
1021 .pce_ov(pce_ov),
1022 .stop(stop)
1023 );
1024
1025db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_rep_bus_slice2 (
1026 .scan_in(ff_rep_bus_slice2_scanin),
1027 .scan_out(ff_rep_bus_slice2_scanout),
1028 .clk ( l2clk ),
1029 .en ( cmp_io2x_sync_en_2 ),
1030 .din ( dbg0_dbg1_debug_data[155:84]),
1031 .dout ( rep_data[155:84]),
1032 .se(se),
1033 .siclk(siclk),
1034 .soclk(soclk),
1035 .pce_ov(pce_ov),
1036 .stop(stop)
1037 );
1038
1039db1_dbgprt_dp_msff_macro__stack_10r__width_10 ff_rep_bus_slice3 (
1040 .scan_in(ff_rep_bus_slice3_scanin),
1041 .scan_out(ff_rep_bus_slice3_scanout),
1042 .clk ( l2clk ),
1043 .en ( cmp_io2x_sync_en_2 ),
1044 .din ( dbg0_dbg1_debug_data[165:156]),
1045 .dout ( rep_data[165:156]),
1046 .se(se),
1047 .siclk(siclk),
1048 .soclk(soclk),
1049 .pce_ov(pce_ov),
1050 .stop(stop)
1051 );
1052
1053// Logic to convert obs_signal_bus[55:0]
1054// from l2clk to io2xclk domain
1055
1056db1_dbgprt_dp_msff_macro__stack_56c__width_56 ff_obs_signal_bus_io2x_0 (
1057 .scan_in(ff_obs_signal_bus_io2x_0_scanin),
1058 .scan_out(ff_obs_signal_bus_io2x_0_scanout),
1059 .clk ( l2clk ),
1060 .en ( cmp_io2x_sync_en_2 ),
1061 .din (obs_signal_bus[55:0]),
1062 .dout (obs_signal_bus_0[55:0]),
1063 .se(se),
1064 .siclk(siclk),
1065 .soclk(soclk),
1066 .pce_ov(pce_ov),
1067 .stop(stop)
1068 );
1069
1070db1_dbgprt_dp_msff_macro__stack_56c__width_56 ff_obs_signal_bus_io2x_1 (
1071 .scan_in(ff_obs_signal_bus_io2x_1_scanin),
1072 .scan_out(ff_obs_signal_bus_io2x_1_scanout),
1073 .clk ( l2clk ),
1074 .en ( cmp_io2x_sync_en_2_n ),
1075 .din (obs_signal_bus[55:0]),
1076 .dout (obs_signal_bus_1[55:0]),
1077 .se(se),
1078 .siclk(siclk),
1079 .soclk(soclk),
1080 .pce_ov(pce_ov),
1081 .stop(stop)
1082 );
1083
1084db1_dbgprt_dp_msff_macro__stack_56c__width_56 ff_obs_signal_bus_io2x_fnl_0 (
1085 .scan_in(ff_obs_signal_bus_io2x_fnl_0_scanin),
1086 .scan_out(ff_obs_signal_bus_io2x_fnl_0_scanout),
1087 .clk ( l2clk ),
1088 .en ( cmp_io2x_sync_en_2 ),
1089 .din ( obs_signal_bus_0[55:0]),
1090 .dout ( obs_signal_bus_io2x_fnl[55:0]),
1091 .se(se),
1092 .siclk(siclk),
1093 .soclk(soclk),
1094 .pce_ov(pce_ov),
1095 .stop(stop)
1096 );
1097
1098db1_dbgprt_dp_msff_macro__stack_56c__width_56 ff_obs_signal_bus_io2x_fnl_1 (
1099 .scan_in(ff_obs_signal_bus_io2x_fnl_1_scanin),
1100 .scan_out(ff_obs_signal_bus_io2x_fnl_1_scanout),
1101 .clk ( l2clk ),
1102 .en ( cmp_io2x_sync_en_2 ),
1103 .din ( obs_signal_bus_1[55:0]),
1104 .dout ( obs_signal_bus_io2x_fnl[111:56]),
1105 .se(se),
1106 .siclk(siclk),
1107 .soclk(soclk),
1108 .pce_ov(pce_ov),
1109 .stop(stop)
1110 );
1111
1112assign soc_obs_data = {10'b0,obs_signal_bus_io2x_fnl[111:0],2'b0,mcu_dbg_bus_syncd[41:0]};
1113
1114// Logic to convert charac_signal_bus[79:0] from l2clk to io2xclk domain
1115
1116db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_charac_signal_bus_io2x_0a (
1117 .scan_in(ff_charac_signal_bus_io2x_0a_scanin),
1118 .scan_out(ff_charac_signal_bus_io2x_0a_scanout),
1119 .clk ( l2clk ),
1120 .en ( cmp_io2x_sync_en_2 ),
1121 .din ( charac_signal_bus[71:0]),
1122 .dout ( charac_signal_bus_0[71:0]),
1123 .se(se),
1124 .siclk(siclk),
1125 .soclk(soclk),
1126 .pce_ov(pce_ov),
1127 .stop(stop)
1128 );
1129
1130db1_dbgprt_dp_msff_macro__stack_8r__width_8 ff_charac_signal_bus_io2x_0b (
1131 .scan_in(ff_charac_signal_bus_io2x_0b_scanin),
1132 .scan_out(ff_charac_signal_bus_io2x_0b_scanout),
1133 .clk ( l2clk ),
1134 .en ( cmp_io2x_sync_en_2 ),
1135 .din ( charac_signal_bus[79:72]),
1136 .dout ( charac_signal_bus_0[79:72]),
1137 .se(se),
1138 .siclk(siclk),
1139 .soclk(soclk),
1140 .pce_ov(pce_ov),
1141 .stop(stop)
1142 );
1143
1144db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_charac_signal_bus_io2x_1a (
1145 .scan_in(ff_charac_signal_bus_io2x_1a_scanin),
1146 .scan_out(ff_charac_signal_bus_io2x_1a_scanout),
1147 .clk ( l2clk ),
1148 .en ( cmp_io2x_sync_en_2_n ),
1149 .din ( charac_signal_bus[71:0]),
1150 .dout ( charac_signal_bus_1[71:0]),
1151 .se(se),
1152 .siclk(siclk),
1153 .soclk(soclk),
1154 .pce_ov(pce_ov),
1155 .stop(stop)
1156 );
1157
1158db1_dbgprt_dp_msff_macro__stack_8r__width_8 ff_charac_signal_bus_io2x_1b (
1159 .scan_in(ff_charac_signal_bus_io2x_1b_scanin),
1160 .scan_out(ff_charac_signal_bus_io2x_1b_scanout),
1161 .clk ( l2clk ),
1162 .en ( cmp_io2x_sync_en_2_n ),
1163 .din ( charac_signal_bus[79:72]),
1164 .dout ( charac_signal_bus_1[79:72]),
1165 .se(se),
1166 .siclk(siclk),
1167 .soclk(soclk),
1168 .pce_ov(pce_ov),
1169 .stop(stop)
1170 );
1171
1172
1173db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_charac_signal_bus_io2x_fnl_0a (
1174 .scan_in(ff_charac_signal_bus_io2x_fnl_0a_scanin),
1175 .scan_out(ff_charac_signal_bus_io2x_fnl_0a_scanout),
1176 .clk ( l2clk ),
1177 .en ( cmp_io2x_sync_en_2),
1178 .din ( charac_signal_bus_0[71:0]),
1179 .dout ( charac_signal_bus_io2x_fnl[71:0]),
1180 .se(se),
1181 .siclk(siclk),
1182 .soclk(soclk),
1183 .pce_ov(pce_ov),
1184 .stop(stop)
1185 );
1186
1187
1188db1_dbgprt_dp_msff_macro__stack_8r__width_8 ff_charac_signal_bus_io2x_fnl_1 (
1189 .scan_in(ff_charac_signal_bus_io2x_fnl_1_scanin),
1190 .scan_out(ff_charac_signal_bus_io2x_fnl_1_scanout),
1191 .clk ( l2clk ),
1192 .en ( cmp_io2x_sync_en_2),
1193 .din ( charac_signal_bus_0[79:72]),
1194 .dout ( charac_signal_bus_io2x_fnl[79:72]),
1195 .se(se),
1196 .siclk(siclk),
1197 .soclk(soclk),
1198 .pce_ov(pce_ov),
1199 .stop(stop)
1200 );
1201
1202db1_dbgprt_dp_msff_macro__stack_72c__width_72 ff_charac_signal_bus_io2x_fnl_2 (
1203 .scan_in(ff_charac_signal_bus_io2x_fnl_2_scanin),
1204 .scan_out(ff_charac_signal_bus_io2x_fnl_2_scanout),
1205 .clk ( l2clk ),
1206 .en ( cmp_io2x_sync_en_2),
1207 .din ( charac_signal_bus_1[71:0]),
1208 .dout ( charac_signal_bus_io2x_fnl[151:80]),
1209 .se(se),
1210 .siclk(siclk),
1211 .soclk(soclk),
1212 .pce_ov(pce_ov),
1213 .stop(stop)
1214 );
1215
1216db1_dbgprt_dp_msff_macro__stack_8r__width_8 ff_charac_signal_bus_io2x_fnl_3 (
1217 .scan_in(ff_charac_signal_bus_io2x_fnl_3_scanin),
1218 .scan_out(ff_charac_signal_bus_io2x_fnl_3_scanout),
1219 .clk ( l2clk ),
1220 .en ( cmp_io2x_sync_en_2),
1221 .din ( charac_signal_bus_1[79:72]),
1222 .dout ( charac_signal_bus_io2x_fnl[159:152]),
1223 .se(se),
1224 .siclk(siclk),
1225 .soclk(soclk),
1226 .pce_ov(pce_ov),
1227 .stop(stop)
1228 );
1229
1230assign charac_data = {6'b0,charac_signal_bus_io2x_fnl[159:0]};
1231
1232
1233assign core_soc_align_data = {16'b0,charac_signal_bus_io2x_fnl[159:128],
1234 charac_signal_bus_io2x_fnl[79:48],
1235 3'b0,rep_data[82:0]};
1236 // DMU to sii,ncu interface data and core data on every
1237 // cmp cycle
1238
1239// 2 cycle ( 2 cmp cycles ) multicycle path from soc_obs_data,charac_data,rep_data,
1240// core_soc_align_data,train_data to dbg1_mio_dbg_dq[165:0]
1241
1242
1243db1_dbgprt_dp_mux_macro__mux_aonpe__ports_4__stack_72c__width_72 mux_2
1244 (
1245 .dout (dbg_mux0_data[71:0]),
1246 .din0 (soc_obs_data[71:0]),
1247 .din1 (charac_data[71:0]),
1248 .din2 (rep_data[71:0]),
1249 .din3 (core_soc_align_data[71:0]),
1250 .sel0 (sel_soc_obs_mode),
1251 .sel1 (sel_charac_mode),
1252 .sel2 (sel_rep_mode),
1253 .sel3 (sel_core_soc_debug_mode)
1254 ) ;
1255
1256db1_dbgprt_dp_mux_macro__mux_aonpe__ports_4__stack_72c__width_72 mux_3
1257 (
1258 .dout (dbg_mux0_data[143:72]),
1259 .din0 (soc_obs_data[143:72]),
1260 .din1 (charac_data[143:72]),
1261 .din2 (rep_data[143:72]),
1262 .din3 (core_soc_align_data[143:72]),
1263 .sel0 (sel_soc_obs_mode),
1264 .sel1 (sel_charac_mode),
1265 .sel2 (sel_rep_mode),
1266 .sel3 (sel_core_soc_debug_mode)
1267 ) ;
1268
1269db1_dbgprt_dp_mux_macro__mux_aonpe__ports_4__stack_22c__width_22 mux_4
1270 (
1271 .dout (dbg_mux0_data[165:144]),
1272 .din0 (soc_obs_data[165:144]),
1273 .din1 (charac_data[165:144]),
1274 .din2 (rep_data[165:144]),
1275 .din3 (core_soc_align_data[165:144]),
1276 .sel0 (sel_soc_obs_mode),
1277 .sel1 (sel_charac_mode),
1278 .sel2 (sel_rep_mode),
1279 .sel3 (sel_core_soc_debug_mode)
1280 ) ;
1281
1282db1_dbgprt_dp_mux_macro__mux_aonpe__ports_2__stack_72c__width_72 mux_5
1283 (
1284 .dout (dbg_mux1_data[71:0]),
1285 .din0 (dbg_mux0_data[71:0]),
1286 .din1 (train_data[71:0]),
1287 .sel0 (sel_train_mode_n),
1288 .sel1 (sel_train_mode)
1289 ) ;
1290
1291db1_dbgprt_dp_mux_macro__mux_aonpe__ports_2__stack_72c__width_72 mux_6
1292 (
1293 .dout (dbg_mux1_data[143:72]),
1294 .din0 (dbg_mux0_data[143:72]),
1295 .din1 (train_data[143:72]),
1296 .sel0 (sel_train_mode_n),
1297 .sel1 (sel_train_mode)
1298 ) ;
1299
1300db1_dbgprt_dp_mux_macro__mux_aonpe__ports_2__stack_22c__width_22 mux_7
1301 (
1302 .dout (dbg_mux1_data[165:144]),
1303 .din0 (dbg_mux0_data[165:144]),
1304 .din1 (train_data[165:144]),
1305 .sel0 (sel_train_mode_n),
1306 .sel1 (sel_train_mode)
1307 ) ;
1308
1309
1310db1_dbgprt_dp_msff_macro__dmsff_32x__stack_72c__width_72 ff_dbg1_mio_dbg_dq_0 (
1311 .scan_in(ff_dbg1_mio_dbg_dq_0_scanin),
1312 .scan_out(ff_dbg1_mio_dbg_dq_0_scanout),
1313 .clk ( l2clk ),
1314 .en ( cmp_io2x_sync_en_22),
1315 .din ( dbg_mux1_data[71:0]),
1316 .dout ( dbg1_mio_dbg_dq_int[71:0]),
1317 .se(se),
1318 .siclk(siclk),
1319 .soclk(soclk),
1320 .pce_ov(pce_ov),
1321 .stop(stop)
1322 );
1323
1324db1_dbgprt_dp_msff_macro__dmsff_32x__stack_72c__width_72 ff_dbg1_mio_dbg_dq_1 (
1325 .scan_in(ff_dbg1_mio_dbg_dq_1_scanin),
1326 .scan_out(ff_dbg1_mio_dbg_dq_1_scanout),
1327 .clk ( l2clk ),
1328 .en ( cmp_io2x_sync_en_22),
1329 .din ( dbg_mux1_data[143:72]),
1330 .dout ( dbg1_mio_dbg_dq_int[143:72]),
1331 .se(se),
1332 .siclk(siclk),
1333 .soclk(soclk),
1334 .pce_ov(pce_ov),
1335 .stop(stop)
1336 );
1337db1_dbgprt_dp_msff_macro__dmsff_32x__stack_22c__width_22 ff_dbg1_mio_dbg_dq_2 (
1338 .scan_in(ff_dbg1_mio_dbg_dq_2_scanin),
1339 .scan_out(ff_dbg1_mio_dbg_dq_2_scanout),
1340 .clk ( l2clk ),
1341 .en ( cmp_io2x_sync_en_22),
1342 .din ( dbg_mux1_data[165:144]),
1343 .dout ( dbg1_mio_dbg_dq_int[165:144]),
1344 .se(se),
1345 .siclk(siclk),
1346 .soclk(soclk),
1347 .pce_ov(pce_ov),
1348 .stop(stop)
1349 );
1350
1351db1_dbgprt_dp_inv_macro__stack_1l__width_1 ccu_dbg1_serdes_dtm_inv
1352 (
1353 .dout (ccu_dbg1_serdes_dtm_n),
1354 .din (ccu_dbg1_serdes_dtm)
1355 );
1356
1357
1358db1_dbgprt_dp_mux_macro__dmux_8x__mux_aonpe__ports_2__stack_72c__width_72 mux_dtm_1
1359 (
1360 .dout (dbg1_mio_dbg_dq[71:0]),
1361 .din0 (mcu_dtm_signals[71:0]),
1362 .din1 (dbg1_mio_dbg_dq_int[71:0]),
1363 .sel0 (ccu_dbg1_serdes_dtm),
1364 .sel1 (ccu_dbg1_serdes_dtm_n)
1365 ) ;
1366
1367db1_dbgprt_dp_mux_macro__dmux_8x__mux_aonpe__ports_2__stack_16c__width_16 mux_dtm_2
1368 (
1369 .dout (dbg1_mio_dbg_dq[87:72]),
1370 .din0 (mcu_dtm_signals[87:72]),
1371 .din1 (dbg1_mio_dbg_dq_int[87:72]),
1372 .sel0 (ccu_dbg1_serdes_dtm),
1373 .sel1 (ccu_dbg1_serdes_dtm_n)
1374 ) ;
1375
1376assign dbg1_mio_dbg_dq[165:88] = dbg1_mio_dbg_dq_int[165:88];
1377
1378// fixscan start:
1379assign ff_train_seq_gen_scanin = scan_in ;
1380assign ff_train_data_0_scanin = ff_train_seq_gen_scanout ;
1381assign ff_train_data_1_scanin = ff_train_data_0_scanout ;
1382assign ff_train_data_2_scanin = ff_train_data_1_scanout ;
1383assign ff_cmp_io_sync_en_scanin = ff_train_data_2_scanout ;
1384assign ff_charac_signal_bus_scanin = ff_cmp_io_sync_en_scanout;
1385assign ff_obs_signal_bus_scanin = ff_charac_signal_bus_scanout;
1386assign ff_l2tx_pa_match_synced_scanin = ff_obs_signal_bus_scanout;
1387assign ff_mcu_dbg_signals_slice0_scanin = ff_l2tx_pa_match_synced_scanout;
1388assign ff_mcu_dbg_signals_slice1_scanin = ff_mcu_dbg_signals_slice0_scanout;
1389assign ff_mcu_dbg_bus_scanin = ff_mcu_dbg_signals_slice1_scanout;
1390assign ff_rep_bus_slice0_scanin = ff_mcu_dbg_bus_scanout ;
1391assign ff_rep_bus_slice1_scanin = ff_rep_bus_slice0_scanout;
1392assign ff_rep_bus_slice2_scanin = ff_rep_bus_slice1_scanout;
1393assign ff_rep_bus_slice3_scanin = ff_rep_bus_slice2_scanout;
1394assign ff_obs_signal_bus_io2x_0_scanin = ff_rep_bus_slice3_scanout;
1395assign ff_obs_signal_bus_io2x_1_scanin = ff_obs_signal_bus_io2x_0_scanout;
1396assign ff_obs_signal_bus_io2x_fnl_0_scanin = ff_obs_signal_bus_io2x_1_scanout;
1397assign ff_obs_signal_bus_io2x_fnl_1_scanin = ff_obs_signal_bus_io2x_fnl_0_scanout;
1398assign ff_charac_signal_bus_io2x_0a_scanin = ff_obs_signal_bus_io2x_fnl_1_scanout;
1399assign ff_charac_signal_bus_io2x_0b_scanin = ff_charac_signal_bus_io2x_0a_scanout;
1400assign ff_charac_signal_bus_io2x_1a_scanin = ff_charac_signal_bus_io2x_0b_scanout;
1401assign ff_charac_signal_bus_io2x_1b_scanin = ff_charac_signal_bus_io2x_1a_scanout;
1402assign ff_charac_signal_bus_io2x_fnl_0a_scanin = ff_charac_signal_bus_io2x_1b_scanout;
1403assign ff_charac_signal_bus_io2x_fnl_1_scanin = ff_charac_signal_bus_io2x_fnl_0a_scanout;
1404assign ff_charac_signal_bus_io2x_fnl_2_scanin = ff_charac_signal_bus_io2x_fnl_1_scanout;
1405assign ff_charac_signal_bus_io2x_fnl_3_scanin = ff_charac_signal_bus_io2x_fnl_2_scanout;
1406assign ff_dbg1_mio_dbg_dq_0_scanin = ff_charac_signal_bus_io2x_fnl_3_scanout;
1407assign ff_dbg1_mio_dbg_dq_1_scanin = ff_dbg1_mio_dbg_dq_0_scanout;
1408assign ff_dbg1_mio_dbg_dq_2_scanin = ff_dbg1_mio_dbg_dq_1_scanout;
1409assign scan_out = ff_dbg1_mio_dbg_dq_2_scanout;
1410// fixscan end:
1411endmodule
1412
1413
1414//
1415// invert macro
1416//
1417//
1418
1419
1420
1421
1422
1423module db1_dbgprt_dp_inv_macro__stack_1l__width_1 (
1424 din,
1425 dout);
1426 input [0:0] din;
1427 output [0:0] dout;
1428
1429
1430
1431
1432
1433
1434inv #(1) d0_0 (
1435.in(din[0:0]),
1436.out(dout[0:0])
1437);
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447endmodule
1448
1449
1450
1451
1452
1453//
1454// xor macro for ports = 2,3
1455//
1456//
1457
1458
1459
1460
1461
1462module db1_dbgprt_dp_xor_macro__stack_1l__width_1 (
1463 din0,
1464 din1,
1465 dout);
1466 input [0:0] din0;
1467 input [0:0] din1;
1468 output [0:0] dout;
1469
1470
1471
1472
1473
1474xor2 #(1) d0_0 (
1475.in0(din0[0:0]),
1476.in1(din1[0:0]),
1477.out(dout[0:0])
1478);
1479
1480
1481
1482
1483
1484
1485
1486
1487endmodule
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497// any PARAMS parms go into naming of macro
1498
1499module db1_dbgprt_dp_msff_macro__stack_2c__width_2 (
1500 din,
1501 clk,
1502 en,
1503 se,
1504 scan_in,
1505 siclk,
1506 soclk,
1507 pce_ov,
1508 stop,
1509 dout,
1510 scan_out);
1511wire l1clk;
1512wire siclk_out;
1513wire soclk_out;
1514wire [0:0] so;
1515
1516 input [1:0] din;
1517
1518
1519 input clk;
1520 input en;
1521 input se;
1522 input scan_in;
1523 input siclk;
1524 input soclk;
1525 input pce_ov;
1526 input stop;
1527
1528
1529
1530 output [1:0] dout;
1531
1532
1533 output scan_out;
1534
1535
1536
1537
1538cl_dp1_l1hdr_8x c0_0 (
1539.l2clk(clk),
1540.pce(en),
1541.aclk(siclk),
1542.bclk(soclk),
1543.l1clk(l1clk),
1544 .se(se),
1545 .pce_ov(pce_ov),
1546 .stop(stop),
1547 .siclk_out(siclk_out),
1548 .soclk_out(soclk_out)
1549);
1550dff #(2) d0_0 (
1551.l1clk(l1clk),
1552.siclk(siclk_out),
1553.soclk(soclk_out),
1554.d(din[1:0]),
1555.si({scan_in,so[0:0]}),
1556.so({so[0:0],scan_out}),
1557.q(dout[1:0])
1558);
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579endmodule
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589//
1590// or macro for ports = 2,3
1591//
1592//
1593
1594
1595
1596
1597
1598module db1_dbgprt_dp_or_macro__stack_1l__width_1 (
1599 din0,
1600 din1,
1601 dout);
1602 input [0:0] din0;
1603 input [0:0] din1;
1604 output [0:0] dout;
1605
1606
1607
1608
1609
1610
1611or2 #(1) d0_0 (
1612.in0(din0[0:0]),
1613.in1(din1[0:0]),
1614.out(dout[0:0])
1615);
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625endmodule
1626
1627
1628
1629
1630
1631//
1632// buff macro
1633//
1634//
1635
1636
1637
1638
1639
1640module db1_dbgprt_dp_buff_macro__dbuff_8x__stack_20c__width_19 (
1641 din,
1642 dout);
1643 input [18:0] din;
1644 output [18:0] dout;
1645
1646
1647
1648
1649
1650
1651buff #(19) d0_0 (
1652.in(din[18:0]),
1653.out(dout[18:0])
1654);
1655
1656
1657
1658
1659
1660
1661
1662
1663endmodule
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673// any PARAMS parms go into naming of macro
1674
1675module db1_dbgprt_dp_msff_macro__stack_72c__width_72 (
1676 din,
1677 clk,
1678 en,
1679 se,
1680 scan_in,
1681 siclk,
1682 soclk,
1683 pce_ov,
1684 stop,
1685 dout,
1686 scan_out);
1687wire l1clk;
1688wire siclk_out;
1689wire soclk_out;
1690wire [70:0] so;
1691
1692 input [71:0] din;
1693
1694
1695 input clk;
1696 input en;
1697 input se;
1698 input scan_in;
1699 input siclk;
1700 input soclk;
1701 input pce_ov;
1702 input stop;
1703
1704
1705
1706 output [71:0] dout;
1707
1708
1709 output scan_out;
1710
1711
1712
1713
1714cl_dp1_l1hdr_8x c0_0 (
1715.l2clk(clk),
1716.pce(en),
1717.aclk(siclk),
1718.bclk(soclk),
1719.l1clk(l1clk),
1720 .se(se),
1721 .pce_ov(pce_ov),
1722 .stop(stop),
1723 .siclk_out(siclk_out),
1724 .soclk_out(soclk_out)
1725);
1726dff #(72) d0_0 (
1727.l1clk(l1clk),
1728.siclk(siclk_out),
1729.soclk(soclk_out),
1730.d(din[71:0]),
1731.si({scan_in,so[70:0]}),
1732.so({so[70:0],scan_out}),
1733.q(dout[71:0])
1734);
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755endmodule
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769// any PARAMS parms go into naming of macro
1770
1771module db1_dbgprt_dp_msff_macro__stack_22c__width_22 (
1772 din,
1773 clk,
1774 en,
1775 se,
1776 scan_in,
1777 siclk,
1778 soclk,
1779 pce_ov,
1780 stop,
1781 dout,
1782 scan_out);
1783wire l1clk;
1784wire siclk_out;
1785wire soclk_out;
1786wire [20:0] so;
1787
1788 input [21:0] din;
1789
1790
1791 input clk;
1792 input en;
1793 input se;
1794 input scan_in;
1795 input siclk;
1796 input soclk;
1797 input pce_ov;
1798 input stop;
1799
1800
1801
1802 output [21:0] dout;
1803
1804
1805 output scan_out;
1806
1807
1808
1809
1810cl_dp1_l1hdr_8x c0_0 (
1811.l2clk(clk),
1812.pce(en),
1813.aclk(siclk),
1814.bclk(soclk),
1815.l1clk(l1clk),
1816 .se(se),
1817 .pce_ov(pce_ov),
1818 .stop(stop),
1819 .siclk_out(siclk_out),
1820 .soclk_out(soclk_out)
1821);
1822dff #(22) d0_0 (
1823.l1clk(l1clk),
1824.siclk(siclk_out),
1825.soclk(soclk_out),
1826.d(din[21:0]),
1827.si({scan_in,so[20:0]}),
1828.so({so[20:0],scan_out}),
1829.q(dout[21:0])
1830);
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851endmodule
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865// any PARAMS parms go into naming of macro
1866
1867module db1_dbgprt_dp_msff_macro__stack_38c__width_37 (
1868 din,
1869 clk,
1870 en,
1871 se,
1872 scan_in,
1873 siclk,
1874 soclk,
1875 pce_ov,
1876 stop,
1877 dout,
1878 scan_out);
1879wire l1clk;
1880wire siclk_out;
1881wire soclk_out;
1882wire [35:0] so;
1883
1884 input [36:0] din;
1885
1886
1887 input clk;
1888 input en;
1889 input se;
1890 input scan_in;
1891 input siclk;
1892 input soclk;
1893 input pce_ov;
1894 input stop;
1895
1896
1897
1898 output [36:0] dout;
1899
1900
1901 output scan_out;
1902
1903
1904
1905
1906cl_dp1_l1hdr_8x c0_0 (
1907.l2clk(clk),
1908.pce(en),
1909.aclk(siclk),
1910.bclk(soclk),
1911.l1clk(l1clk),
1912 .se(se),
1913 .pce_ov(pce_ov),
1914 .stop(stop),
1915 .siclk_out(siclk_out),
1916 .soclk_out(soclk_out)
1917);
1918dff #(37) d0_0 (
1919.l1clk(l1clk),
1920.siclk(siclk_out),
1921.soclk(soclk_out),
1922.d(din[36:0]),
1923.si({scan_in,so[35:0]}),
1924.so({so[35:0],scan_out}),
1925.q(dout[36:0])
1926);
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947endmodule
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961// any PARAMS parms go into naming of macro
1962
1963module db1_dbgprt_dp_msff_macro__stack_64c__width_64 (
1964 din,
1965 clk,
1966 en,
1967 se,
1968 scan_in,
1969 siclk,
1970 soclk,
1971 pce_ov,
1972 stop,
1973 dout,
1974 scan_out);
1975wire l1clk;
1976wire siclk_out;
1977wire soclk_out;
1978wire [62:0] so;
1979
1980 input [63:0] din;
1981
1982
1983 input clk;
1984 input en;
1985 input se;
1986 input scan_in;
1987 input siclk;
1988 input soclk;
1989 input pce_ov;
1990 input stop;
1991
1992
1993
1994 output [63:0] dout;
1995
1996
1997 output scan_out;
1998
1999
2000
2001
2002cl_dp1_l1hdr_8x c0_0 (
2003.l2clk(clk),
2004.pce(en),
2005.aclk(siclk),
2006.bclk(soclk),
2007.l1clk(l1clk),
2008 .se(se),
2009 .pce_ov(pce_ov),
2010 .stop(stop),
2011 .siclk_out(siclk_out),
2012 .soclk_out(soclk_out)
2013);
2014dff #(64) d0_0 (
2015.l1clk(l1clk),
2016.siclk(siclk_out),
2017.soclk(soclk_out),
2018.d(din[63:0]),
2019.si({scan_in,so[62:0]}),
2020.so({so[62:0],scan_out}),
2021.q(dout[63:0])
2022);
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043endmodule
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053//
2054// and macro for ports = 2,3,4
2055//
2056//
2057
2058
2059
2060
2061
2062module db1_dbgprt_dp_and_macro__stack_1l__width_1 (
2063 din0,
2064 din1,
2065 dout);
2066 input [0:0] din0;
2067 input [0:0] din1;
2068 output [0:0] dout;
2069
2070
2071
2072
2073
2074
2075and2 #(1) d0_0 (
2076.in0(din0[0:0]),
2077.in1(din1[0:0]),
2078.out(dout[0:0])
2079);
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089endmodule
2090
2091
2092
2093
2094
2095//
2096// or macro for ports = 2,3
2097//
2098//
2099
2100
2101
2102
2103
2104module db1_dbgprt_dp_or_macro__ports_3__stack_1l__width_1 (
2105 din0,
2106 din1,
2107 din2,
2108 dout);
2109 input [0:0] din0;
2110 input [0:0] din1;
2111 input [0:0] din2;
2112 output [0:0] dout;
2113
2114
2115
2116
2117
2118
2119or3 #(1) d0_0 (
2120.in0(din0[0:0]),
2121.in1(din1[0:0]),
2122.in2(din2[0:0]),
2123.out(dout[0:0])
2124);
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134endmodule
2135
2136
2137
2138
2139
2140//
2141// or macro for ports = 2,3
2142//
2143//
2144
2145
2146
2147
2148
2149module db1_dbgprt_dp_or_macro__ports_2__stack_1l__width_1 (
2150 din0,
2151 din1,
2152 dout);
2153 input [0:0] din0;
2154 input [0:0] din1;
2155 output [0:0] dout;
2156
2157
2158
2159
2160
2161
2162or2 #(1) d0_0 (
2163.in0(din0[0:0]),
2164.in1(din1[0:0]),
2165.out(dout[0:0])
2166);
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176endmodule
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186// any PARAMS parms go into naming of macro
2187
2188module db1_dbgprt_dp_msff_macro__stack_9c__width_9 (
2189 din,
2190 clk,
2191 en,
2192 se,
2193 scan_in,
2194 siclk,
2195 soclk,
2196 pce_ov,
2197 stop,
2198 dout,
2199 scan_out);
2200wire l1clk;
2201wire siclk_out;
2202wire soclk_out;
2203wire [7:0] so;
2204
2205 input [8:0] din;
2206
2207
2208 input clk;
2209 input en;
2210 input se;
2211 input scan_in;
2212 input siclk;
2213 input soclk;
2214 input pce_ov;
2215 input stop;
2216
2217
2218
2219 output [8:0] dout;
2220
2221
2222 output scan_out;
2223
2224
2225
2226
2227cl_dp1_l1hdr_8x c0_0 (
2228.l2clk(clk),
2229.pce(en),
2230.aclk(siclk),
2231.bclk(soclk),
2232.l1clk(l1clk),
2233 .se(se),
2234 .pce_ov(pce_ov),
2235 .stop(stop),
2236 .siclk_out(siclk_out),
2237 .soclk_out(soclk_out)
2238);
2239dff #(9) d0_0 (
2240.l1clk(l1clk),
2241.siclk(siclk_out),
2242.soclk(soclk_out),
2243.d(din[8:0]),
2244.si({scan_in,so[7:0]}),
2245.so({so[7:0],scan_out}),
2246.q(dout[8:0])
2247);
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268endmodule
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282// any PARAMS parms go into naming of macro
2283
2284module db1_dbgprt_dp_msff_macro__stack_12c__width_12 (
2285 din,
2286 clk,
2287 en,
2288 se,
2289 scan_in,
2290 siclk,
2291 soclk,
2292 pce_ov,
2293 stop,
2294 dout,
2295 scan_out);
2296wire l1clk;
2297wire siclk_out;
2298wire soclk_out;
2299wire [10:0] so;
2300
2301 input [11:0] din;
2302
2303
2304 input clk;
2305 input en;
2306 input se;
2307 input scan_in;
2308 input siclk;
2309 input soclk;
2310 input pce_ov;
2311 input stop;
2312
2313
2314
2315 output [11:0] dout;
2316
2317
2318 output scan_out;
2319
2320
2321
2322
2323cl_dp1_l1hdr_8x c0_0 (
2324.l2clk(clk),
2325.pce(en),
2326.aclk(siclk),
2327.bclk(soclk),
2328.l1clk(l1clk),
2329 .se(se),
2330 .pce_ov(pce_ov),
2331 .stop(stop),
2332 .siclk_out(siclk_out),
2333 .soclk_out(soclk_out)
2334);
2335dff #(12) d0_0 (
2336.l1clk(l1clk),
2337.siclk(siclk_out),
2338.soclk(soclk_out),
2339.d(din[11:0]),
2340.si({scan_in,so[10:0]}),
2341.so({so[10:0],scan_out}),
2342.q(dout[11:0])
2343);
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364endmodule
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2375// also for pass-gate with decoder
2376
2377
2378
2379
2380
2381// any PARAMS parms go into naming of macro
2382
2383module db1_dbgprt_dp_mux_macro__mux_aonpe__stack_42c__width_42 (
2384 din0,
2385 sel0,
2386 din1,
2387 sel1,
2388 dout);
2389wire buffout0;
2390wire buffout1;
2391
2392 input [41:0] din0;
2393 input sel0;
2394 input [41:0] din1;
2395 input sel1;
2396 output [41:0] dout;
2397
2398
2399
2400
2401
2402cl_dp1_muxbuff2_8x c0_0 (
2403 .in0(sel0),
2404 .in1(sel1),
2405 .out0(buffout0),
2406 .out1(buffout1)
2407);
2408mux2s #(42) d0_0 (
2409 .sel0(buffout0),
2410 .sel1(buffout1),
2411 .in0(din0[41:0]),
2412 .in1(din1[41:0]),
2413.dout(dout[41:0])
2414);
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428endmodule
2429
2430
2431
2432
2433
2434
2435// any PARAMS parms go into naming of macro
2436
2437module db1_dbgprt_dp_msff_macro__stack_42c__width_42 (
2438 din,
2439 clk,
2440 en,
2441 se,
2442 scan_in,
2443 siclk,
2444 soclk,
2445 pce_ov,
2446 stop,
2447 dout,
2448 scan_out);
2449wire l1clk;
2450wire siclk_out;
2451wire soclk_out;
2452wire [40:0] so;
2453
2454 input [41:0] din;
2455
2456
2457 input clk;
2458 input en;
2459 input se;
2460 input scan_in;
2461 input siclk;
2462 input soclk;
2463 input pce_ov;
2464 input stop;
2465
2466
2467
2468 output [41:0] dout;
2469
2470
2471 output scan_out;
2472
2473
2474
2475
2476cl_dp1_l1hdr_8x c0_0 (
2477.l2clk(clk),
2478.pce(en),
2479.aclk(siclk),
2480.bclk(soclk),
2481.l1clk(l1clk),
2482 .se(se),
2483 .pce_ov(pce_ov),
2484 .stop(stop),
2485 .siclk_out(siclk_out),
2486 .soclk_out(soclk_out)
2487);
2488dff #(42) d0_0 (
2489.l1clk(l1clk),
2490.siclk(siclk_out),
2491.soclk(soclk_out),
2492.d(din[41:0]),
2493.si({scan_in,so[40:0]}),
2494.so({so[40:0],scan_out}),
2495.q(dout[41:0])
2496);
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517endmodule
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531// any PARAMS parms go into naming of macro
2532
2533module db1_dbgprt_dp_msff_macro__stack_12r__width_12 (
2534 din,
2535 clk,
2536 en,
2537 se,
2538 scan_in,
2539 siclk,
2540 soclk,
2541 pce_ov,
2542 stop,
2543 dout,
2544 scan_out);
2545wire l1clk;
2546wire siclk_out;
2547wire soclk_out;
2548wire [10:0] so;
2549
2550 input [11:0] din;
2551
2552
2553 input clk;
2554 input en;
2555 input se;
2556 input scan_in;
2557 input siclk;
2558 input soclk;
2559 input pce_ov;
2560 input stop;
2561
2562
2563
2564 output [11:0] dout;
2565
2566
2567 output scan_out;
2568
2569
2570
2571
2572cl_dp1_l1hdr_8x c0_0 (
2573.l2clk(clk),
2574.pce(en),
2575.aclk(siclk),
2576.bclk(soclk),
2577.l1clk(l1clk),
2578 .se(se),
2579 .pce_ov(pce_ov),
2580 .stop(stop),
2581 .siclk_out(siclk_out),
2582 .soclk_out(soclk_out)
2583);
2584dff #(12) d0_0 (
2585.l1clk(l1clk),
2586.siclk(siclk_out),
2587.soclk(soclk_out),
2588.d(din[11:0]),
2589.si({scan_in,so[10:0]}),
2590.so({so[10:0],scan_out}),
2591.q(dout[11:0])
2592);
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613endmodule
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627// any PARAMS parms go into naming of macro
2628
2629module db1_dbgprt_dp_msff_macro__stack_10r__width_10 (
2630 din,
2631 clk,
2632 en,
2633 se,
2634 scan_in,
2635 siclk,
2636 soclk,
2637 pce_ov,
2638 stop,
2639 dout,
2640 scan_out);
2641wire l1clk;
2642wire siclk_out;
2643wire soclk_out;
2644wire [8:0] so;
2645
2646 input [9:0] din;
2647
2648
2649 input clk;
2650 input en;
2651 input se;
2652 input scan_in;
2653 input siclk;
2654 input soclk;
2655 input pce_ov;
2656 input stop;
2657
2658
2659
2660 output [9:0] dout;
2661
2662
2663 output scan_out;
2664
2665
2666
2667
2668cl_dp1_l1hdr_8x c0_0 (
2669.l2clk(clk),
2670.pce(en),
2671.aclk(siclk),
2672.bclk(soclk),
2673.l1clk(l1clk),
2674 .se(se),
2675 .pce_ov(pce_ov),
2676 .stop(stop),
2677 .siclk_out(siclk_out),
2678 .soclk_out(soclk_out)
2679);
2680dff #(10) d0_0 (
2681.l1clk(l1clk),
2682.siclk(siclk_out),
2683.soclk(soclk_out),
2684.d(din[9:0]),
2685.si({scan_in,so[8:0]}),
2686.so({so[8:0],scan_out}),
2687.q(dout[9:0])
2688);
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709endmodule
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723// any PARAMS parms go into naming of macro
2724
2725module db1_dbgprt_dp_msff_macro__stack_56c__width_56 (
2726 din,
2727 clk,
2728 en,
2729 se,
2730 scan_in,
2731 siclk,
2732 soclk,
2733 pce_ov,
2734 stop,
2735 dout,
2736 scan_out);
2737wire l1clk;
2738wire siclk_out;
2739wire soclk_out;
2740wire [54:0] so;
2741
2742 input [55:0] din;
2743
2744
2745 input clk;
2746 input en;
2747 input se;
2748 input scan_in;
2749 input siclk;
2750 input soclk;
2751 input pce_ov;
2752 input stop;
2753
2754
2755
2756 output [55:0] dout;
2757
2758
2759 output scan_out;
2760
2761
2762
2763
2764cl_dp1_l1hdr_8x c0_0 (
2765.l2clk(clk),
2766.pce(en),
2767.aclk(siclk),
2768.bclk(soclk),
2769.l1clk(l1clk),
2770 .se(se),
2771 .pce_ov(pce_ov),
2772 .stop(stop),
2773 .siclk_out(siclk_out),
2774 .soclk_out(soclk_out)
2775);
2776dff #(56) d0_0 (
2777.l1clk(l1clk),
2778.siclk(siclk_out),
2779.soclk(soclk_out),
2780.d(din[55:0]),
2781.si({scan_in,so[54:0]}),
2782.so({so[54:0],scan_out}),
2783.q(dout[55:0])
2784);
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805endmodule
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819// any PARAMS parms go into naming of macro
2820
2821module db1_dbgprt_dp_msff_macro__stack_8r__width_8 (
2822 din,
2823 clk,
2824 en,
2825 se,
2826 scan_in,
2827 siclk,
2828 soclk,
2829 pce_ov,
2830 stop,
2831 dout,
2832 scan_out);
2833wire l1clk;
2834wire siclk_out;
2835wire soclk_out;
2836wire [6:0] so;
2837
2838 input [7:0] din;
2839
2840
2841 input clk;
2842 input en;
2843 input se;
2844 input scan_in;
2845 input siclk;
2846 input soclk;
2847 input pce_ov;
2848 input stop;
2849
2850
2851
2852 output [7:0] dout;
2853
2854
2855 output scan_out;
2856
2857
2858
2859
2860cl_dp1_l1hdr_8x c0_0 (
2861.l2clk(clk),
2862.pce(en),
2863.aclk(siclk),
2864.bclk(soclk),
2865.l1clk(l1clk),
2866 .se(se),
2867 .pce_ov(pce_ov),
2868 .stop(stop),
2869 .siclk_out(siclk_out),
2870 .soclk_out(soclk_out)
2871);
2872dff #(8) d0_0 (
2873.l1clk(l1clk),
2874.siclk(siclk_out),
2875.soclk(soclk_out),
2876.d(din[7:0]),
2877.si({scan_in,so[6:0]}),
2878.so({so[6:0],scan_out}),
2879.q(dout[7:0])
2880);
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901endmodule
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2912// also for pass-gate with decoder
2913
2914
2915
2916
2917
2918// any PARAMS parms go into naming of macro
2919
2920module db1_dbgprt_dp_mux_macro__mux_aonpe__ports_4__stack_72c__width_72 (
2921 din0,
2922 sel0,
2923 din1,
2924 sel1,
2925 din2,
2926 sel2,
2927 din3,
2928 sel3,
2929 dout);
2930wire buffout0;
2931wire buffout1;
2932wire buffout2;
2933wire buffout3;
2934
2935 input [71:0] din0;
2936 input sel0;
2937 input [71:0] din1;
2938 input sel1;
2939 input [71:0] din2;
2940 input sel2;
2941 input [71:0] din3;
2942 input sel3;
2943 output [71:0] dout;
2944
2945
2946
2947
2948
2949cl_dp1_muxbuff4_8x c0_0 (
2950 .in0(sel0),
2951 .in1(sel1),
2952 .in2(sel2),
2953 .in3(sel3),
2954 .out0(buffout0),
2955 .out1(buffout1),
2956 .out2(buffout2),
2957 .out3(buffout3)
2958);
2959mux4s #(72) d0_0 (
2960 .sel0(buffout0),
2961 .sel1(buffout1),
2962 .sel2(buffout2),
2963 .sel3(buffout3),
2964 .in0(din0[71:0]),
2965 .in1(din1[71:0]),
2966 .in2(din2[71:0]),
2967 .in3(din3[71:0]),
2968.dout(dout[71:0])
2969);
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983endmodule
2984
2985
2986// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2987// also for pass-gate with decoder
2988
2989
2990
2991
2992
2993// any PARAMS parms go into naming of macro
2994
2995module db1_dbgprt_dp_mux_macro__mux_aonpe__ports_4__stack_22c__width_22 (
2996 din0,
2997 sel0,
2998 din1,
2999 sel1,
3000 din2,
3001 sel2,
3002 din3,
3003 sel3,
3004 dout);
3005wire buffout0;
3006wire buffout1;
3007wire buffout2;
3008wire buffout3;
3009
3010 input [21:0] din0;
3011 input sel0;
3012 input [21:0] din1;
3013 input sel1;
3014 input [21:0] din2;
3015 input sel2;
3016 input [21:0] din3;
3017 input sel3;
3018 output [21:0] dout;
3019
3020
3021
3022
3023
3024cl_dp1_muxbuff4_8x c0_0 (
3025 .in0(sel0),
3026 .in1(sel1),
3027 .in2(sel2),
3028 .in3(sel3),
3029 .out0(buffout0),
3030 .out1(buffout1),
3031 .out2(buffout2),
3032 .out3(buffout3)
3033);
3034mux4s #(22) d0_0 (
3035 .sel0(buffout0),
3036 .sel1(buffout1),
3037 .sel2(buffout2),
3038 .sel3(buffout3),
3039 .in0(din0[21:0]),
3040 .in1(din1[21:0]),
3041 .in2(din2[21:0]),
3042 .in3(din3[21:0]),
3043.dout(dout[21:0])
3044);
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058endmodule
3059
3060
3061// general mux macro for pass-gate and and-or muxes with/wout priority encoders
3062// also for pass-gate with decoder
3063
3064
3065
3066
3067
3068// any PARAMS parms go into naming of macro
3069
3070module db1_dbgprt_dp_mux_macro__mux_aonpe__ports_2__stack_72c__width_72 (
3071 din0,
3072 sel0,
3073 din1,
3074 sel1,
3075 dout);
3076wire buffout0;
3077wire buffout1;
3078
3079 input [71:0] din0;
3080 input sel0;
3081 input [71:0] din1;
3082 input sel1;
3083 output [71:0] dout;
3084
3085
3086
3087
3088
3089cl_dp1_muxbuff2_8x c0_0 (
3090 .in0(sel0),
3091 .in1(sel1),
3092 .out0(buffout0),
3093 .out1(buffout1)
3094);
3095mux2s #(72) d0_0 (
3096 .sel0(buffout0),
3097 .sel1(buffout1),
3098 .in0(din0[71:0]),
3099 .in1(din1[71:0]),
3100.dout(dout[71:0])
3101);
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115endmodule
3116
3117
3118// general mux macro for pass-gate and and-or muxes with/wout priority encoders
3119// also for pass-gate with decoder
3120
3121
3122
3123
3124
3125// any PARAMS parms go into naming of macro
3126
3127module db1_dbgprt_dp_mux_macro__mux_aonpe__ports_2__stack_22c__width_22 (
3128 din0,
3129 sel0,
3130 din1,
3131 sel1,
3132 dout);
3133wire buffout0;
3134wire buffout1;
3135
3136 input [21:0] din0;
3137 input sel0;
3138 input [21:0] din1;
3139 input sel1;
3140 output [21:0] dout;
3141
3142
3143
3144
3145
3146cl_dp1_muxbuff2_8x c0_0 (
3147 .in0(sel0),
3148 .in1(sel1),
3149 .out0(buffout0),
3150 .out1(buffout1)
3151);
3152mux2s #(22) d0_0 (
3153 .sel0(buffout0),
3154 .sel1(buffout1),
3155 .in0(din0[21:0]),
3156 .in1(din1[21:0]),
3157.dout(dout[21:0])
3158);
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172endmodule
3173
3174
3175
3176
3177
3178
3179// any PARAMS parms go into naming of macro
3180
3181module db1_dbgprt_dp_msff_macro__dmsff_32x__stack_72c__width_72 (
3182 din,
3183 clk,
3184 en,
3185 se,
3186 scan_in,
3187 siclk,
3188 soclk,
3189 pce_ov,
3190 stop,
3191 dout,
3192 scan_out);
3193wire l1clk;
3194wire siclk_out;
3195wire soclk_out;
3196wire [70:0] so;
3197
3198 input [71:0] din;
3199
3200
3201 input clk;
3202 input en;
3203 input se;
3204 input scan_in;
3205 input siclk;
3206 input soclk;
3207 input pce_ov;
3208 input stop;
3209
3210
3211
3212 output [71:0] dout;
3213
3214
3215 output scan_out;
3216
3217
3218
3219
3220cl_dp1_l1hdr_8x c0_0 (
3221.l2clk(clk),
3222.pce(en),
3223.aclk(siclk),
3224.bclk(soclk),
3225.l1clk(l1clk),
3226 .se(se),
3227 .pce_ov(pce_ov),
3228 .stop(stop),
3229 .siclk_out(siclk_out),
3230 .soclk_out(soclk_out)
3231);
3232dff #(72) d0_0 (
3233.l1clk(l1clk),
3234.siclk(siclk_out),
3235.soclk(soclk_out),
3236.d(din[71:0]),
3237.si({scan_in,so[70:0]}),
3238.so({so[70:0],scan_out}),
3239.q(dout[71:0])
3240);
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261endmodule
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275// any PARAMS parms go into naming of macro
3276
3277module db1_dbgprt_dp_msff_macro__dmsff_32x__stack_22c__width_22 (
3278 din,
3279 clk,
3280 en,
3281 se,
3282 scan_in,
3283 siclk,
3284 soclk,
3285 pce_ov,
3286 stop,
3287 dout,
3288 scan_out);
3289wire l1clk;
3290wire siclk_out;
3291wire soclk_out;
3292wire [20:0] so;
3293
3294 input [21:0] din;
3295
3296
3297 input clk;
3298 input en;
3299 input se;
3300 input scan_in;
3301 input siclk;
3302 input soclk;
3303 input pce_ov;
3304 input stop;
3305
3306
3307
3308 output [21:0] dout;
3309
3310
3311 output scan_out;
3312
3313
3314
3315
3316cl_dp1_l1hdr_8x c0_0 (
3317.l2clk(clk),
3318.pce(en),
3319.aclk(siclk),
3320.bclk(soclk),
3321.l1clk(l1clk),
3322 .se(se),
3323 .pce_ov(pce_ov),
3324 .stop(stop),
3325 .siclk_out(siclk_out),
3326 .soclk_out(soclk_out)
3327);
3328dff #(22) d0_0 (
3329.l1clk(l1clk),
3330.siclk(siclk_out),
3331.soclk(soclk_out),
3332.d(din[21:0]),
3333.si({scan_in,so[20:0]}),
3334.so({so[20:0],scan_out}),
3335.q(dout[21:0])
3336);
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357endmodule
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367// general mux macro for pass-gate and and-or muxes with/wout priority encoders
3368// also for pass-gate with decoder
3369
3370
3371
3372
3373
3374// any PARAMS parms go into naming of macro
3375
3376module db1_dbgprt_dp_mux_macro__dmux_8x__mux_aonpe__ports_2__stack_72c__width_72 (
3377 din0,
3378 sel0,
3379 din1,
3380 sel1,
3381 dout);
3382wire buffout0;
3383wire buffout1;
3384
3385 input [71:0] din0;
3386 input sel0;
3387 input [71:0] din1;
3388 input sel1;
3389 output [71:0] dout;
3390
3391
3392
3393
3394
3395cl_dp1_muxbuff2_8x c0_0 (
3396 .in0(sel0),
3397 .in1(sel1),
3398 .out0(buffout0),
3399 .out1(buffout1)
3400);
3401mux2s #(72) d0_0 (
3402 .sel0(buffout0),
3403 .sel1(buffout1),
3404 .in0(din0[71:0]),
3405 .in1(din1[71:0]),
3406.dout(dout[71:0])
3407);
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421endmodule
3422
3423
3424// general mux macro for pass-gate and and-or muxes with/wout priority encoders
3425// also for pass-gate with decoder
3426
3427
3428
3429
3430
3431// any PARAMS parms go into naming of macro
3432
3433module db1_dbgprt_dp_mux_macro__dmux_8x__mux_aonpe__ports_2__stack_16c__width_16 (
3434 din0,
3435 sel0,
3436 din1,
3437 sel1,
3438 dout);
3439wire buffout0;
3440wire buffout1;
3441
3442 input [15:0] din0;
3443 input sel0;
3444 input [15:0] din1;
3445 input sel1;
3446 output [15:0] dout;
3447
3448
3449
3450
3451
3452cl_dp1_muxbuff2_8x c0_0 (
3453 .in0(sel0),
3454 .in1(sel1),
3455 .out0(buffout0),
3456 .out1(buffout1)
3457);
3458mux2s #(16) d0_0 (
3459 .sel0(buffout0),
3460 .sel1(buffout1),
3461 .in0(din0[15:0]),
3462 .in1(din1[15:0]),
3463.dout(dout[15:0])
3464);
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478endmodule
3479