Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / mcu / rtl / mcu_latq_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: mcu_latq_ctl.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35module mcu_latq_ctl (
36 latq_dout,
37 latq_full,
38 latq_empty,
39 latq_enq,
40 latq_deq,
41 latq_din,
42 l1clk,
43 scan_in,
44 scan_out,
45 tcu_aclk,
46 tcu_bclk,
47 tcu_scan_en);
48wire siclk;
49wire soclk;
50wire se;
51wire [5:0] wptr_in;
52wire [5:0] wptr;
53wire ff_wptr_scanin;
54wire ff_wptr_scanout;
55wire [5:0] rptr_in;
56wire [5:0] rptr;
57wire ff_rptr_scanin;
58wire ff_rptr_scanout;
59wire ent0_en;
60wire ff_ent0_scanin;
61wire ff_ent0_scanout;
62wire [11:0] ent0;
63wire ent1_en;
64wire ff_ent1_scanin;
65wire ff_ent1_scanout;
66wire [11:0] ent1;
67wire ent2_en;
68wire ff_ent2_scanin;
69wire ff_ent2_scanout;
70wire [11:0] ent2;
71wire ent3_en;
72wire ff_ent3_scanin;
73wire ff_ent3_scanout;
74wire [11:0] ent3;
75wire ent4_en;
76wire ff_ent4_scanin;
77wire ff_ent4_scanout;
78wire [11:0] ent4;
79wire ent5_en;
80wire ff_ent5_scanin;
81wire ff_ent5_scanout;
82wire [11:0] ent5;
83wire ent6_en;
84wire ff_ent6_scanin;
85wire ff_ent6_scanout;
86wire [11:0] ent6;
87wire ent7_en;
88wire ff_ent7_scanin;
89wire ff_ent7_scanout;
90wire [11:0] ent7;
91wire ent8_en;
92wire ff_ent8_scanin;
93wire ff_ent8_scanout;
94wire [11:0] ent8;
95wire ent9_en;
96wire ff_ent9_scanin;
97wire ff_ent9_scanout;
98wire [11:0] ent9;
99wire ent10_en;
100wire ff_ent10_scanin;
101wire ff_ent10_scanout;
102wire [11:0] ent10;
103wire ent11_en;
104wire ff_ent11_scanin;
105wire ff_ent11_scanout;
106wire [11:0] ent11;
107wire ent12_en;
108wire ff_ent12_scanin;
109wire ff_ent12_scanout;
110wire [11:0] ent12;
111wire ent13_en;
112wire ff_ent13_scanin;
113wire ff_ent13_scanout;
114wire [11:0] ent13;
115wire ent14_en;
116wire ff_ent14_scanin;
117wire ff_ent14_scanout;
118wire [11:0] ent14;
119wire ent15_en;
120wire ff_ent15_scanin;
121wire ff_ent15_scanout;
122wire [11:0] ent15;
123wire ent16_en;
124wire ff_ent16_scanin;
125wire ff_ent16_scanout;
126wire [11:0] ent16;
127wire ent17_en;
128wire ff_ent17_scanin;
129wire ff_ent17_scanout;
130wire [11:0] ent17;
131wire ent18_en;
132wire ff_ent18_scanin;
133wire ff_ent18_scanout;
134wire [11:0] ent18;
135wire ent19_en;
136wire ff_ent19_scanin;
137wire ff_ent19_scanout;
138wire [11:0] ent19;
139wire ent20_en;
140wire ff_ent20_scanin;
141wire ff_ent20_scanout;
142wire [11:0] ent20;
143wire ent21_en;
144wire ff_ent21_scanin;
145wire ff_ent21_scanout;
146wire [11:0] ent21;
147wire ent22_en;
148wire ff_ent22_scanin;
149wire ff_ent22_scanout;
150wire [11:0] ent22;
151wire ent23_en;
152wire ff_ent23_scanin;
153wire ff_ent23_scanout;
154wire [11:0] ent23;
155wire ent24_en;
156wire ff_ent24_scanin;
157wire ff_ent24_scanout;
158wire [11:0] ent24;
159wire ent25_en;
160wire ff_ent25_scanin;
161wire ff_ent25_scanout;
162wire [11:0] ent25;
163wire ent26_en;
164wire ff_ent26_scanin;
165wire ff_ent26_scanout;
166wire [11:0] ent26;
167wire ent27_en;
168wire ff_ent27_scanin;
169wire ff_ent27_scanout;
170wire [11:0] ent27;
171wire ent28_en;
172wire ff_ent28_scanin;
173wire ff_ent28_scanout;
174wire [11:0] ent28;
175wire ent29_en;
176wire ff_ent29_scanin;
177wire ff_ent29_scanout;
178wire [11:0] ent29;
179wire ent30_en;
180wire ff_ent30_scanin;
181wire ff_ent30_scanout;
182wire [11:0] ent30;
183wire ent31_en;
184wire ff_ent31_scanin;
185wire ff_ent31_scanout;
186wire [11:0] ent31;
187
188
189output [11:0] latq_dout;
190output latq_full;
191output latq_empty;
192
193input latq_enq;
194input latq_deq;
195input [11:0] latq_din;
196
197input l1clk;
198input scan_in;
199output scan_out;
200input tcu_aclk;
201input tcu_bclk;
202input tcu_scan_en;
203
204// Code
205assign siclk = tcu_aclk;
206assign soclk = tcu_bclk;
207assign se = tcu_scan_en;
208
209// 0in fifo -enq latq_enq -deq latq_deq -depth 32 -enq_data latq_din[11:0] -deq_data latq_dout[11:0]
210
211assign wptr_in[5:0] = wptr[5:0] + 6'h1;
212mcu_latq_ctl_msff_ctl_macro__en_1__width_6 ff_wptr (
213 .scan_in(ff_wptr_scanin),
214 .scan_out(ff_wptr_scanout),
215 .din(wptr_in[5:0]),
216 .dout(wptr[5:0]),
217 .en(latq_enq),
218 .l1clk(l1clk),
219 .siclk(siclk),
220 .soclk(soclk));
221
222assign rptr_in[5:0] = rptr[5:0] + 6'h1;
223mcu_latq_ctl_msff_ctl_macro__en_1__width_6 ff_rptr (
224 .scan_in(ff_rptr_scanin),
225 .scan_out(ff_rptr_scanout),
226 .din(rptr_in[5:0]),
227 .dout(rptr[5:0]),
228 .en(latq_deq),
229 .l1clk(l1clk),
230 .siclk(siclk),
231 .soclk(soclk));
232
233assign latq_full = rptr[5:0] == {~wptr[5],wptr[4:0]};
234assign latq_empty = rptr[5:0] == wptr[5:0];
235
236assign ent0_en = (wptr[4:0] == 5'd0) & latq_enq;
237mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent0 (
238 .scan_in(ff_ent0_scanin),
239 .scan_out(ff_ent0_scanout),
240 .din(latq_din[11:0]),
241 .dout(ent0[11:0]),
242 .en(ent0_en),
243 .l1clk(l1clk),
244 .siclk(siclk),
245 .soclk(soclk));
246
247assign ent1_en = (wptr[4:0] == 5'd1) & latq_enq;
248mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent1 (
249 .scan_in(ff_ent1_scanin),
250 .scan_out(ff_ent1_scanout),
251 .din(latq_din[11:0]),
252 .dout(ent1[11:0]),
253 .en(ent1_en),
254 .l1clk(l1clk),
255 .siclk(siclk),
256 .soclk(soclk));
257
258assign ent2_en = (wptr[4:0] == 5'd2) & latq_enq;
259mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent2 (
260 .scan_in(ff_ent2_scanin),
261 .scan_out(ff_ent2_scanout),
262 .din(latq_din[11:0]),
263 .dout(ent2[11:0]),
264 .en(ent2_en),
265 .l1clk(l1clk),
266 .siclk(siclk),
267 .soclk(soclk));
268
269assign ent3_en = (wptr[4:0] == 5'd3) & latq_enq;
270mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent3 (
271 .scan_in(ff_ent3_scanin),
272 .scan_out(ff_ent3_scanout),
273 .din(latq_din[11:0]),
274 .dout(ent3[11:0]),
275 .en(ent3_en),
276 .l1clk(l1clk),
277 .siclk(siclk),
278 .soclk(soclk));
279
280assign ent4_en = (wptr[4:0] == 5'd4) & latq_enq;
281mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent4 (
282 .scan_in(ff_ent4_scanin),
283 .scan_out(ff_ent4_scanout),
284 .din(latq_din[11:0]),
285 .dout(ent4[11:0]),
286 .en(ent4_en),
287 .l1clk(l1clk),
288 .siclk(siclk),
289 .soclk(soclk));
290
291assign ent5_en = (wptr[4:0] == 5'd5) & latq_enq;
292mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent5 (
293 .scan_in(ff_ent5_scanin),
294 .scan_out(ff_ent5_scanout),
295 .din(latq_din[11:0]),
296 .dout(ent5[11:0]),
297 .en(ent5_en),
298 .l1clk(l1clk),
299 .siclk(siclk),
300 .soclk(soclk));
301
302assign ent6_en = (wptr[4:0] == 5'd6) & latq_enq;
303mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent6 (
304 .scan_in(ff_ent6_scanin),
305 .scan_out(ff_ent6_scanout),
306 .din(latq_din[11:0]),
307 .dout(ent6[11:0]),
308 .en(ent6_en),
309 .l1clk(l1clk),
310 .siclk(siclk),
311 .soclk(soclk));
312
313assign ent7_en = (wptr[4:0] == 5'd7) & latq_enq;
314mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent7 (
315 .scan_in(ff_ent7_scanin),
316 .scan_out(ff_ent7_scanout),
317 .din(latq_din[11:0]),
318 .dout(ent7[11:0]),
319 .en(ent7_en),
320 .l1clk(l1clk),
321 .siclk(siclk),
322 .soclk(soclk));
323
324assign ent8_en = (wptr[4:0] == 5'd8) & latq_enq;
325mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent8 (
326 .scan_in(ff_ent8_scanin),
327 .scan_out(ff_ent8_scanout),
328 .din(latq_din[11:0]),
329 .dout(ent8[11:0]),
330 .en(ent8_en),
331 .l1clk(l1clk),
332 .siclk(siclk),
333 .soclk(soclk));
334
335assign ent9_en = (wptr[4:0] == 5'd9) & latq_enq;
336mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent9 (
337 .scan_in(ff_ent9_scanin),
338 .scan_out(ff_ent9_scanout),
339 .din(latq_din[11:0]),
340 .dout(ent9[11:0]),
341 .en(ent9_en),
342 .l1clk(l1clk),
343 .siclk(siclk),
344 .soclk(soclk));
345
346assign ent10_en = (wptr[4:0] == 5'd10) & latq_enq;
347mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent10 (
348 .scan_in(ff_ent10_scanin),
349 .scan_out(ff_ent10_scanout),
350 .din(latq_din[11:0]),
351 .dout(ent10[11:0]),
352 .en(ent10_en),
353 .l1clk(l1clk),
354 .siclk(siclk),
355 .soclk(soclk));
356
357assign ent11_en = (wptr[4:0] == 5'd11) & latq_enq;
358mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent11 (
359 .scan_in(ff_ent11_scanin),
360 .scan_out(ff_ent11_scanout),
361 .din(latq_din[11:0]),
362 .dout(ent11[11:0]),
363 .en(ent11_en),
364 .l1clk(l1clk),
365 .siclk(siclk),
366 .soclk(soclk));
367
368assign ent12_en = (wptr[4:0] == 5'd12) & latq_enq;
369mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent12 (
370 .scan_in(ff_ent12_scanin),
371 .scan_out(ff_ent12_scanout),
372 .din(latq_din[11:0]),
373 .dout(ent12[11:0]),
374 .en(ent12_en),
375 .l1clk(l1clk),
376 .siclk(siclk),
377 .soclk(soclk));
378
379assign ent13_en = (wptr[4:0] == 5'd13) & latq_enq;
380mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent13 (
381 .scan_in(ff_ent13_scanin),
382 .scan_out(ff_ent13_scanout),
383 .din(latq_din[11:0]),
384 .dout(ent13[11:0]),
385 .en(ent13_en),
386 .l1clk(l1clk),
387 .siclk(siclk),
388 .soclk(soclk));
389
390assign ent14_en = (wptr[4:0] == 5'd14) & latq_enq;
391mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent14 (
392 .scan_in(ff_ent14_scanin),
393 .scan_out(ff_ent14_scanout),
394 .din(latq_din[11:0]),
395 .dout(ent14[11:0]),
396 .en(ent14_en),
397 .l1clk(l1clk),
398 .siclk(siclk),
399 .soclk(soclk));
400
401assign ent15_en = (wptr[4:0] == 5'd15) & latq_enq;
402mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent15 (
403 .scan_in(ff_ent15_scanin),
404 .scan_out(ff_ent15_scanout),
405 .din(latq_din[11:0]),
406 .dout(ent15[11:0]),
407 .en(ent15_en),
408 .l1clk(l1clk),
409 .siclk(siclk),
410 .soclk(soclk));
411
412assign ent16_en = (wptr[4:0] == 5'd16) & latq_enq;
413mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent16 (
414 .scan_in(ff_ent16_scanin),
415 .scan_out(ff_ent16_scanout),
416 .din(latq_din[11:0]),
417 .dout(ent16[11:0]),
418 .en(ent16_en),
419 .l1clk(l1clk),
420 .siclk(siclk),
421 .soclk(soclk));
422
423assign ent17_en = (wptr[4:0] == 5'd17) & latq_enq;
424mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent17 (
425 .scan_in(ff_ent17_scanin),
426 .scan_out(ff_ent17_scanout),
427 .din(latq_din[11:0]),
428 .dout(ent17[11:0]),
429 .en(ent17_en),
430 .l1clk(l1clk),
431 .siclk(siclk),
432 .soclk(soclk));
433
434assign ent18_en = (wptr[4:0] == 5'd18) & latq_enq;
435mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent18 (
436 .scan_in(ff_ent18_scanin),
437 .scan_out(ff_ent18_scanout),
438 .din(latq_din[11:0]),
439 .dout(ent18[11:0]),
440 .en(ent18_en),
441 .l1clk(l1clk),
442 .siclk(siclk),
443 .soclk(soclk));
444
445assign ent19_en = (wptr[4:0] == 5'd19) & latq_enq;
446mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent19 (
447 .scan_in(ff_ent19_scanin),
448 .scan_out(ff_ent19_scanout),
449 .din(latq_din[11:0]),
450 .dout(ent19[11:0]),
451 .en(ent19_en),
452 .l1clk(l1clk),
453 .siclk(siclk),
454 .soclk(soclk));
455
456assign ent20_en = (wptr[4:0] == 5'd20) & latq_enq;
457mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent20 (
458 .scan_in(ff_ent20_scanin),
459 .scan_out(ff_ent20_scanout),
460 .din(latq_din[11:0]),
461 .dout(ent20[11:0]),
462 .en(ent20_en),
463 .l1clk(l1clk),
464 .siclk(siclk),
465 .soclk(soclk));
466
467assign ent21_en = (wptr[4:0] == 5'd21) & latq_enq;
468mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent21 (
469 .scan_in(ff_ent21_scanin),
470 .scan_out(ff_ent21_scanout),
471 .din(latq_din[11:0]),
472 .dout(ent21[11:0]),
473 .en(ent21_en),
474 .l1clk(l1clk),
475 .siclk(siclk),
476 .soclk(soclk));
477
478assign ent22_en = (wptr[4:0] == 5'd22) & latq_enq;
479mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent22 (
480 .scan_in(ff_ent22_scanin),
481 .scan_out(ff_ent22_scanout),
482 .din(latq_din[11:0]),
483 .dout(ent22[11:0]),
484 .en(ent22_en),
485 .l1clk(l1clk),
486 .siclk(siclk),
487 .soclk(soclk));
488
489assign ent23_en = (wptr[4:0] == 5'd23) & latq_enq;
490mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent23 (
491 .scan_in(ff_ent23_scanin),
492 .scan_out(ff_ent23_scanout),
493 .din(latq_din[11:0]),
494 .dout(ent23[11:0]),
495 .en(ent23_en),
496 .l1clk(l1clk),
497 .siclk(siclk),
498 .soclk(soclk));
499
500assign ent24_en = (wptr[4:0] == 5'd24) & latq_enq;
501mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent24 (
502 .scan_in(ff_ent24_scanin),
503 .scan_out(ff_ent24_scanout),
504 .din(latq_din[11:0]),
505 .dout(ent24[11:0]),
506 .en(ent24_en),
507 .l1clk(l1clk),
508 .siclk(siclk),
509 .soclk(soclk));
510
511assign ent25_en = (wptr[4:0] == 5'd25) & latq_enq;
512mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent25 (
513 .scan_in(ff_ent25_scanin),
514 .scan_out(ff_ent25_scanout),
515 .din(latq_din[11:0]),
516 .dout(ent25[11:0]),
517 .en(ent25_en),
518 .l1clk(l1clk),
519 .siclk(siclk),
520 .soclk(soclk));
521
522assign ent26_en = (wptr[4:0] == 5'd26) & latq_enq;
523mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent26 (
524 .scan_in(ff_ent26_scanin),
525 .scan_out(ff_ent26_scanout),
526 .din(latq_din[11:0]),
527 .dout(ent26[11:0]),
528 .en(ent26_en),
529 .l1clk(l1clk),
530 .siclk(siclk),
531 .soclk(soclk));
532
533assign ent27_en = (wptr[4:0] == 5'd27) & latq_enq;
534mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent27 (
535 .scan_in(ff_ent27_scanin),
536 .scan_out(ff_ent27_scanout),
537 .din(latq_din[11:0]),
538 .dout(ent27[11:0]),
539 .en(ent27_en),
540 .l1clk(l1clk),
541 .siclk(siclk),
542 .soclk(soclk));
543
544assign ent28_en = (wptr[4:0] == 5'd28) & latq_enq;
545mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent28 (
546 .scan_in(ff_ent28_scanin),
547 .scan_out(ff_ent28_scanout),
548 .din(latq_din[11:0]),
549 .dout(ent28[11:0]),
550 .en(ent28_en),
551 .l1clk(l1clk),
552 .siclk(siclk),
553 .soclk(soclk));
554
555assign ent29_en = (wptr[4:0] == 5'd29) & latq_enq;
556mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent29 (
557 .scan_in(ff_ent29_scanin),
558 .scan_out(ff_ent29_scanout),
559 .din(latq_din[11:0]),
560 .dout(ent29[11:0]),
561 .en(ent29_en),
562 .l1clk(l1clk),
563 .siclk(siclk),
564 .soclk(soclk));
565
566assign ent30_en = (wptr[4:0] == 5'd30) & latq_enq;
567mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent30 (
568 .scan_in(ff_ent30_scanin),
569 .scan_out(ff_ent30_scanout),
570 .din(latq_din[11:0]),
571 .dout(ent30[11:0]),
572 .en(ent30_en),
573 .l1clk(l1clk),
574 .siclk(siclk),
575 .soclk(soclk));
576
577assign ent31_en = (wptr[4:0] == 5'd31) & latq_enq;
578mcu_latq_ctl_msff_ctl_macro__en_1__width_12 ff_ent31 (
579 .scan_in(ff_ent31_scanin),
580 .scan_out(ff_ent31_scanout),
581 .din(latq_din[11:0]),
582 .dout(ent31[11:0]),
583 .en(ent31_en),
584 .l1clk(l1clk),
585 .siclk(siclk),
586 .soclk(soclk));
587
588// FIFO output selection
589assign latq_dout[11:0] =
590 {12{rptr[4:0] == 5'd0}} & ent0[11:0] |
591 {12{rptr[4:0] == 5'd1}} & ent1[11:0] |
592 {12{rptr[4:0] == 5'd2}} & ent2[11:0] |
593 {12{rptr[4:0] == 5'd3}} & ent3[11:0] |
594 {12{rptr[4:0] == 5'd4}} & ent4[11:0] |
595 {12{rptr[4:0] == 5'd5}} & ent5[11:0] |
596 {12{rptr[4:0] == 5'd6}} & ent6[11:0] |
597 {12{rptr[4:0] == 5'd7}} & ent7[11:0] |
598 {12{rptr[4:0] == 5'd8}} & ent8[11:0] |
599 {12{rptr[4:0] == 5'd9}} & ent9[11:0] |
600 {12{rptr[4:0] == 5'd10}} & ent10[11:0] |
601 {12{rptr[4:0] == 5'd11}} & ent11[11:0] |
602 {12{rptr[4:0] == 5'd12}} & ent12[11:0] |
603 {12{rptr[4:0] == 5'd13}} & ent13[11:0] |
604 {12{rptr[4:0] == 5'd14}} & ent14[11:0] |
605 {12{rptr[4:0] == 5'd15}} & ent15[11:0] |
606 {12{rptr[4:0] == 5'd16}} & ent16[11:0] |
607 {12{rptr[4:0] == 5'd17}} & ent17[11:0] |
608 {12{rptr[4:0] == 5'd18}} & ent18[11:0] |
609 {12{rptr[4:0] == 5'd19}} & ent19[11:0] |
610 {12{rptr[4:0] == 5'd20}} & ent20[11:0] |
611 {12{rptr[4:0] == 5'd21}} & ent21[11:0] |
612 {12{rptr[4:0] == 5'd22}} & ent22[11:0] |
613 {12{rptr[4:0] == 5'd23}} & ent23[11:0] |
614 {12{rptr[4:0] == 5'd24}} & ent24[11:0] |
615 {12{rptr[4:0] == 5'd25}} & ent25[11:0] |
616 {12{rptr[4:0] == 5'd26}} & ent26[11:0] |
617 {12{rptr[4:0] == 5'd27}} & ent27[11:0] |
618 {12{rptr[4:0] == 5'd28}} & ent28[11:0] |
619 {12{rptr[4:0] == 5'd29}} & ent29[11:0] |
620 {12{rptr[4:0] == 5'd30}} & ent30[11:0] |
621 {12{rptr[4:0] == 5'd31}} & ent31[11:0];
622
623
624// fixscan start:
625assign ff_wptr_scanin = scan_in ;
626assign ff_rptr_scanin = ff_wptr_scanout ;
627assign ff_ent0_scanin = ff_rptr_scanout ;
628assign ff_ent1_scanin = ff_ent0_scanout ;
629assign ff_ent2_scanin = ff_ent1_scanout ;
630assign ff_ent3_scanin = ff_ent2_scanout ;
631assign ff_ent4_scanin = ff_ent3_scanout ;
632assign ff_ent5_scanin = ff_ent4_scanout ;
633assign ff_ent6_scanin = ff_ent5_scanout ;
634assign ff_ent7_scanin = ff_ent6_scanout ;
635assign ff_ent8_scanin = ff_ent7_scanout ;
636assign ff_ent9_scanin = ff_ent8_scanout ;
637assign ff_ent10_scanin = ff_ent9_scanout ;
638assign ff_ent11_scanin = ff_ent10_scanout ;
639assign ff_ent12_scanin = ff_ent11_scanout ;
640assign ff_ent13_scanin = ff_ent12_scanout ;
641assign ff_ent14_scanin = ff_ent13_scanout ;
642assign ff_ent15_scanin = ff_ent14_scanout ;
643assign ff_ent16_scanin = ff_ent15_scanout ;
644assign ff_ent17_scanin = ff_ent16_scanout ;
645assign ff_ent18_scanin = ff_ent17_scanout ;
646assign ff_ent19_scanin = ff_ent18_scanout ;
647assign ff_ent20_scanin = ff_ent19_scanout ;
648assign ff_ent21_scanin = ff_ent20_scanout ;
649assign ff_ent22_scanin = ff_ent21_scanout ;
650assign ff_ent23_scanin = ff_ent22_scanout ;
651assign ff_ent24_scanin = ff_ent23_scanout ;
652assign ff_ent25_scanin = ff_ent24_scanout ;
653assign ff_ent26_scanin = ff_ent25_scanout ;
654assign ff_ent27_scanin = ff_ent26_scanout ;
655assign ff_ent28_scanin = ff_ent27_scanout ;
656assign ff_ent29_scanin = ff_ent28_scanout ;
657assign ff_ent30_scanin = ff_ent29_scanout ;
658assign ff_ent31_scanin = ff_ent30_scanout ;
659assign scan_out = ff_ent31_scanout ;
660// fixscan end:
661endmodule
662
663
664
665
666
667
668// any PARAMS parms go into naming of macro
669
670module mcu_latq_ctl_msff_ctl_macro__en_1__width_6 (
671 din,
672 en,
673 l1clk,
674 scan_in,
675 siclk,
676 soclk,
677 dout,
678 scan_out);
679wire [5:0] fdin;
680wire [4:0] so;
681
682 input [5:0] din;
683 input en;
684 input l1clk;
685 input scan_in;
686
687
688 input siclk;
689 input soclk;
690
691 output [5:0] dout;
692 output scan_out;
693assign fdin[5:0] = (din[5:0] & {6{en}}) | (dout[5:0] & ~{6{en}});
694
695
696
697
698
699
700dff #(6) d0_0 (
701.l1clk(l1clk),
702.siclk(siclk),
703.soclk(soclk),
704.d(fdin[5:0]),
705.si({scan_in,so[4:0]}),
706.so({so[4:0],scan_out}),
707.q(dout[5:0])
708);
709
710
711
712
713
714
715
716
717
718
719
720
721endmodule
722
723
724
725
726
727
728
729
730
731
732
733
734
735// any PARAMS parms go into naming of macro
736
737module mcu_latq_ctl_msff_ctl_macro__en_1__width_12 (
738 din,
739 en,
740 l1clk,
741 scan_in,
742 siclk,
743 soclk,
744 dout,
745 scan_out);
746wire [11:0] fdin;
747wire [10:0] so;
748
749 input [11:0] din;
750 input en;
751 input l1clk;
752 input scan_in;
753
754
755 input siclk;
756 input soclk;
757
758 output [11:0] dout;
759 output scan_out;
760assign fdin[11:0] = (din[11:0] & {12{en}}) | (dout[11:0] & ~{12{en}});
761
762
763
764
765
766
767dff #(12) d0_0 (
768.l1clk(l1clk),
769.siclk(siclk),
770.soclk(soclk),
771.d(fdin[11:0]),
772.si({scan_in,so[10:0]}),
773.so({so[10:0],scan_out}),
774.q(dout[11:0])
775);
776
777
778
779
780
781
782
783
784
785
786
787
788endmodule
789
790
791
792
793
794
795
796