Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / niu / rtl / niu_pio_ic.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: niu_pio_ic.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35/*%W% %G%*/
36
37/*****************************************************************
38 *
39 * File Name : niu_pio_ic.v
40 * Author Name : John Lo
41 * Description : Interrupt Controller
42 *
43 * Parent Module:
44 * Child Module:
45 * Interface Mod: many.
46 * Date Created : 3/18/04
47 *
48 * Copyright (c) 2020, Sun Microsystems, Inc.
49 * Sun Proprietary and Confidential
50 *
51 * Modification :
52 *
53 ****************************************************************/
54module niu_pio_ic (/*AUTOARG*/
55 // Outputs
56 intr_valid, intr_invalid, rst_at, group, memship_group0,
57 memship_group1, memship_group2, memship_group3, memship_group4,
58 memship_group5, memship_group6, memship_group7, memship_group8,
59 memship_group9, memship_group10, memship_group11, memship_group12,
60 memship_group13, memship_group14, memship_group15,
61 memship_group16, memship_group17, memship_group18,
62 memship_group19, memship_group20, memship_group21,
63 memship_group22, memship_group23, memship_group24,
64 memship_group25, memship_group26, memship_group27,
65 memship_group28, memship_group29, memship_group30,
66 memship_group31, memship_group32, memship_group33,
67 memship_group34, memship_group35, memship_group36,
68 memship_group37, memship_group38, memship_group39,
69 memship_group40, memship_group41, memship_group42,
70 memship_group43, memship_group44, memship_group45,
71 memship_group46, memship_group47, memship_group48,
72 memship_group49, memship_group50, memship_group51,
73 memship_group52, memship_group53, memship_group54,
74 memship_group55, memship_group56, memship_group57,
75 memship_group58, memship_group59, memship_group60,
76 memship_group61, memship_group62, memship_group63,
77 ig_state,
78 // Inputs
79 clk, reset, ldgn0, ldgn1, ldgn2, ldgn3, ldgn4, ldgn5,
80 ldgn6, ldgn7, ldgn8, ldgn9, ldgn10, ldgn11, ldgn12, ldgn13,
81 ldgn14, ldgn15, ldgn16, ldgn17, ldgn18, ldgn19, ldgn20, ldgn21,
82 ldgn22, ldgn23, ldgn24, ldgn25, ldgn26, ldgn27, ldgn28, ldgn29,
83 ldgn30, ldgn31, ldgn32, ldgn33, ldgn34, ldgn35, ldgn36, ldgn37,
84 ldgn38, ldgn39, ldgn40, ldgn41, ldgn42, ldgn43, ldgn44, ldgn45,
85 ldgn46, ldgn47, ldgn48, ldgn49, ldgn50, ldgn51, ldgn52, ldgn53,
86 ldgn54, ldgn55, ldgn56, ldgn57, ldgn58, ldgn59, ldgn60, ldgn61,
87 ldgn62, ldgn63, ldgn64, ldgn65, ldgn66, ldgn67, ldgn68, ldf_mask0,
88 ldf_mask1, ldf_mask2, ldf_mask3, ldf_mask4, ldf_mask5, ldf_mask6,
89 ldf_mask7, ldf_mask8, ldf_mask9, ldf_mask10, ldf_mask11,
90 ldf_mask12, ldf_mask13, ldf_mask14, ldf_mask15, ldf_mask16,
91 ldf_mask17, ldf_mask18, ldf_mask19, ldf_mask20, ldf_mask21,
92 ldf_mask22, ldf_mask23, ldf_mask24, ldf_mask25, ldf_mask26,
93 ldf_mask27, ldf_mask28, ldf_mask29, ldf_mask30, ldf_mask31,
94 ldf_mask32, ldf_mask33, ldf_mask34, ldf_mask35, ldf_mask36,
95 ldf_mask37, ldf_mask38, ldf_mask39, ldf_mask40, ldf_mask41,
96 ldf_mask42, ldf_mask43, ldf_mask44, ldf_mask45, ldf_mask46,
97 ldf_mask47, ldf_mask48, ldf_mask49, ldf_mask50, ldf_mask51,
98 ldf_mask52, ldf_mask53, ldf_mask54, ldf_mask55, ldf_mask56,
99 ldf_mask57, ldf_mask58, ldf_mask59, ldf_mask60, ldf_mask61,
100 ldf_mask62, ldf_mask63, ldf_mask64, ldf_mask65, ldf_mask66,
101 ldf_mask67, ldf_mask68, ldfi, ldfj, arm0, arm1, arm2, arm3, arm4,
102 arm5, arm6, arm7, arm8, arm9, arm10, arm11, arm12, arm13, arm14,
103 arm15, arm16, arm17, arm18, arm19, arm20, arm21, arm22, arm23,
104 arm24, arm25, arm26, arm27, arm28, arm29, arm30, arm31, arm32,
105 arm33, arm34, arm35, arm36, arm37, arm38, arm39, arm40, arm41,
106 arm42, arm43, arm44, arm45, arm46, arm47, arm48, arm49, arm50,
107 arm51, arm52, arm53, arm54, arm55, arm56, arm57, arm58, arm59,
108 arm60, arm61, arm62, arm63, timer0, timer1, timer2, timer3,
109 timer4, timer5, timer6, timer7, timer8, timer9, timer10, timer11,
110 timer12, timer13, timer14, timer15, timer16, timer17, timer18,
111 timer19, timer20, timer21, timer22, timer23, timer24, timer25,
112 timer26, timer27, timer28, timer29, timer30, timer31, timer32,
113 timer33, timer34, timer35, timer36, timer37, timer38, timer39,
114 timer40, timer41, timer42, timer43, timer44, timer45, timer46,
115 timer47, timer48, timer49, timer50, timer51, timer52, timer53,
116 timer54, timer55, timer56, timer57, timer58, timer59, timer60,
117 timer61, timer62, timer63, ibusy
118 );
119
120 input clk;
121 input reset;
122
123 input [5:0] ldgn0 ;
124 input [5:0] ldgn1 ;
125 input [5:0] ldgn2 ;
126 input [5:0] ldgn3 ;
127 input [5:0] ldgn4 ;
128 input [5:0] ldgn5 ;
129 input [5:0] ldgn6 ;
130 input [5:0] ldgn7 ;
131 input [5:0] ldgn8 ;
132 input [5:0] ldgn9 ;
133 input [5:0] ldgn10;
134 input [5:0] ldgn11;
135 input [5:0] ldgn12;
136 input [5:0] ldgn13;
137 input [5:0] ldgn14;
138 input [5:0] ldgn15;
139 input [5:0] ldgn16;
140 input [5:0] ldgn17;
141 input [5:0] ldgn18;
142 input [5:0] ldgn19;
143 input [5:0] ldgn20;
144 input [5:0] ldgn21;
145 input [5:0] ldgn22;
146 input [5:0] ldgn23;
147 input [5:0] ldgn24;
148 input [5:0] ldgn25;
149 input [5:0] ldgn26;
150 input [5:0] ldgn27;
151 input [5:0] ldgn28;
152 input [5:0] ldgn29;
153 input [5:0] ldgn30;
154 input [5:0] ldgn31;
155 input [5:0] ldgn32;
156 input [5:0] ldgn33;
157 input [5:0] ldgn34;
158 input [5:0] ldgn35;
159 input [5:0] ldgn36;
160 input [5:0] ldgn37;
161 input [5:0] ldgn38;
162 input [5:0] ldgn39;
163 input [5:0] ldgn40;
164 input [5:0] ldgn41;
165 input [5:0] ldgn42;
166 input [5:0] ldgn43;
167 input [5:0] ldgn44;
168 input [5:0] ldgn45;
169 input [5:0] ldgn46;
170 input [5:0] ldgn47;
171 input [5:0] ldgn48;
172 input [5:0] ldgn49;
173 input [5:0] ldgn50;
174 input [5:0] ldgn51;
175 input [5:0] ldgn52;
176 input [5:0] ldgn53;
177 input [5:0] ldgn54;
178 input [5:0] ldgn55;
179 input [5:0] ldgn56;
180 input [5:0] ldgn57;
181 input [5:0] ldgn58;
182 input [5:0] ldgn59;
183 input [5:0] ldgn60;
184 input [5:0] ldgn61;
185 input [5:0] ldgn62;
186 input [5:0] ldgn63;
187 input [5:0] ldgn64;
188 input [5:0] ldgn65;
189 input [5:0] ldgn66;
190 input [5:0] ldgn67;
191 input [5:0] ldgn68;
192
193 input [1:0] ldf_mask0 ;
194 input [1:0] ldf_mask1 ;
195 input [1:0] ldf_mask2 ;
196 input [1:0] ldf_mask3 ;
197 input [1:0] ldf_mask4 ;
198 input [1:0] ldf_mask5 ;
199 input [1:0] ldf_mask6 ;
200 input [1:0] ldf_mask7 ;
201 input [1:0] ldf_mask8 ;
202 input [1:0] ldf_mask9 ;
203 input [1:0] ldf_mask10;
204 input [1:0] ldf_mask11;
205 input [1:0] ldf_mask12;
206 input [1:0] ldf_mask13;
207 input [1:0] ldf_mask14;
208 input [1:0] ldf_mask15;
209 input [1:0] ldf_mask16;
210 input [1:0] ldf_mask17;
211 input [1:0] ldf_mask18;
212 input [1:0] ldf_mask19;
213 input [1:0] ldf_mask20;
214 input [1:0] ldf_mask21;
215 input [1:0] ldf_mask22;
216 input [1:0] ldf_mask23;
217 input [1:0] ldf_mask24;
218 input [1:0] ldf_mask25;
219 input [1:0] ldf_mask26;
220 input [1:0] ldf_mask27;
221 input [1:0] ldf_mask28;
222 input [1:0] ldf_mask29;
223 input [1:0] ldf_mask30;
224 input [1:0] ldf_mask31;
225 input [1:0] ldf_mask32;
226 input [1:0] ldf_mask33;
227 input [1:0] ldf_mask34;
228 input [1:0] ldf_mask35;
229 input [1:0] ldf_mask36;
230 input [1:0] ldf_mask37;
231 input [1:0] ldf_mask38;
232 input [1:0] ldf_mask39;
233 input [1:0] ldf_mask40;
234 input [1:0] ldf_mask41;
235 input [1:0] ldf_mask42;
236 input [1:0] ldf_mask43;
237 input [1:0] ldf_mask44;
238 input [1:0] ldf_mask45;
239 input [1:0] ldf_mask46;
240 input [1:0] ldf_mask47;
241 input [1:0] ldf_mask48;
242 input [1:0] ldf_mask49;
243 input [1:0] ldf_mask50;
244 input [1:0] ldf_mask51;
245 input [1:0] ldf_mask52;
246 input [1:0] ldf_mask53;
247 input [1:0] ldf_mask54;
248 input [1:0] ldf_mask55;
249 input [1:0] ldf_mask56;
250 input [1:0] ldf_mask57;
251 input [1:0] ldf_mask58;
252 input [1:0] ldf_mask59;
253 input [1:0] ldf_mask60;
254 input [1:0] ldf_mask61;
255 input [1:0] ldf_mask62;
256 input [1:0] ldf_mask63;
257 input [1:0] ldf_mask64;
258 input [1:0] ldf_mask65;
259 input [1:0] ldf_mask66;
260 input [1:0] ldf_mask67;
261 input [1:0] ldf_mask68;
262
263 input [68:0] ldfi;
264 input [68:0] ldfj;
265
266 input arm0 ;
267 input arm1 ;
268 input arm2 ;
269 input arm3 ;
270 input arm4 ;
271 input arm5 ;
272 input arm6 ;
273 input arm7 ;
274 input arm8 ;
275 input arm9 ;
276 input arm10;
277 input arm11;
278 input arm12;
279 input arm13;
280 input arm14;
281 input arm15;
282 input arm16;
283 input arm17;
284 input arm18;
285 input arm19;
286 input arm20;
287 input arm21;
288 input arm22;
289 input arm23;
290 input arm24;
291 input arm25;
292 input arm26;
293 input arm27;
294 input arm28;
295 input arm29;
296 input arm30;
297 input arm31;
298 input arm32;
299 input arm33;
300 input arm34;
301 input arm35;
302 input arm36;
303 input arm37;
304 input arm38;
305 input arm39;
306 input arm40;
307 input arm41;
308 input arm42;
309 input arm43;
310 input arm44;
311 input arm45;
312 input arm46;
313 input arm47;
314 input arm48;
315 input arm49;
316 input arm50;
317 input arm51;
318 input arm52;
319 input arm53;
320 input arm54;
321 input arm55;
322 input arm56;
323 input arm57;
324 input arm58;
325 input arm59;
326 input arm60;
327 input arm61;
328 input arm62;
329 input arm63;
330
331 input [5:0] timer0 ;
332 input [5:0] timer1 ;
333 input [5:0] timer2 ;
334 input [5:0] timer3 ;
335 input [5:0] timer4 ;
336 input [5:0] timer5 ;
337 input [5:0] timer6 ;
338 input [5:0] timer7 ;
339 input [5:0] timer8 ;
340 input [5:0] timer9 ;
341 input [5:0] timer10;
342 input [5:0] timer11;
343 input [5:0] timer12;
344 input [5:0] timer13;
345 input [5:0] timer14;
346 input [5:0] timer15;
347 input [5:0] timer16;
348 input [5:0] timer17;
349 input [5:0] timer18;
350 input [5:0] timer19;
351 input [5:0] timer20;
352 input [5:0] timer21;
353 input [5:0] timer22;
354 input [5:0] timer23;
355 input [5:0] timer24;
356 input [5:0] timer25;
357 input [5:0] timer26;
358 input [5:0] timer27;
359 input [5:0] timer28;
360 input [5:0] timer29;
361 input [5:0] timer30;
362 input [5:0] timer31;
363 input [5:0] timer32;
364 input [5:0] timer33;
365 input [5:0] timer34;
366 input [5:0] timer35;
367 input [5:0] timer36;
368 input [5:0] timer37;
369 input [5:0] timer38;
370 input [5:0] timer39;
371 input [5:0] timer40;
372 input [5:0] timer41;
373 input [5:0] timer42;
374 input [5:0] timer43;
375 input [5:0] timer44;
376 input [5:0] timer45;
377 input [5:0] timer46;
378 input [5:0] timer47;
379 input [5:0] timer48;
380 input [5:0] timer49;
381 input [5:0] timer50;
382 input [5:0] timer51;
383 input [5:0] timer52;
384 input [5:0] timer53;
385 input [5:0] timer54;
386 input [5:0] timer55;
387 input [5:0] timer56;
388 input [5:0] timer57;
389 input [5:0] timer58;
390 input [5:0] timer59;
391 input [5:0] timer60;
392 input [5:0] timer61;
393 input [5:0] timer62;
394 input [5:0] timer63;
395
396 input ibusy;
397 output intr_valid;
398 output intr_invalid;
399 output rst_at;
400 output [5:0] group;
401
402 output [68:0] memship_group0 ;
403 output [68:0] memship_group1 ;
404 output [68:0] memship_group2 ;
405 output [68:0] memship_group3 ;
406 output [68:0] memship_group4 ;
407 output [68:0] memship_group5 ;
408 output [68:0] memship_group6 ;
409 output [68:0] memship_group7 ;
410 output [68:0] memship_group8 ;
411 output [68:0] memship_group9 ;
412 output [68:0] memship_group10;
413 output [68:0] memship_group11;
414 output [68:0] memship_group12;
415 output [68:0] memship_group13;
416 output [68:0] memship_group14;
417 output [68:0] memship_group15;
418 output [68:0] memship_group16;
419 output [68:0] memship_group17;
420 output [68:0] memship_group18;
421 output [68:0] memship_group19;
422 output [68:0] memship_group20;
423 output [68:0] memship_group21;
424 output [68:0] memship_group22;
425 output [68:0] memship_group23;
426 output [68:0] memship_group24;
427 output [68:0] memship_group25;
428 output [68:0] memship_group26;
429 output [68:0] memship_group27;
430 output [68:0] memship_group28;
431 output [68:0] memship_group29;
432 output [68:0] memship_group30;
433 output [68:0] memship_group31;
434 output [68:0] memship_group32;
435 output [68:0] memship_group33;
436 output [68:0] memship_group34;
437 output [68:0] memship_group35;
438 output [68:0] memship_group36;
439 output [68:0] memship_group37;
440 output [68:0] memship_group38;
441 output [68:0] memship_group39;
442 output [68:0] memship_group40;
443 output [68:0] memship_group41;
444 output [68:0] memship_group42;
445 output [68:0] memship_group43;
446 output [68:0] memship_group44;
447 output [68:0] memship_group45;
448 output [68:0] memship_group46;
449 output [68:0] memship_group47;
450 output [68:0] memship_group48;
451 output [68:0] memship_group49;
452 output [68:0] memship_group50;
453 output [68:0] memship_group51;
454 output [68:0] memship_group52;
455 output [68:0] memship_group53;
456 output [68:0] memship_group54;
457 output [68:0] memship_group55;
458 output [68:0] memship_group56;
459 output [68:0] memship_group57;
460 output [68:0] memship_group58;
461 output [68:0] memship_group59;
462 output [68:0] memship_group60;
463 output [68:0] memship_group61;
464 output [68:0] memship_group62;
465 output [68:0] memship_group63;
466
467 output [2:0] ig_state; // From niu_pio_ig_sm of niu_pio_ig_sm.v
468/*AUTOWIRE*/
469// Beginning of automatic wires (for undeclared instantiated-module outputs)
470wire latch_nx_pri_group; // From niu_pio_ig_sm of niu_pio_ig_sm.v
471wire latch_req_mux_out; // From niu_pio_ig_sm of niu_pio_ig_sm.v
472wire latch_result_group; // From niu_pio_ig_sm of niu_pio_ig_sm.v
473// End of automatics
474 wire [63:0] ldgn_map0 ;
475 wire [63:0] ldgn_map1 ;
476 wire [63:0] ldgn_map2 ;
477 wire [63:0] ldgn_map3 ;
478 wire [63:0] ldgn_map4 ;
479 wire [63:0] ldgn_map5 ;
480 wire [63:0] ldgn_map6 ;
481 wire [63:0] ldgn_map7 ;
482 wire [63:0] ldgn_map8 ;
483 wire [63:0] ldgn_map9 ;
484 wire [63:0] ldgn_map10;
485 wire [63:0] ldgn_map11;
486 wire [63:0] ldgn_map12;
487 wire [63:0] ldgn_map13;
488 wire [63:0] ldgn_map14;
489 wire [63:0] ldgn_map15;
490 wire [63:0] ldgn_map16;
491 wire [63:0] ldgn_map17;
492 wire [63:0] ldgn_map18;
493 wire [63:0] ldgn_map19;
494 wire [63:0] ldgn_map20;
495 wire [63:0] ldgn_map21;
496 wire [63:0] ldgn_map22;
497 wire [63:0] ldgn_map23;
498 wire [63:0] ldgn_map24;
499 wire [63:0] ldgn_map25;
500 wire [63:0] ldgn_map26;
501 wire [63:0] ldgn_map27;
502 wire [63:0] ldgn_map28;
503 wire [63:0] ldgn_map29;
504 wire [63:0] ldgn_map30;
505 wire [63:0] ldgn_map31;
506 wire [63:0] ldgn_map32;
507 wire [63:0] ldgn_map33;
508 wire [63:0] ldgn_map34;
509 wire [63:0] ldgn_map35;
510 wire [63:0] ldgn_map36;
511 wire [63:0] ldgn_map37;
512 wire [63:0] ldgn_map38;
513 wire [63:0] ldgn_map39;
514 wire [63:0] ldgn_map40;
515 wire [63:0] ldgn_map41;
516 wire [63:0] ldgn_map42;
517 wire [63:0] ldgn_map43;
518 wire [63:0] ldgn_map44;
519 wire [63:0] ldgn_map45;
520 wire [63:0] ldgn_map46;
521 wire [63:0] ldgn_map47;
522 wire [63:0] ldgn_map48;
523 wire [63:0] ldgn_map49;
524 wire [63:0] ldgn_map50;
525 wire [63:0] ldgn_map51;
526 wire [63:0] ldgn_map52;
527 wire [63:0] ldgn_map53;
528 wire [63:0] ldgn_map54;
529 wire [63:0] ldgn_map55;
530 wire [63:0] ldgn_map56;
531 wire [63:0] ldgn_map57;
532 wire [63:0] ldgn_map58;
533 wire [63:0] ldgn_map59;
534 wire [63:0] ldgn_map60;
535 wire [63:0] ldgn_map61;
536 wire [63:0] ldgn_map62;
537 wire [63:0] ldgn_map63;
538 wire [63:0] ldgn_map64;
539 wire [63:0] ldgn_map65;
540 wire [63:0] ldgn_map66;
541 wire [63:0] ldgn_map67;
542 wire [63:0] ldgn_map68;
543
544 wire [68:0] memship_group0 ;
545 wire [68:0] memship_group1 ;
546 wire [68:0] memship_group2 ;
547 wire [68:0] memship_group3 ;
548 wire [68:0] memship_group4 ;
549 wire [68:0] memship_group5 ;
550 wire [68:0] memship_group6 ;
551 wire [68:0] memship_group7 ;
552 wire [68:0] memship_group8 ;
553 wire [68:0] memship_group9 ;
554 wire [68:0] memship_group10;
555 wire [68:0] memship_group11;
556 wire [68:0] memship_group12;
557 wire [68:0] memship_group13;
558 wire [68:0] memship_group14;
559 wire [68:0] memship_group15;
560 wire [68:0] memship_group16;
561 wire [68:0] memship_group17;
562 wire [68:0] memship_group18;
563 wire [68:0] memship_group19;
564 wire [68:0] memship_group20;
565 wire [68:0] memship_group21;
566 wire [68:0] memship_group22;
567 wire [68:0] memship_group23;
568 wire [68:0] memship_group24;
569 wire [68:0] memship_group25;
570 wire [68:0] memship_group26;
571 wire [68:0] memship_group27;
572 wire [68:0] memship_group28;
573 wire [68:0] memship_group29;
574 wire [68:0] memship_group30;
575 wire [68:0] memship_group31;
576 wire [68:0] memship_group32;
577 wire [68:0] memship_group33;
578 wire [68:0] memship_group34;
579 wire [68:0] memship_group35;
580 wire [68:0] memship_group36;
581 wire [68:0] memship_group37;
582 wire [68:0] memship_group38;
583 wire [68:0] memship_group39;
584 wire [68:0] memship_group40;
585 wire [68:0] memship_group41;
586 wire [68:0] memship_group42;
587 wire [68:0] memship_group43;
588 wire [68:0] memship_group44;
589 wire [68:0] memship_group45;
590 wire [68:0] memship_group46;
591 wire [68:0] memship_group47;
592 wire [68:0] memship_group48;
593 wire [68:0] memship_group49;
594 wire [68:0] memship_group50;
595 wire [68:0] memship_group51;
596 wire [68:0] memship_group52;
597 wire [68:0] memship_group53;
598 wire [68:0] memship_group54;
599 wire [68:0] memship_group55;
600 wire [68:0] memship_group56;
601 wire [68:0] memship_group57;
602 wire [68:0] memship_group58;
603 wire [68:0] memship_group59;
604 wire [68:0] memship_group60;
605 wire [68:0] memship_group61;
606 wire [68:0] memship_group62;
607 wire [68:0] memship_group63;
608
609 wire [68:0] ldfi;
610 wire [68:0] ldfj;
611 wire [68:0] ld_intr; // logic device interrupt
612 wire [63:0] intr_req_group;
613 wire [63:0] intr_rel_group;
614 wire [63:0] TO_group;
615
616// time out counter logic
617 assign TO_group[0] = (timer0 == 6'b0) ? 1'b1:1'b0 ;
618 assign TO_group[1] = (timer1 == 6'b0) ? 1'b1:1'b0 ;
619 assign TO_group[2] = (timer2 == 6'b0) ? 1'b1:1'b0 ;
620 assign TO_group[3] = (timer3 == 6'b0) ? 1'b1:1'b0 ;
621 assign TO_group[4] = (timer4 == 6'b0) ? 1'b1:1'b0 ;
622 assign TO_group[5] = (timer5 == 6'b0) ? 1'b1:1'b0 ;
623 assign TO_group[6] = (timer6 == 6'b0) ? 1'b1:1'b0 ;
624 assign TO_group[7] = (timer7 == 6'b0) ? 1'b1:1'b0 ;
625 assign TO_group[8] = (timer8 == 6'b0) ? 1'b1:1'b0 ;
626 assign TO_group[9] = (timer9 == 6'b0) ? 1'b1:1'b0 ;
627 assign TO_group[10] = (timer10 == 6'b0) ? 1'b1:1'b0 ;
628 assign TO_group[11] = (timer11 == 6'b0) ? 1'b1:1'b0 ;
629 assign TO_group[12] = (timer12 == 6'b0) ? 1'b1:1'b0 ;
630 assign TO_group[13] = (timer13 == 6'b0) ? 1'b1:1'b0 ;
631 assign TO_group[14] = (timer14 == 6'b0) ? 1'b1:1'b0 ;
632 assign TO_group[15] = (timer15 == 6'b0) ? 1'b1:1'b0 ;
633 assign TO_group[16] = (timer16 == 6'b0) ? 1'b1:1'b0 ;
634 assign TO_group[17] = (timer17 == 6'b0) ? 1'b1:1'b0 ;
635 assign TO_group[18] = (timer18 == 6'b0) ? 1'b1:1'b0 ;
636 assign TO_group[19] = (timer19 == 6'b0) ? 1'b1:1'b0 ;
637 assign TO_group[20] = (timer20 == 6'b0) ? 1'b1:1'b0 ;
638 assign TO_group[21] = (timer21 == 6'b0) ? 1'b1:1'b0 ;
639 assign TO_group[22] = (timer22 == 6'b0) ? 1'b1:1'b0 ;
640 assign TO_group[23] = (timer23 == 6'b0) ? 1'b1:1'b0 ;
641 assign TO_group[24] = (timer24 == 6'b0) ? 1'b1:1'b0 ;
642 assign TO_group[25] = (timer25 == 6'b0) ? 1'b1:1'b0 ;
643 assign TO_group[26] = (timer26 == 6'b0) ? 1'b1:1'b0 ;
644 assign TO_group[27] = (timer27 == 6'b0) ? 1'b1:1'b0 ;
645 assign TO_group[28] = (timer28 == 6'b0) ? 1'b1:1'b0 ;
646 assign TO_group[29] = (timer29 == 6'b0) ? 1'b1:1'b0 ;
647 assign TO_group[30] = (timer30 == 6'b0) ? 1'b1:1'b0 ;
648 assign TO_group[31] = (timer31 == 6'b0) ? 1'b1:1'b0 ;
649 assign TO_group[32] = (timer32 == 6'b0) ? 1'b1:1'b0 ;
650 assign TO_group[33] = (timer33 == 6'b0) ? 1'b1:1'b0 ;
651 assign TO_group[34] = (timer34 == 6'b0) ? 1'b1:1'b0 ;
652 assign TO_group[35] = (timer35 == 6'b0) ? 1'b1:1'b0 ;
653 assign TO_group[36] = (timer36 == 6'b0) ? 1'b1:1'b0 ;
654 assign TO_group[37] = (timer37 == 6'b0) ? 1'b1:1'b0 ;
655 assign TO_group[38] = (timer38 == 6'b0) ? 1'b1:1'b0 ;
656 assign TO_group[39] = (timer39 == 6'b0) ? 1'b1:1'b0 ;
657 assign TO_group[40] = (timer40 == 6'b0) ? 1'b1:1'b0 ;
658 assign TO_group[41] = (timer41 == 6'b0) ? 1'b1:1'b0 ;
659 assign TO_group[42] = (timer42 == 6'b0) ? 1'b1:1'b0 ;
660 assign TO_group[43] = (timer43 == 6'b0) ? 1'b1:1'b0 ;
661 assign TO_group[44] = (timer44 == 6'b0) ? 1'b1:1'b0 ;
662 assign TO_group[45] = (timer45 == 6'b0) ? 1'b1:1'b0 ;
663 assign TO_group[46] = (timer46 == 6'b0) ? 1'b1:1'b0 ;
664 assign TO_group[47] = (timer47 == 6'b0) ? 1'b1:1'b0 ;
665 assign TO_group[48] = (timer48 == 6'b0) ? 1'b1:1'b0 ;
666 assign TO_group[49] = (timer49 == 6'b0) ? 1'b1:1'b0 ;
667 assign TO_group[50] = (timer50 == 6'b0) ? 1'b1:1'b0 ;
668 assign TO_group[51] = (timer51 == 6'b0) ? 1'b1:1'b0 ;
669 assign TO_group[52] = (timer52 == 6'b0) ? 1'b1:1'b0 ;
670 assign TO_group[53] = (timer53 == 6'b0) ? 1'b1:1'b0 ;
671 assign TO_group[54] = (timer54 == 6'b0) ? 1'b1:1'b0 ;
672 assign TO_group[55] = (timer55 == 6'b0) ? 1'b1:1'b0 ;
673 assign TO_group[56] = (timer56 == 6'b0) ? 1'b1:1'b0 ;
674 assign TO_group[57] = (timer57 == 6'b0) ? 1'b1:1'b0 ;
675 assign TO_group[58] = (timer58 == 6'b0) ? 1'b1:1'b0 ;
676 assign TO_group[59] = (timer59 == 6'b0) ? 1'b1:1'b0 ;
677 assign TO_group[60] = (timer60 == 6'b0) ? 1'b1:1'b0 ;
678 assign TO_group[61] = (timer61 == 6'b0) ? 1'b1:1'b0 ;
679 assign TO_group[62] = (timer62 == 6'b0) ? 1'b1:1'b0 ;
680 assign TO_group[63] = (timer63 == 6'b0) ? 1'b1:1'b0 ;
681
682//**********************************************************************************************************************
683
684niu_pio_decoder_6to64 niu_pio_decoder_6to64_u0 (.ldgn(ldgn0[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map0[63:0]));
685niu_pio_decoder_6to64 niu_pio_decoder_6to64_u1 (.ldgn(ldgn1[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map1[63:0]));
686niu_pio_decoder_6to64 niu_pio_decoder_6to64_u2 (.ldgn(ldgn2[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map2[63:0]));
687niu_pio_decoder_6to64 niu_pio_decoder_6to64_u3 (.ldgn(ldgn3[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map3[63:0]));
688niu_pio_decoder_6to64 niu_pio_decoder_6to64_u4 (.ldgn(ldgn4[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map4[63:0]));
689niu_pio_decoder_6to64 niu_pio_decoder_6to64_u5 (.ldgn(ldgn5[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map5[63:0]));
690niu_pio_decoder_6to64 niu_pio_decoder_6to64_u6 (.ldgn(ldgn6[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map6[63:0]));
691niu_pio_decoder_6to64 niu_pio_decoder_6to64_u7 (.ldgn(ldgn7[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map7[63:0]));
692niu_pio_decoder_6to64 niu_pio_decoder_6to64_u8 (.ldgn(ldgn8[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map8[63:0]));
693niu_pio_decoder_6to64 niu_pio_decoder_6to64_u9 (.ldgn(ldgn9[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map9[63:0]));
694niu_pio_decoder_6to64 niu_pio_decoder_6to64_u10 (.ldgn(ldgn10[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map10[63:0]));
695niu_pio_decoder_6to64 niu_pio_decoder_6to64_u11 (.ldgn(ldgn11[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map11[63:0]));
696niu_pio_decoder_6to64 niu_pio_decoder_6to64_u12 (.ldgn(ldgn12[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map12[63:0]));
697niu_pio_decoder_6to64 niu_pio_decoder_6to64_u13 (.ldgn(ldgn13[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map13[63:0]));
698niu_pio_decoder_6to64 niu_pio_decoder_6to64_u14 (.ldgn(ldgn14[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map14[63:0]));
699niu_pio_decoder_6to64 niu_pio_decoder_6to64_u15 (.ldgn(ldgn15[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map15[63:0]));
700
701assign ldgn_map16 = 64'b0 ;
702assign ldgn_map17 = 64'b0 ;
703assign ldgn_map18 = 64'b0 ;
704assign ldgn_map19 = 64'b0 ;
705assign ldgn_map20 = 64'b0 ;
706assign ldgn_map21 = 64'b0 ;
707assign ldgn_map22 = 64'b0 ;
708assign ldgn_map23 = 64'b0 ;
709assign ldgn_map24 = 64'b0 ;
710assign ldgn_map25 = 64'b0 ;
711assign ldgn_map26 = 64'b0 ;
712assign ldgn_map27 = 64'b0 ;
713assign ldgn_map28 = 64'b0 ;
714assign ldgn_map29 = 64'b0 ;
715assign ldgn_map30 = 64'b0 ;
716assign ldgn_map31 = 64'b0 ;
717
718niu_pio_decoder_6to64 niu_pio_decoder_6to64_u32 (.ldgn(ldgn32[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map32[63:0]));
719niu_pio_decoder_6to64 niu_pio_decoder_6to64_u33 (.ldgn(ldgn33[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map33[63:0]));
720niu_pio_decoder_6to64 niu_pio_decoder_6to64_u34 (.ldgn(ldgn34[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map34[63:0]));
721niu_pio_decoder_6to64 niu_pio_decoder_6to64_u35 (.ldgn(ldgn35[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map35[63:0]));
722niu_pio_decoder_6to64 niu_pio_decoder_6to64_u36 (.ldgn(ldgn36[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map36[63:0]));
723niu_pio_decoder_6to64 niu_pio_decoder_6to64_u37 (.ldgn(ldgn37[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map37[63:0]));
724niu_pio_decoder_6to64 niu_pio_decoder_6to64_u38 (.ldgn(ldgn38[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map38[63:0]));
725niu_pio_decoder_6to64 niu_pio_decoder_6to64_u39 (.ldgn(ldgn39[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map39[63:0]));
726niu_pio_decoder_6to64 niu_pio_decoder_6to64_u40 (.ldgn(ldgn40[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map40[63:0]));
727niu_pio_decoder_6to64 niu_pio_decoder_6to64_u41 (.ldgn(ldgn41[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map41[63:0]));
728niu_pio_decoder_6to64 niu_pio_decoder_6to64_u42 (.ldgn(ldgn42[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map42[63:0]));
729niu_pio_decoder_6to64 niu_pio_decoder_6to64_u43 (.ldgn(ldgn43[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map43[63:0]));
730niu_pio_decoder_6to64 niu_pio_decoder_6to64_u44 (.ldgn(ldgn44[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map44[63:0]));
731niu_pio_decoder_6to64 niu_pio_decoder_6to64_u45 (.ldgn(ldgn45[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map45[63:0]));
732niu_pio_decoder_6to64 niu_pio_decoder_6to64_u46 (.ldgn(ldgn46[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map46[63:0]));
733niu_pio_decoder_6to64 niu_pio_decoder_6to64_u47 (.ldgn(ldgn47[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map47[63:0]));
734
735`ifdef NEPTUNE
736niu_pio_decoder_6to64 niu_pio_decoder_6to64_u48 (.ldgn(ldgn48[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map48[63:0]));
737niu_pio_decoder_6to64 niu_pio_decoder_6to64_u49 (.ldgn(ldgn49[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map49[63:0]));
738niu_pio_decoder_6to64 niu_pio_decoder_6to64_u50 (.ldgn(ldgn50[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map50[63:0]));
739niu_pio_decoder_6to64 niu_pio_decoder_6to64_u51 (.ldgn(ldgn51[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map51[63:0]));
740niu_pio_decoder_6to64 niu_pio_decoder_6to64_u52 (.ldgn(ldgn52[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map52[63:0]));
741niu_pio_decoder_6to64 niu_pio_decoder_6to64_u53 (.ldgn(ldgn53[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map53[63:0]));
742niu_pio_decoder_6to64 niu_pio_decoder_6to64_u54 (.ldgn(ldgn54[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map54[63:0]));
743niu_pio_decoder_6to64 niu_pio_decoder_6to64_u55 (.ldgn(ldgn55[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map55[63:0]));
744`else
745assign ldgn_map48 = 64'b0 ;
746assign ldgn_map49 = 64'b0 ;
747assign ldgn_map50 = 64'b0 ;
748assign ldgn_map51 = 64'b0 ;
749assign ldgn_map52 = 64'b0 ;
750assign ldgn_map53 = 64'b0 ;
751assign ldgn_map54 = 64'b0 ;
752assign ldgn_map55 = 64'b0 ;
753`endif
754
755assign ldgn_map56 = 64'b0 ;
756assign ldgn_map57 = 64'b0 ;
757assign ldgn_map58 = 64'b0 ;
758assign ldgn_map59 = 64'b0 ;
759assign ldgn_map60 = 64'b0 ;
760assign ldgn_map61 = 64'b0 ;
761assign ldgn_map62 = 64'b0 ;
762
763niu_pio_decoder_6to64 niu_pio_decoder_6to64_u63 (.ldgn(ldgn63[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map63[63:0]));
764niu_pio_decoder_6to64 niu_pio_decoder_6to64_u64 (.ldgn(ldgn64[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map64[63:0]));
765niu_pio_decoder_6to64 niu_pio_decoder_6to64_u65 (.ldgn(ldgn65[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map65[63:0]));
766`ifdef NEPTUNE
767niu_pio_decoder_6to64 niu_pio_decoder_6to64_u66 (.ldgn(ldgn66[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map66[63:0]));
768niu_pio_decoder_6to64 niu_pio_decoder_6to64_u67 (.ldgn(ldgn67[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map67[63:0]));
769`else
770assign ldgn_map66 = 64'b0 ;
771assign ldgn_map67 = 64'b0 ;
772`endif
773
774niu_pio_decoder_6to64 niu_pio_decoder_6to64_u68 (.ldgn(ldgn68[5:0]),.clk(clk), .reset(reset), .ldgn_map(ldgn_map68[63:0]));
775
776//**********************************************************************************************************************
777
778niu_pio_ldgn2group niu_pio_ldgn2group
779 (/*AUTOINST*/
780 // Outputs
781 .memship_group0 (memship_group0[68:0]),
782 .memship_group1 (memship_group1[68:0]),
783 .memship_group2 (memship_group2[68:0]),
784 .memship_group3 (memship_group3[68:0]),
785 .memship_group4 (memship_group4[68:0]),
786 .memship_group5 (memship_group5[68:0]),
787 .memship_group6 (memship_group6[68:0]),
788 .memship_group7 (memship_group7[68:0]),
789 .memship_group8 (memship_group8[68:0]),
790 .memship_group9 (memship_group9[68:0]),
791 .memship_group10 (memship_group10[68:0]),
792 .memship_group11 (memship_group11[68:0]),
793 .memship_group12 (memship_group12[68:0]),
794 .memship_group13 (memship_group13[68:0]),
795 .memship_group14 (memship_group14[68:0]),
796 .memship_group15 (memship_group15[68:0]),
797 .memship_group16 (memship_group16[68:0]),
798 .memship_group17 (memship_group17[68:0]),
799 .memship_group18 (memship_group18[68:0]),
800 .memship_group19 (memship_group19[68:0]),
801 .memship_group20 (memship_group20[68:0]),
802 .memship_group21 (memship_group21[68:0]),
803 .memship_group22 (memship_group22[68:0]),
804 .memship_group23 (memship_group23[68:0]),
805 .memship_group24 (memship_group24[68:0]),
806 .memship_group25 (memship_group25[68:0]),
807 .memship_group26 (memship_group26[68:0]),
808 .memship_group27 (memship_group27[68:0]),
809 .memship_group28 (memship_group28[68:0]),
810 .memship_group29 (memship_group29[68:0]),
811 .memship_group30 (memship_group30[68:0]),
812 .memship_group31 (memship_group31[68:0]),
813 .memship_group32 (memship_group32[68:0]),
814 .memship_group33 (memship_group33[68:0]),
815 .memship_group34 (memship_group34[68:0]),
816 .memship_group35 (memship_group35[68:0]),
817 .memship_group36 (memship_group36[68:0]),
818 .memship_group37 (memship_group37[68:0]),
819 .memship_group38 (memship_group38[68:0]),
820 .memship_group39 (memship_group39[68:0]),
821 .memship_group40 (memship_group40[68:0]),
822 .memship_group41 (memship_group41[68:0]),
823 .memship_group42 (memship_group42[68:0]),
824 .memship_group43 (memship_group43[68:0]),
825 .memship_group44 (memship_group44[68:0]),
826 .memship_group45 (memship_group45[68:0]),
827 .memship_group46 (memship_group46[68:0]),
828 .memship_group47 (memship_group47[68:0]),
829 .memship_group48 (memship_group48[68:0]),
830 .memship_group49 (memship_group49[68:0]),
831 .memship_group50 (memship_group50[68:0]),
832 .memship_group51 (memship_group51[68:0]),
833 .memship_group52 (memship_group52[68:0]),
834 .memship_group53 (memship_group53[68:0]),
835 .memship_group54 (memship_group54[68:0]),
836 .memship_group55 (memship_group55[68:0]),
837 .memship_group56 (memship_group56[68:0]),
838 .memship_group57 (memship_group57[68:0]),
839 .memship_group58 (memship_group58[68:0]),
840 .memship_group59 (memship_group59[68:0]),
841 .memship_group60 (memship_group60[68:0]),
842 .memship_group61 (memship_group61[68:0]),
843 .memship_group62 (memship_group62[68:0]),
844 .memship_group63 (memship_group63[68:0]),
845 // Inputs
846 .ldgn_map0 (ldgn_map0[63:0]),
847 .ldgn_map1 (ldgn_map1[63:0]),
848 .ldgn_map2 (ldgn_map2[63:0]),
849 .ldgn_map3 (ldgn_map3[63:0]),
850 .ldgn_map4 (ldgn_map4[63:0]),
851 .ldgn_map5 (ldgn_map5[63:0]),
852 .ldgn_map6 (ldgn_map6[63:0]),
853 .ldgn_map7 (ldgn_map7[63:0]),
854 .ldgn_map8 (ldgn_map8[63:0]),
855 .ldgn_map9 (ldgn_map9[63:0]),
856 .ldgn_map10 (ldgn_map10[63:0]),
857 .ldgn_map11 (ldgn_map11[63:0]),
858 .ldgn_map12 (ldgn_map12[63:0]),
859 .ldgn_map13 (ldgn_map13[63:0]),
860 .ldgn_map14 (ldgn_map14[63:0]),
861 .ldgn_map15 (ldgn_map15[63:0]),
862 .ldgn_map16 (ldgn_map16[63:0]),
863 .ldgn_map17 (ldgn_map17[63:0]),
864 .ldgn_map18 (ldgn_map18[63:0]),
865 .ldgn_map19 (ldgn_map19[63:0]),
866 .ldgn_map20 (ldgn_map20[63:0]),
867 .ldgn_map21 (ldgn_map21[63:0]),
868 .ldgn_map22 (ldgn_map22[63:0]),
869 .ldgn_map23 (ldgn_map23[63:0]),
870 .ldgn_map24 (ldgn_map24[63:0]),
871 .ldgn_map25 (ldgn_map25[63:0]),
872 .ldgn_map26 (ldgn_map26[63:0]),
873 .ldgn_map27 (ldgn_map27[63:0]),
874 .ldgn_map28 (ldgn_map28[63:0]),
875 .ldgn_map29 (ldgn_map29[63:0]),
876 .ldgn_map30 (ldgn_map30[63:0]),
877 .ldgn_map31 (ldgn_map31[63:0]),
878 .ldgn_map32 (ldgn_map32[63:0]),
879 .ldgn_map33 (ldgn_map33[63:0]),
880 .ldgn_map34 (ldgn_map34[63:0]),
881 .ldgn_map35 (ldgn_map35[63:0]),
882 .ldgn_map36 (ldgn_map36[63:0]),
883 .ldgn_map37 (ldgn_map37[63:0]),
884 .ldgn_map38 (ldgn_map38[63:0]),
885 .ldgn_map39 (ldgn_map39[63:0]),
886 .ldgn_map40 (ldgn_map40[63:0]),
887 .ldgn_map41 (ldgn_map41[63:0]),
888 .ldgn_map42 (ldgn_map42[63:0]),
889 .ldgn_map43 (ldgn_map43[63:0]),
890 .ldgn_map44 (ldgn_map44[63:0]),
891 .ldgn_map45 (ldgn_map45[63:0]),
892 .ldgn_map46 (ldgn_map46[63:0]),
893 .ldgn_map47 (ldgn_map47[63:0]),
894 .ldgn_map48 (ldgn_map48[63:0]),
895 .ldgn_map49 (ldgn_map49[63:0]),
896 .ldgn_map50 (ldgn_map50[63:0]),
897 .ldgn_map51 (ldgn_map51[63:0]),
898 .ldgn_map52 (ldgn_map52[63:0]),
899 .ldgn_map53 (ldgn_map53[63:0]),
900 .ldgn_map54 (ldgn_map54[63:0]),
901 .ldgn_map55 (ldgn_map55[63:0]),
902 .ldgn_map56 (ldgn_map56[63:0]),
903 .ldgn_map57 (ldgn_map57[63:0]),
904 .ldgn_map58 (ldgn_map58[63:0]),
905 .ldgn_map59 (ldgn_map59[63:0]),
906 .ldgn_map60 (ldgn_map60[63:0]),
907 .ldgn_map61 (ldgn_map61[63:0]),
908 .ldgn_map62 (ldgn_map62[63:0]),
909 .ldgn_map63 (ldgn_map63[63:0]),
910 .ldgn_map64 (ldgn_map64[63:0]),
911 .ldgn_map65 (ldgn_map65[63:0]),
912 .ldgn_map66 (ldgn_map66[63:0]),
913 .ldgn_map67 (ldgn_map67[63:0]),
914 .ldgn_map68 (ldgn_map68[63:0]));
915
916// one set of interrupt mask for all groups
917 assign ld_intr[0 ] = (ldfi[0 ] & (~ldf_mask0 [1])) | (ldfj[0 ] & (~ldf_mask0 [0]));
918 assign ld_intr[1 ] = (ldfi[1 ] & (~ldf_mask1 [1])) | (ldfj[1 ] & (~ldf_mask1 [0]));
919 assign ld_intr[2 ] = (ldfi[2 ] & (~ldf_mask2 [1])) | (ldfj[2 ] & (~ldf_mask2 [0]));
920 assign ld_intr[3 ] = (ldfi[3 ] & (~ldf_mask3 [1])) | (ldfj[3 ] & (~ldf_mask3 [0]));
921 assign ld_intr[4 ] = (ldfi[4 ] & (~ldf_mask4 [1])) | (ldfj[4 ] & (~ldf_mask4 [0]));
922 assign ld_intr[5 ] = (ldfi[5 ] & (~ldf_mask5 [1])) | (ldfj[5 ] & (~ldf_mask5 [0]));
923 assign ld_intr[6 ] = (ldfi[6 ] & (~ldf_mask6 [1])) | (ldfj[6 ] & (~ldf_mask6 [0]));
924 assign ld_intr[7 ] = (ldfi[7 ] & (~ldf_mask7 [1])) | (ldfj[7 ] & (~ldf_mask7 [0]));
925 assign ld_intr[8 ] = (ldfi[8 ] & (~ldf_mask8 [1])) | (ldfj[8 ] & (~ldf_mask8 [0]));
926 assign ld_intr[9 ] = (ldfi[9 ] & (~ldf_mask9 [1])) | (ldfj[9 ] & (~ldf_mask9 [0]));
927 assign ld_intr[10] = (ldfi[10] & (~ldf_mask10[1])) | (ldfj[10] & (~ldf_mask10[0]));
928 assign ld_intr[11] = (ldfi[11] & (~ldf_mask11[1])) | (ldfj[11] & (~ldf_mask11[0]));
929 assign ld_intr[12] = (ldfi[12] & (~ldf_mask12[1])) | (ldfj[12] & (~ldf_mask12[0]));
930 assign ld_intr[13] = (ldfi[13] & (~ldf_mask13[1])) | (ldfj[13] & (~ldf_mask13[0]));
931 assign ld_intr[14] = (ldfi[14] & (~ldf_mask14[1])) | (ldfj[14] & (~ldf_mask14[0]));
932 assign ld_intr[15] = (ldfi[15] & (~ldf_mask15[1])) | (ldfj[15] & (~ldf_mask15[0]));
933 assign ld_intr[16] = (ldfi[16] & (~ldf_mask16[1])) | (ldfj[16] & (~ldf_mask16[0]));
934 assign ld_intr[17] = (ldfi[17] & (~ldf_mask17[1])) | (ldfj[17] & (~ldf_mask17[0]));
935 assign ld_intr[18] = (ldfi[18] & (~ldf_mask18[1])) | (ldfj[18] & (~ldf_mask18[0]));
936 assign ld_intr[19] = (ldfi[19] & (~ldf_mask19[1])) | (ldfj[19] & (~ldf_mask19[0]));
937 assign ld_intr[20] = (ldfi[20] & (~ldf_mask20[1])) | (ldfj[20] & (~ldf_mask20[0]));
938 assign ld_intr[21] = (ldfi[21] & (~ldf_mask21[1])) | (ldfj[21] & (~ldf_mask21[0]));
939 assign ld_intr[22] = (ldfi[22] & (~ldf_mask22[1])) | (ldfj[22] & (~ldf_mask22[0]));
940 assign ld_intr[23] = (ldfi[23] & (~ldf_mask23[1])) | (ldfj[23] & (~ldf_mask23[0]));
941 assign ld_intr[24] = (ldfi[24] & (~ldf_mask24[1])) | (ldfj[24] & (~ldf_mask24[0]));
942 assign ld_intr[25] = (ldfi[25] & (~ldf_mask25[1])) | (ldfj[25] & (~ldf_mask25[0]));
943 assign ld_intr[26] = (ldfi[26] & (~ldf_mask26[1])) | (ldfj[26] & (~ldf_mask26[0]));
944 assign ld_intr[27] = (ldfi[27] & (~ldf_mask27[1])) | (ldfj[27] & (~ldf_mask27[0]));
945 assign ld_intr[28] = (ldfi[28] & (~ldf_mask28[1])) | (ldfj[28] & (~ldf_mask28[0]));
946 assign ld_intr[29] = (ldfi[29] & (~ldf_mask29[1])) | (ldfj[29] & (~ldf_mask29[0]));
947 assign ld_intr[30] = (ldfi[30] & (~ldf_mask30[1])) | (ldfj[30] & (~ldf_mask30[0]));
948 assign ld_intr[31] = (ldfi[31] & (~ldf_mask31[1])) | (ldfj[31] & (~ldf_mask31[0]));
949 assign ld_intr[32] = (ldfi[32] & (~ldf_mask32[1])) | (ldfj[32] & (~ldf_mask32[0]));
950 assign ld_intr[33] = (ldfi[33] & (~ldf_mask33[1])) | (ldfj[33] & (~ldf_mask33[0]));
951 assign ld_intr[34] = (ldfi[34] & (~ldf_mask34[1])) | (ldfj[34] & (~ldf_mask34[0]));
952 assign ld_intr[35] = (ldfi[35] & (~ldf_mask35[1])) | (ldfj[35] & (~ldf_mask35[0]));
953 assign ld_intr[36] = (ldfi[36] & (~ldf_mask36[1])) | (ldfj[36] & (~ldf_mask36[0]));
954 assign ld_intr[37] = (ldfi[37] & (~ldf_mask37[1])) | (ldfj[37] & (~ldf_mask37[0]));
955 assign ld_intr[38] = (ldfi[38] & (~ldf_mask38[1])) | (ldfj[38] & (~ldf_mask38[0]));
956 assign ld_intr[39] = (ldfi[39] & (~ldf_mask39[1])) | (ldfj[39] & (~ldf_mask39[0]));
957 assign ld_intr[40] = (ldfi[40] & (~ldf_mask40[1])) | (ldfj[40] & (~ldf_mask40[0]));
958 assign ld_intr[41] = (ldfi[41] & (~ldf_mask41[1])) | (ldfj[41] & (~ldf_mask41[0]));
959 assign ld_intr[42] = (ldfi[42] & (~ldf_mask42[1])) | (ldfj[42] & (~ldf_mask42[0]));
960 assign ld_intr[43] = (ldfi[43] & (~ldf_mask43[1])) | (ldfj[43] & (~ldf_mask43[0]));
961 assign ld_intr[44] = (ldfi[44] & (~ldf_mask44[1])) | (ldfj[44] & (~ldf_mask44[0]));
962 assign ld_intr[45] = (ldfi[45] & (~ldf_mask45[1])) | (ldfj[45] & (~ldf_mask45[0]));
963 assign ld_intr[46] = (ldfi[46] & (~ldf_mask46[1])) | (ldfj[46] & (~ldf_mask46[0]));
964 assign ld_intr[47] = (ldfi[47] & (~ldf_mask47[1])) | (ldfj[47] & (~ldf_mask47[0]));
965 assign ld_intr[48] = (ldfi[48] & (~ldf_mask48[1])) | (ldfj[48] & (~ldf_mask48[0]));
966 assign ld_intr[49] = (ldfi[49] & (~ldf_mask49[1])) | (ldfj[49] & (~ldf_mask49[0]));
967 assign ld_intr[50] = (ldfi[50] & (~ldf_mask50[1])) | (ldfj[50] & (~ldf_mask50[0]));
968 assign ld_intr[51] = (ldfi[51] & (~ldf_mask51[1])) | (ldfj[51] & (~ldf_mask51[0]));
969 assign ld_intr[52] = (ldfi[52] & (~ldf_mask52[1])) | (ldfj[52] & (~ldf_mask52[0]));
970 assign ld_intr[53] = (ldfi[53] & (~ldf_mask53[1])) | (ldfj[53] & (~ldf_mask53[0]));
971 assign ld_intr[54] = (ldfi[54] & (~ldf_mask54[1])) | (ldfj[54] & (~ldf_mask54[0]));
972 assign ld_intr[55] = (ldfi[55] & (~ldf_mask55[1])) | (ldfj[55] & (~ldf_mask55[0]));
973 assign ld_intr[56] = (ldfi[56] & (~ldf_mask56[1])) | (ldfj[56] & (~ldf_mask56[0]));
974 assign ld_intr[57] = (ldfi[57] & (~ldf_mask57[1])) | (ldfj[57] & (~ldf_mask57[0]));
975 assign ld_intr[58] = (ldfi[58] & (~ldf_mask58[1])) | (ldfj[58] & (~ldf_mask58[0]));
976 assign ld_intr[59] = (ldfi[59] & (~ldf_mask59[1])) | (ldfj[59] & (~ldf_mask59[0]));
977 assign ld_intr[60] = (ldfi[60] & (~ldf_mask60[1])) | (ldfj[60] & (~ldf_mask60[0]));
978 assign ld_intr[61] = (ldfi[61] & (~ldf_mask61[1])) | (ldfj[61] & (~ldf_mask61[0]));
979 assign ld_intr[62] = (ldfi[62] & (~ldf_mask62[1])) | (ldfj[62] & (~ldf_mask62[0]));
980 assign ld_intr[63] = (ldfi[63] & (~ldf_mask63[1])) | (ldfj[63] & (~ldf_mask63[0]));
981 assign ld_intr[64] = (ldfi[64] & (~ldf_mask64[1])) | (ldfj[64] & (~ldf_mask64[0]));
982 assign ld_intr[65] = (ldfi[65] & (~ldf_mask65[1])) | (ldfj[65] & (~ldf_mask65[0]));
983 assign ld_intr[66] = (ldfi[66] & (~ldf_mask66[1])) | (ldfj[66] & (~ldf_mask66[0]));
984 assign ld_intr[67] = (ldfi[67] & (~ldf_mask67[1])) | (ldfj[67] & (~ldf_mask67[0]));
985 assign ld_intr[68] = (ldfi[68] & (~ldf_mask68[1])) | (ldfj[68] & (~ldf_mask68[0]));
986
987//
988 wire [63:0] memship_intr_TO ;
989
990 assign memship_intr_TO[0 ] = ((|(memship_group0 [68:0] & (ld_intr[68:0]))) & TO_group[0 ]) ;
991 assign memship_intr_TO[1 ] = ((|(memship_group1 [68:0] & (ld_intr[68:0]))) & TO_group[1 ]) ;
992 assign memship_intr_TO[2 ] = ((|(memship_group2 [68:0] & (ld_intr[68:0]))) & TO_group[2 ]) ;
993 assign memship_intr_TO[3 ] = ((|(memship_group3 [68:0] & (ld_intr[68:0]))) & TO_group[3 ]) ;
994 assign memship_intr_TO[4 ] = ((|(memship_group4 [68:0] & (ld_intr[68:0]))) & TO_group[4 ]) ;
995 assign memship_intr_TO[5 ] = ((|(memship_group5 [68:0] & (ld_intr[68:0]))) & TO_group[5 ]) ;
996 assign memship_intr_TO[6 ] = ((|(memship_group6 [68:0] & (ld_intr[68:0]))) & TO_group[6 ]) ;
997 assign memship_intr_TO[7 ] = ((|(memship_group7 [68:0] & (ld_intr[68:0]))) & TO_group[7 ]) ;
998 assign memship_intr_TO[8 ] = ((|(memship_group8 [68:0] & (ld_intr[68:0]))) & TO_group[8 ]) ;
999 assign memship_intr_TO[9 ] = ((|(memship_group9 [68:0] & (ld_intr[68:0]))) & TO_group[9 ]) ;
1000 assign memship_intr_TO[10] = ((|(memship_group10[68:0] & (ld_intr[68:0]))) & TO_group[10]) ;
1001 assign memship_intr_TO[11] = ((|(memship_group11[68:0] & (ld_intr[68:0]))) & TO_group[11]) ;
1002 assign memship_intr_TO[12] = ((|(memship_group12[68:0] & (ld_intr[68:0]))) & TO_group[12]) ;
1003 assign memship_intr_TO[13] = ((|(memship_group13[68:0] & (ld_intr[68:0]))) & TO_group[13]) ;
1004 assign memship_intr_TO[14] = ((|(memship_group14[68:0] & (ld_intr[68:0]))) & TO_group[14]) ;
1005 assign memship_intr_TO[15] = ((|(memship_group15[68:0] & (ld_intr[68:0]))) & TO_group[15]) ;
1006 assign memship_intr_TO[16] = ((|(memship_group16[68:0] & (ld_intr[68:0]))) & TO_group[16]) ;
1007 assign memship_intr_TO[17] = ((|(memship_group17[68:0] & (ld_intr[68:0]))) & TO_group[17]) ;
1008 assign memship_intr_TO[18] = ((|(memship_group18[68:0] & (ld_intr[68:0]))) & TO_group[18]) ;
1009 assign memship_intr_TO[19] = ((|(memship_group19[68:0] & (ld_intr[68:0]))) & TO_group[19]) ;
1010 assign memship_intr_TO[20] = ((|(memship_group20[68:0] & (ld_intr[68:0]))) & TO_group[20]) ;
1011 assign memship_intr_TO[21] = ((|(memship_group21[68:0] & (ld_intr[68:0]))) & TO_group[21]) ;
1012 assign memship_intr_TO[22] = ((|(memship_group22[68:0] & (ld_intr[68:0]))) & TO_group[22]) ;
1013 assign memship_intr_TO[23] = ((|(memship_group23[68:0] & (ld_intr[68:0]))) & TO_group[23]) ;
1014 assign memship_intr_TO[24] = ((|(memship_group24[68:0] & (ld_intr[68:0]))) & TO_group[24]) ;
1015 assign memship_intr_TO[25] = ((|(memship_group25[68:0] & (ld_intr[68:0]))) & TO_group[25]) ;
1016 assign memship_intr_TO[26] = ((|(memship_group26[68:0] & (ld_intr[68:0]))) & TO_group[26]) ;
1017 assign memship_intr_TO[27] = ((|(memship_group27[68:0] & (ld_intr[68:0]))) & TO_group[27]) ;
1018 assign memship_intr_TO[28] = ((|(memship_group28[68:0] & (ld_intr[68:0]))) & TO_group[28]) ;
1019 assign memship_intr_TO[29] = ((|(memship_group29[68:0] & (ld_intr[68:0]))) & TO_group[29]) ;
1020 assign memship_intr_TO[30] = ((|(memship_group30[68:0] & (ld_intr[68:0]))) & TO_group[30]) ;
1021 assign memship_intr_TO[31] = ((|(memship_group31[68:0] & (ld_intr[68:0]))) & TO_group[31]) ;
1022 assign memship_intr_TO[32] = ((|(memship_group32[68:0] & (ld_intr[68:0]))) & TO_group[32]) ;
1023 assign memship_intr_TO[33] = ((|(memship_group33[68:0] & (ld_intr[68:0]))) & TO_group[33]) ;
1024 assign memship_intr_TO[34] = ((|(memship_group34[68:0] & (ld_intr[68:0]))) & TO_group[34]) ;
1025 assign memship_intr_TO[35] = ((|(memship_group35[68:0] & (ld_intr[68:0]))) & TO_group[35]) ;
1026 assign memship_intr_TO[36] = ((|(memship_group36[68:0] & (ld_intr[68:0]))) & TO_group[36]) ;
1027 assign memship_intr_TO[37] = ((|(memship_group37[68:0] & (ld_intr[68:0]))) & TO_group[37]) ;
1028 assign memship_intr_TO[38] = ((|(memship_group38[68:0] & (ld_intr[68:0]))) & TO_group[38]) ;
1029 assign memship_intr_TO[39] = ((|(memship_group39[68:0] & (ld_intr[68:0]))) & TO_group[39]) ;
1030 assign memship_intr_TO[40] = ((|(memship_group40[68:0] & (ld_intr[68:0]))) & TO_group[40]) ;
1031 assign memship_intr_TO[41] = ((|(memship_group41[68:0] & (ld_intr[68:0]))) & TO_group[41]) ;
1032 assign memship_intr_TO[42] = ((|(memship_group42[68:0] & (ld_intr[68:0]))) & TO_group[42]) ;
1033 assign memship_intr_TO[43] = ((|(memship_group43[68:0] & (ld_intr[68:0]))) & TO_group[43]) ;
1034 assign memship_intr_TO[44] = ((|(memship_group44[68:0] & (ld_intr[68:0]))) & TO_group[44]) ;
1035 assign memship_intr_TO[45] = ((|(memship_group45[68:0] & (ld_intr[68:0]))) & TO_group[45]) ;
1036 assign memship_intr_TO[46] = ((|(memship_group46[68:0] & (ld_intr[68:0]))) & TO_group[46]) ;
1037 assign memship_intr_TO[47] = ((|(memship_group47[68:0] & (ld_intr[68:0]))) & TO_group[47]) ;
1038 assign memship_intr_TO[48] = ((|(memship_group48[68:0] & (ld_intr[68:0]))) & TO_group[48]) ;
1039 assign memship_intr_TO[49] = ((|(memship_group49[68:0] & (ld_intr[68:0]))) & TO_group[49]) ;
1040 assign memship_intr_TO[50] = ((|(memship_group50[68:0] & (ld_intr[68:0]))) & TO_group[50]) ;
1041 assign memship_intr_TO[51] = ((|(memship_group51[68:0] & (ld_intr[68:0]))) & TO_group[51]) ;
1042 assign memship_intr_TO[52] = ((|(memship_group52[68:0] & (ld_intr[68:0]))) & TO_group[52]) ;
1043 assign memship_intr_TO[53] = ((|(memship_group53[68:0] & (ld_intr[68:0]))) & TO_group[53]) ;
1044 assign memship_intr_TO[54] = ((|(memship_group54[68:0] & (ld_intr[68:0]))) & TO_group[54]) ;
1045 assign memship_intr_TO[55] = ((|(memship_group55[68:0] & (ld_intr[68:0]))) & TO_group[55]) ;
1046 assign memship_intr_TO[56] = ((|(memship_group56[68:0] & (ld_intr[68:0]))) & TO_group[56]) ;
1047 assign memship_intr_TO[57] = ((|(memship_group57[68:0] & (ld_intr[68:0]))) & TO_group[57]) ;
1048 assign memship_intr_TO[58] = ((|(memship_group58[68:0] & (ld_intr[68:0]))) & TO_group[58]) ;
1049 assign memship_intr_TO[59] = ((|(memship_group59[68:0] & (ld_intr[68:0]))) & TO_group[59]) ;
1050 assign memship_intr_TO[60] = ((|(memship_group60[68:0] & (ld_intr[68:0]))) & TO_group[60]) ;
1051 assign memship_intr_TO[61] = ((|(memship_group61[68:0] & (ld_intr[68:0]))) & TO_group[61]) ;
1052 assign memship_intr_TO[62] = ((|(memship_group62[68:0] & (ld_intr[68:0]))) & TO_group[62]) ;
1053 assign memship_intr_TO[63] = ((|(memship_group63[68:0] & (ld_intr[68:0]))) & TO_group[63]) ;
1054
1055//
1056
1057 assign intr_req_group[0 ] = (memship_intr_TO[0] & arm0) ;
1058 assign intr_req_group[1 ] = (memship_intr_TO[1] & arm1) ;
1059 assign intr_req_group[2 ] = (memship_intr_TO[2] & arm2) ;
1060 assign intr_req_group[3 ] = (memship_intr_TO[3] & arm3) ;
1061 assign intr_req_group[4 ] = (memship_intr_TO[4] & arm4) ;
1062 assign intr_req_group[5 ] = (memship_intr_TO[5] & arm5) ;
1063 assign intr_req_group[6 ] = (memship_intr_TO[6] & arm6) ;
1064 assign intr_req_group[7 ] = (memship_intr_TO[7] & arm7) ;
1065 assign intr_req_group[8 ] = (memship_intr_TO[8] & arm8) ;
1066 assign intr_req_group[9 ] = (memship_intr_TO[9] & arm9) ;
1067 assign intr_req_group[10] = (memship_intr_TO[10] & arm10) ;
1068 assign intr_req_group[11] = (memship_intr_TO[11] & arm11) ;
1069 assign intr_req_group[12] = (memship_intr_TO[12] & arm12) ;
1070 assign intr_req_group[13] = (memship_intr_TO[13] & arm13) ;
1071 assign intr_req_group[14] = (memship_intr_TO[14] & arm14) ;
1072 assign intr_req_group[15] = (memship_intr_TO[15] & arm15) ;
1073 assign intr_req_group[16] = (memship_intr_TO[16] & arm16) ;
1074 assign intr_req_group[17] = (memship_intr_TO[17] & arm17) ;
1075 assign intr_req_group[18] = (memship_intr_TO[18] & arm18) ;
1076 assign intr_req_group[19] = (memship_intr_TO[19] & arm19) ;
1077 assign intr_req_group[20] = (memship_intr_TO[20] & arm20) ;
1078 assign intr_req_group[21] = (memship_intr_TO[21] & arm21) ;
1079 assign intr_req_group[22] = (memship_intr_TO[22] & arm22) ;
1080 assign intr_req_group[23] = (memship_intr_TO[23] & arm23) ;
1081 assign intr_req_group[24] = (memship_intr_TO[24] & arm24) ;
1082 assign intr_req_group[25] = (memship_intr_TO[25] & arm25) ;
1083 assign intr_req_group[26] = (memship_intr_TO[26] & arm26) ;
1084 assign intr_req_group[27] = (memship_intr_TO[27] & arm27) ;
1085 assign intr_req_group[28] = (memship_intr_TO[28] & arm28) ;
1086 assign intr_req_group[29] = (memship_intr_TO[29] & arm29) ;
1087 assign intr_req_group[30] = (memship_intr_TO[30] & arm30) ;
1088 assign intr_req_group[31] = (memship_intr_TO[31] & arm31) ;
1089 assign intr_req_group[32] = (memship_intr_TO[32] & arm32) ;
1090 assign intr_req_group[33] = (memship_intr_TO[33] & arm33) ;
1091 assign intr_req_group[34] = (memship_intr_TO[34] & arm34) ;
1092 assign intr_req_group[35] = (memship_intr_TO[35] & arm35) ;
1093 assign intr_req_group[36] = (memship_intr_TO[36] & arm36) ;
1094 assign intr_req_group[37] = (memship_intr_TO[37] & arm37) ;
1095 assign intr_req_group[38] = (memship_intr_TO[38] & arm38) ;
1096 assign intr_req_group[39] = (memship_intr_TO[39] & arm39) ;
1097 assign intr_req_group[40] = (memship_intr_TO[40] & arm40) ;
1098 assign intr_req_group[41] = (memship_intr_TO[41] & arm41) ;
1099 assign intr_req_group[42] = (memship_intr_TO[42] & arm42) ;
1100 assign intr_req_group[43] = (memship_intr_TO[43] & arm43) ;
1101 assign intr_req_group[44] = (memship_intr_TO[44] & arm44) ;
1102 assign intr_req_group[45] = (memship_intr_TO[45] & arm45) ;
1103 assign intr_req_group[46] = (memship_intr_TO[46] & arm46) ;
1104 assign intr_req_group[47] = (memship_intr_TO[47] & arm47) ;
1105 assign intr_req_group[48] = (memship_intr_TO[48] & arm48) ;
1106 assign intr_req_group[49] = (memship_intr_TO[49] & arm49) ;
1107 assign intr_req_group[50] = (memship_intr_TO[50] & arm50) ;
1108 assign intr_req_group[51] = (memship_intr_TO[51] & arm51) ;
1109 assign intr_req_group[52] = (memship_intr_TO[52] & arm52) ;
1110 assign intr_req_group[53] = (memship_intr_TO[53] & arm53) ;
1111 assign intr_req_group[54] = (memship_intr_TO[54] & arm54) ;
1112 assign intr_req_group[55] = (memship_intr_TO[55] & arm55) ;
1113 assign intr_req_group[56] = (memship_intr_TO[56] & arm56) ;
1114 assign intr_req_group[57] = (memship_intr_TO[57] & arm57) ;
1115 assign intr_req_group[58] = (memship_intr_TO[58] & arm58) ;
1116 assign intr_req_group[59] = (memship_intr_TO[59] & arm59) ;
1117 assign intr_req_group[60] = (memship_intr_TO[60] & arm60) ;
1118 assign intr_req_group[61] = (memship_intr_TO[61] & arm61) ;
1119 assign intr_req_group[62] = (memship_intr_TO[62] & arm62) ;
1120 assign intr_req_group[63] = (memship_intr_TO[63] & arm63) ;
1121
1122 wire activate_ig_sm = |intr_req_group;
1123
1124//
1125 wire [63:0] issued_intr ;
1126
1127 assign intr_rel_group[0 ] = (~memship_intr_TO[0] & issued_intr[0] ) ;
1128 assign intr_rel_group[1 ] = (~memship_intr_TO[1] & issued_intr[1] ) ;
1129 assign intr_rel_group[2 ] = (~memship_intr_TO[2] & issued_intr[2] ) ;
1130 assign intr_rel_group[3 ] = (~memship_intr_TO[3] & issued_intr[3] ) ;
1131 assign intr_rel_group[4 ] = (~memship_intr_TO[4] & issued_intr[4] ) ;
1132 assign intr_rel_group[5 ] = (~memship_intr_TO[5] & issued_intr[5] ) ;
1133 assign intr_rel_group[6 ] = (~memship_intr_TO[6] & issued_intr[6] ) ;
1134 assign intr_rel_group[7 ] = (~memship_intr_TO[7] & issued_intr[7] ) ;
1135 assign intr_rel_group[8 ] = (~memship_intr_TO[8] & issued_intr[8] ) ;
1136 assign intr_rel_group[9 ] = (~memship_intr_TO[9] & issued_intr[9] ) ;
1137 assign intr_rel_group[10] = (~memship_intr_TO[10] & issued_intr[10] ) ;
1138 assign intr_rel_group[11] = (~memship_intr_TO[11] & issued_intr[11] ) ;
1139 assign intr_rel_group[12] = (~memship_intr_TO[12] & issued_intr[12] ) ;
1140 assign intr_rel_group[13] = (~memship_intr_TO[13] & issued_intr[13] ) ;
1141 assign intr_rel_group[14] = (~memship_intr_TO[14] & issued_intr[14] ) ;
1142 assign intr_rel_group[15] = (~memship_intr_TO[15] & issued_intr[15] ) ;
1143 assign intr_rel_group[16] = (~memship_intr_TO[16] & issued_intr[16] ) ;
1144 assign intr_rel_group[17] = (~memship_intr_TO[17] & issued_intr[17] ) ;
1145 assign intr_rel_group[18] = (~memship_intr_TO[18] & issued_intr[18] ) ;
1146 assign intr_rel_group[19] = (~memship_intr_TO[19] & issued_intr[19] ) ;
1147 assign intr_rel_group[20] = (~memship_intr_TO[20] & issued_intr[20] ) ;
1148 assign intr_rel_group[21] = (~memship_intr_TO[21] & issued_intr[21] ) ;
1149 assign intr_rel_group[22] = (~memship_intr_TO[22] & issued_intr[22] ) ;
1150 assign intr_rel_group[23] = (~memship_intr_TO[23] & issued_intr[23] ) ;
1151 assign intr_rel_group[24] = (~memship_intr_TO[24] & issued_intr[24] ) ;
1152 assign intr_rel_group[25] = (~memship_intr_TO[25] & issued_intr[25] ) ;
1153 assign intr_rel_group[26] = (~memship_intr_TO[26] & issued_intr[26] ) ;
1154 assign intr_rel_group[27] = (~memship_intr_TO[27] & issued_intr[27] ) ;
1155 assign intr_rel_group[28] = (~memship_intr_TO[28] & issued_intr[28] ) ;
1156 assign intr_rel_group[29] = (~memship_intr_TO[29] & issued_intr[29] ) ;
1157 assign intr_rel_group[30] = (~memship_intr_TO[30] & issued_intr[30] ) ;
1158 assign intr_rel_group[31] = (~memship_intr_TO[31] & issued_intr[31] ) ;
1159 assign intr_rel_group[32] = (~memship_intr_TO[32] & issued_intr[32] ) ;
1160 assign intr_rel_group[33] = (~memship_intr_TO[33] & issued_intr[33] ) ;
1161 assign intr_rel_group[34] = (~memship_intr_TO[34] & issued_intr[34] ) ;
1162 assign intr_rel_group[35] = (~memship_intr_TO[35] & issued_intr[35] ) ;
1163 assign intr_rel_group[36] = (~memship_intr_TO[36] & issued_intr[36] ) ;
1164 assign intr_rel_group[37] = (~memship_intr_TO[37] & issued_intr[37] ) ;
1165 assign intr_rel_group[38] = (~memship_intr_TO[38] & issued_intr[38] ) ;
1166 assign intr_rel_group[39] = (~memship_intr_TO[39] & issued_intr[39] ) ;
1167 assign intr_rel_group[40] = (~memship_intr_TO[40] & issued_intr[40] ) ;
1168 assign intr_rel_group[41] = (~memship_intr_TO[41] & issued_intr[41] ) ;
1169 assign intr_rel_group[42] = (~memship_intr_TO[42] & issued_intr[42] ) ;
1170 assign intr_rel_group[43] = (~memship_intr_TO[43] & issued_intr[43] ) ;
1171 assign intr_rel_group[44] = (~memship_intr_TO[44] & issued_intr[44] ) ;
1172 assign intr_rel_group[45] = (~memship_intr_TO[45] & issued_intr[45] ) ;
1173 assign intr_rel_group[46] = (~memship_intr_TO[46] & issued_intr[46] ) ;
1174 assign intr_rel_group[47] = (~memship_intr_TO[47] & issued_intr[47] ) ;
1175 assign intr_rel_group[48] = (~memship_intr_TO[48] & issued_intr[48] ) ;
1176 assign intr_rel_group[49] = (~memship_intr_TO[49] & issued_intr[49] ) ;
1177 assign intr_rel_group[50] = (~memship_intr_TO[50] & issued_intr[50] ) ;
1178 assign intr_rel_group[51] = (~memship_intr_TO[51] & issued_intr[51] ) ;
1179 assign intr_rel_group[52] = (~memship_intr_TO[52] & issued_intr[52] ) ;
1180 assign intr_rel_group[53] = (~memship_intr_TO[53] & issued_intr[53] ) ;
1181 assign intr_rel_group[54] = (~memship_intr_TO[54] & issued_intr[54] ) ;
1182 assign intr_rel_group[55] = (~memship_intr_TO[55] & issued_intr[55] ) ;
1183 assign intr_rel_group[56] = (~memship_intr_TO[56] & issued_intr[56] ) ;
1184 assign intr_rel_group[57] = (~memship_intr_TO[57] & issued_intr[57] ) ;
1185 assign intr_rel_group[58] = (~memship_intr_TO[58] & issued_intr[58] ) ;
1186 assign intr_rel_group[59] = (~memship_intr_TO[59] & issued_intr[59] ) ;
1187 assign intr_rel_group[60] = (~memship_intr_TO[60] & issued_intr[60] ) ;
1188 assign intr_rel_group[61] = (~memship_intr_TO[61] & issued_intr[61] ) ;
1189 assign intr_rel_group[62] = (~memship_intr_TO[62] & issued_intr[62] ) ;
1190 assign intr_rel_group[63] = (~memship_intr_TO[63] & issued_intr[63] ) ;
1191
1192 wire activate_ig_sm_rel = |intr_rel_group;
1193 wire activate_ig_sm_rel_latched ;
1194
1195//
1196
1197pio_SRFF issued_intr0_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[0]),.iRst(intr_rel_group[0]),.oQ(issued_intr[0]));
1198pio_SRFF issued_intr1_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[1]),.iRst(intr_rel_group[1]),.oQ(issued_intr[1]));
1199pio_SRFF issued_intr2_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[2]),.iRst(intr_rel_group[2]),.oQ(issued_intr[2]));
1200pio_SRFF issued_intr3_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[3]),.iRst(intr_rel_group[3]),.oQ(issued_intr[3]));
1201pio_SRFF issued_intr4_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[4]),.iRst(intr_rel_group[4]),.oQ(issued_intr[4]));
1202pio_SRFF issued_intr5_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[5]),.iRst(intr_rel_group[5]),.oQ(issued_intr[5]));
1203pio_SRFF issued_intr6_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[6]),.iRst(intr_rel_group[6]),.oQ(issued_intr[6]));
1204pio_SRFF issued_intr7_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[7]),.iRst(intr_rel_group[7]),.oQ(issued_intr[7]));
1205pio_SRFF issued_intr8_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[8]),.iRst(intr_rel_group[8]),.oQ(issued_intr[8]));
1206pio_SRFF issued_intr9_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[9]),.iRst(intr_rel_group[9]),.oQ(issued_intr[9]));
1207pio_SRFF issued_intr10_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[10]),.iRst(intr_rel_group[10]),.oQ(issued_intr[10]));
1208pio_SRFF issued_intr11_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[11]),.iRst(intr_rel_group[11]),.oQ(issued_intr[11]));
1209pio_SRFF issued_intr12_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[12]),.iRst(intr_rel_group[12]),.oQ(issued_intr[12]));
1210pio_SRFF issued_intr13_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[13]),.iRst(intr_rel_group[13]),.oQ(issued_intr[13]));
1211pio_SRFF issued_intr14_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[14]),.iRst(intr_rel_group[14]),.oQ(issued_intr[14]));
1212pio_SRFF issued_intr15_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[15]),.iRst(intr_rel_group[15]),.oQ(issued_intr[15]));
1213pio_SRFF issued_intr16_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[16]),.iRst(intr_rel_group[16]),.oQ(issued_intr[16]));
1214pio_SRFF issued_intr17_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[17]),.iRst(intr_rel_group[17]),.oQ(issued_intr[17]));
1215pio_SRFF issued_intr18_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[18]),.iRst(intr_rel_group[18]),.oQ(issued_intr[18]));
1216pio_SRFF issued_intr19_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[19]),.iRst(intr_rel_group[19]),.oQ(issued_intr[19]));
1217pio_SRFF issued_intr20_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[20]),.iRst(intr_rel_group[20]),.oQ(issued_intr[20]));
1218pio_SRFF issued_intr21_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[21]),.iRst(intr_rel_group[21]),.oQ(issued_intr[21]));
1219pio_SRFF issued_intr22_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[22]),.iRst(intr_rel_group[22]),.oQ(issued_intr[22]));
1220pio_SRFF issued_intr23_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[23]),.iRst(intr_rel_group[23]),.oQ(issued_intr[23]));
1221pio_SRFF issued_intr24_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[24]),.iRst(intr_rel_group[24]),.oQ(issued_intr[24]));
1222pio_SRFF issued_intr25_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[25]),.iRst(intr_rel_group[25]),.oQ(issued_intr[25]));
1223pio_SRFF issued_intr26_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[26]),.iRst(intr_rel_group[26]),.oQ(issued_intr[26]));
1224pio_SRFF issued_intr27_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[27]),.iRst(intr_rel_group[27]),.oQ(issued_intr[27]));
1225pio_SRFF issued_intr28_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[28]),.iRst(intr_rel_group[28]),.oQ(issued_intr[28]));
1226pio_SRFF issued_intr29_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[29]),.iRst(intr_rel_group[29]),.oQ(issued_intr[29]));
1227pio_SRFF issued_intr30_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[30]),.iRst(intr_rel_group[30]),.oQ(issued_intr[30]));
1228pio_SRFF issued_intr31_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[31]),.iRst(intr_rel_group[31]),.oQ(issued_intr[31]));
1229pio_SRFF issued_intr32_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[32]),.iRst(intr_rel_group[32]),.oQ(issued_intr[32]));
1230pio_SRFF issued_intr33_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[33]),.iRst(intr_rel_group[33]),.oQ(issued_intr[33]));
1231pio_SRFF issued_intr34_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[34]),.iRst(intr_rel_group[34]),.oQ(issued_intr[34]));
1232pio_SRFF issued_intr35_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[35]),.iRst(intr_rel_group[35]),.oQ(issued_intr[35]));
1233pio_SRFF issued_intr36_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[36]),.iRst(intr_rel_group[36]),.oQ(issued_intr[36]));
1234pio_SRFF issued_intr37_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[37]),.iRst(intr_rel_group[37]),.oQ(issued_intr[37]));
1235pio_SRFF issued_intr38_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[38]),.iRst(intr_rel_group[38]),.oQ(issued_intr[38]));
1236pio_SRFF issued_intr39_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[39]),.iRst(intr_rel_group[39]),.oQ(issued_intr[39]));
1237pio_SRFF issued_intr40_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[40]),.iRst(intr_rel_group[40]),.oQ(issued_intr[40]));
1238pio_SRFF issued_intr41_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[41]),.iRst(intr_rel_group[41]),.oQ(issued_intr[41]));
1239pio_SRFF issued_intr42_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[42]),.iRst(intr_rel_group[42]),.oQ(issued_intr[42]));
1240pio_SRFF issued_intr43_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[43]),.iRst(intr_rel_group[43]),.oQ(issued_intr[43]));
1241pio_SRFF issued_intr44_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[44]),.iRst(intr_rel_group[44]),.oQ(issued_intr[44]));
1242pio_SRFF issued_intr45_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[45]),.iRst(intr_rel_group[45]),.oQ(issued_intr[45]));
1243pio_SRFF issued_intr46_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[46]),.iRst(intr_rel_group[46]),.oQ(issued_intr[46]));
1244pio_SRFF issued_intr47_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[47]),.iRst(intr_rel_group[47]),.oQ(issued_intr[47]));
1245pio_SRFF issued_intr48_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[48]),.iRst(intr_rel_group[48]),.oQ(issued_intr[48]));
1246pio_SRFF issued_intr49_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[49]),.iRst(intr_rel_group[49]),.oQ(issued_intr[49]));
1247pio_SRFF issued_intr50_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[50]),.iRst(intr_rel_group[50]),.oQ(issued_intr[50]));
1248pio_SRFF issued_intr51_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[51]),.iRst(intr_rel_group[51]),.oQ(issued_intr[51]));
1249pio_SRFF issued_intr52_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[52]),.iRst(intr_rel_group[52]),.oQ(issued_intr[52]));
1250pio_SRFF issued_intr53_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[53]),.iRst(intr_rel_group[53]),.oQ(issued_intr[53]));
1251pio_SRFF issued_intr54_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[54]),.iRst(intr_rel_group[54]),.oQ(issued_intr[54]));
1252pio_SRFF issued_intr55_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[55]),.iRst(intr_rel_group[55]),.oQ(issued_intr[55]));
1253pio_SRFF issued_intr56_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[56]),.iRst(intr_rel_group[56]),.oQ(issued_intr[56]));
1254pio_SRFF issued_intr57_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[57]),.iRst(intr_rel_group[57]),.oQ(issued_intr[57]));
1255pio_SRFF issued_intr58_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[58]),.iRst(intr_rel_group[58]),.oQ(issued_intr[58]));
1256pio_SRFF issued_intr59_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[59]),.iRst(intr_rel_group[59]),.oQ(issued_intr[59]));
1257pio_SRFF issued_intr60_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[60]),.iRst(intr_rel_group[60]),.oQ(issued_intr[60]));
1258pio_SRFF issued_intr61_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[61]),.iRst(intr_rel_group[61]),.oQ(issued_intr[61]));
1259pio_SRFF issued_intr62_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[62]),.iRst(intr_rel_group[62]),.oQ(issued_intr[62]));
1260pio_SRFF issued_intr63_srflop (.reset(reset),.clk(clk),.iSet(intr_req_group[63]),.iRst(intr_rel_group[63]),.oQ(issued_intr[63]));
1261
1262niu_pio_scheduler64 niu_pio_scheduler64
1263 (/*AUTOINST*/
1264 // Outputs
1265 .group (group[5:0]),
1266 // Inputs
1267 .clk (clk),
1268 .reset (reset),
1269 .intr_req_group (intr_req_group[63:0]),
1270 .intr_rel_group (intr_rel_group[63:0]),
1271 .activate_ig_sm (activate_ig_sm),
1272 .activate_ig_sm_rel (activate_ig_sm_rel),
1273 .activate_ig_sm_rel_latched (activate_ig_sm_rel_latched),
1274 .latch_req_mux_out (latch_req_mux_out),
1275 .latch_result_group (latch_result_group),
1276 .latch_nx_pri_group (latch_nx_pri_group));
1277
1278
1279niu_pio_ig_sm niu_pio_ig_sm
1280 (/*AUTOINST*/
1281 // Outputs
1282 .latch_req_mux_out (latch_req_mux_out),
1283 .latch_result_group (latch_result_group),
1284 .latch_nx_pri_group (latch_nx_pri_group),
1285 .intr_valid (intr_valid),
1286 .intr_invalid (intr_invalid),
1287 .rst_at (rst_at),
1288 .ig_state (ig_state[2:0]),
1289 // Inputs
1290 .clk (clk),
1291 .reset (reset),
1292 .ibusy (ibusy),
1293 .activate_ig_sm (activate_ig_sm),
1294 .activate_ig_sm_rel_latched (activate_ig_sm_rel_latched),
1295 .activate_ig_sm_rel (activate_ig_sm_rel));
1296
1297endmodule // niu_pio_ic
1298// Local Variables:
1299// verilog-library-directories:(".")
1300// End:
1301
1302module pio_SRFF (reset,clk,iSet,iRst,oQ);
1303
1304input reset, clk, iSet, iRst;
1305output oQ;
1306
1307reg oQ;
1308
1309always @ (posedge clk)
1310if (reset)
1311 oQ <= 0;
1312else
1313 casex({iSet, iRst})
1314 2'b00: oQ <= oQ;
1315 2'b01: oQ <= 0;
1316 2'b1x: oQ <= 1;
1317 endcase
1318
1319endmodule // end of Set Reset Flip Flop
1320
1321